public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Add frysk.testbed.IsaTestbed; use.
@ 2008-01-25 16:48 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-01-25 16:48 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  814da5d7520162288f0153df0afe06ce4e39f764 (commit)
      from  250894aaeaa2cfdd1dcacb38bd94991e857eb8ee (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 814da5d7520162288f0153df0afe06ce4e39f764
Author: Andrew Cagney <cagney@toil.yyz.redhat.com>
Date:   Fri Jan 25 11:48:11 2008 -0500

    Add frysk.testbed.IsaTestbed; use.
    
    frysk-core/frysk/isa/signals/ChangeLog
    2008-01-25  Andrew Cagney  <cagney@redhat.com>
    
    	* TestSignalTable.java: Use frysk.testbed.IsaTestbed.
    
    frysk-core/frysk/isa/syscalls/ChangeLog
    2008-01-25  Andrew Cagney  <cagney@redhat.com>
    
    	* TestSyscallsWithAudit.java: Use frysk.testbed.IsaTestbed.
    
    frysk-core/frysk/proc/ChangeLog
    2008-01-25  Andrew Cagney  <cagney@redhat.com>
    
    	* TestSyscallRunning.java: Use IsaTestbed to get the isa.
    	* TestSyscallSignal.java: Ditto.
    	* TestTaskSyscallObserver.java: Ditto.
    
    frysk-core/frysk/testbed/ChangeLog
    2008-01-25  Andrew Cagney  <cagney@redhat.com>
    
    	* TestIsa.java: New.
    	* IsaTestbed.java: New.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/isa/signals/ChangeLog             |    4 +
 frysk-core/frysk/isa/signals/TestSignalTable.java  |    6 +-
 frysk-core/frysk/isa/syscalls/ChangeLog            |    4 +
 .../frysk/isa/syscalls/TestSyscallsWithAudit.java  |   53 +++++++++------
 frysk-core/frysk/proc/ChangeLog                    |    4 +
 frysk-core/frysk/proc/TestSyscallRunning.java      |    5 +-
 frysk-core/frysk/proc/TestSyscallSignal.java       |    3 +-
 frysk-core/frysk/proc/TestTaskSyscallObserver.java |    4 +-
 frysk-core/frysk/testbed/ChangeLog                 |    5 ++
 .../frysk/testbed/IsaTestbed.java                  |   52 ++++++--------
 .../testbed/{PidCounter.java => TestIsa.java}      |   74 ++++++++++----------
 11 files changed, 117 insertions(+), 97 deletions(-)
 copy frysk-sys/frysk/sys/Pipe.java => frysk-core/frysk/testbed/IsaTestbed.java (76%)
 copy frysk-core/frysk/testbed/{PidCounter.java => TestIsa.java} (64%)

First 500 lines of diff:
diff --git a/frysk-core/frysk/isa/signals/ChangeLog b/frysk-core/frysk/isa/signals/ChangeLog
index 83ea832..050274b 100644
--- a/frysk-core/frysk/isa/signals/ChangeLog
+++ b/frysk-core/frysk/isa/signals/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-25  Andrew Cagney  <cagney@redhat.com>
+
+	* TestSignalTable.java: Use frysk.testbed.IsaTestbed.
+
 2008-01-24  Andrew Cagney  <cagney@redhat.com>
 
 	* Signal.java: Move from frysk.proc.Signal.
diff --git a/frysk-core/frysk/isa/signals/TestSignalTable.java b/frysk-core/frysk/isa/signals/TestSignalTable.java
index 34795cb..03d6bf4 100644
--- a/frysk-core/frysk/isa/signals/TestSignalTable.java
+++ b/frysk-core/frysk/isa/signals/TestSignalTable.java
@@ -39,7 +39,7 @@
 
 package frysk.isa.signals;
 
-import frysk.testbed.DaemonBlockedAtEntry;
+import frysk.testbed.IsaTestbed;
 import frysk.testbed.TestLib;
 
 /**
@@ -48,10 +48,10 @@ import frysk.testbed.TestLib;
 
 public class TestSignalTable extends TestLib {
     public void testSignalTable() {
-	DaemonBlockedAtEntry daemon = new DaemonBlockedAtEntry("funit-slave");
 	frysk.sys.Signal[] hostSignals
 	    = frysk.sys.Signal.getHostSignalSet().toArray();
-	SignalTable signalTable = SignalTableFactory.getSignalTable(daemon.getMainTask().getISA());
+	SignalTable signalTable
+	    = SignalTableFactory.getSignalTable(IsaTestbed.getISA());
 	for (int i = 0; i < hostSignals.length; i++) {
 	    frysk.sys.Signal hostSignal = hostSignals[i];
 	    if (hostSignal.toString().startsWith("SIGRT"))
diff --git a/frysk-core/frysk/isa/syscalls/ChangeLog b/frysk-core/frysk/isa/syscalls/ChangeLog
index 8952aa1..5ee27ec 100644
--- a/frysk-core/frysk/isa/syscalls/ChangeLog
+++ b/frysk-core/frysk/isa/syscalls/ChangeLog
@@ -1,3 +1,7 @@
+2008-01-25  Andrew Cagney  <cagney@redhat.com>
+
+	* TestSyscallsWithAudit.java: Use frysk.testbed.IsaTestbed.
+
 2008-01-24  Andrew Cagney  <cagney@redhat.com>
 
 	* LinuxIA32SyscallTable.java: Update; Register moved to
diff --git a/frysk-core/frysk/isa/syscalls/TestSyscallsWithAudit.java b/frysk-core/frysk/isa/syscalls/TestSyscallsWithAudit.java
index 84f417e..8d612eb 100644
--- a/frysk-core/frysk/isa/syscalls/TestSyscallsWithAudit.java
+++ b/frysk-core/frysk/isa/syscalls/TestSyscallsWithAudit.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2006, 2007, Red Hat Inc.
+// Copyright 2006, 2007, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -42,30 +42,20 @@ package frysk.isa.syscalls;
 import frysk.sys.AuditLibs;
 import frysk.testbed.TestLib;
 import frysk.isa.ISA;
+import frysk.isa.ISAMap;
+import frysk.testbed.IsaTestbed;
 
 public class TestSyscallsWithAudit extends TestLib {
   
-  public void testLinuxIA32() {
-      int machine = AuditLibs.MACH_X86;
-      syscallTest(machine, ISA.IA32);
-  }
+    private static final ISAMap machines = new ISAMap("syscall machines")
+	.put(ISA.IA32, new Integer(AuditLibs.MACH_X86))
+	.put(ISA.PPC32BE, new Integer(AuditLibs.MACH_PPC))
+	.put(ISA.PPC64BE, new Integer(AuditLibs.MACH_PPC64))
+	.put(ISA.X8664, new Integer(AuditLibs.MACH_86_64))
+	;
 
-  public void testLinuxPPC32() {
-      int machine = AuditLibs.MACH_PPC;
-      syscallTest(machine, ISA.PPC32BE);
-  }
-
-  public void testLinuxPPC64() {
-      int machine = AuditLibs.MACH_PPC64;
-      syscallTest(machine, ISA.PPC64BE);
-  }
-
-  public void testLinuxX8664() {
-      int machine = AuditLibs.MACH_86_64;
-      syscallTest(machine, ISA.X8664);
-  }
-
-    private void syscallTest(int machine, ISA isa) {
+    private void syscallTest(ISA isa) {
+	int machine = ((Integer) machines.get(isa)).intValue();
 	SyscallTable syscallTable
 	    = SyscallTableFactory.getSyscallTable(isa);
 	
@@ -104,4 +94,25 @@ public class TestSyscallsWithAudit extends TestLib {
 	    }
 	}
     }
+
+
+    public void testLinuxIA32() {
+	syscallTest(ISA.IA32);
+    }
+    
+    public void testLinuxPPC32() {
+	syscallTest(ISA.PPC32BE);
+    }
+    
+    public void testLinuxPPC64() {
+	syscallTest(ISA.PPC64BE);
+    }
+    
+    public void testLinuxX8664() {
+	syscallTest(ISA.X8664);
+    }
+
+    public void testHost() {
+	syscallTest(IsaTestbed.getISA());
+    }
 }
diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog
index 75b82c3..cd99c9d 100644
--- a/frysk-core/frysk/proc/ChangeLog
+++ b/frysk-core/frysk/proc/ChangeLog
@@ -1,5 +1,9 @@
 2008-01-25  Andrew Cagney  <cagney@redhat.com>
 
+	* TestSyscallRunning.java: Use IsaTestbed to get the isa.
+	* TestSyscallSignal.java: Ditto.
+	* TestTaskSyscallObserver.java: Ditto.
+
 	* TestTaskObserver.java: Eliminate uses of
 	frysk.sys.Signal.equals(int).
 
diff --git a/frysk-core/frysk/proc/TestSyscallRunning.java b/frysk-core/frysk/proc/TestSyscallRunning.java
index c4ed45a..725a617 100644
--- a/frysk-core/frysk/proc/TestSyscallRunning.java
+++ b/frysk-core/frysk/proc/TestSyscallRunning.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2006, 2007, Red Hat Inc.
+// Copyright 2006, 2007, 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -53,6 +53,7 @@ import frysk.Config;
 import frysk.sys.DaemonPipePair;
 import frysk.isa.syscalls.SyscallTable;
 import frysk.isa.syscalls.SyscallTableFactory;
+import frysk.testbed.IsaTestbed;
 
 /**
  * XXX: This code should be simplified, eliminating local parallelism
@@ -175,7 +176,7 @@ public class TestSyscallRunning
 
 	SyscallObserver(String call, Task task, boolean entered) {
 	    SyscallTable syscallTable
-		= SyscallTableFactory.getSyscallTable(task.getISA());
+		= SyscallTableFactory.getSyscallTable(IsaTestbed.getISA());
 	    this.expected = syscallTable.getSyscall(call);
 	    this.entered = entered;
 	}
diff --git a/frysk-core/frysk/proc/TestSyscallSignal.java b/frysk-core/frysk/proc/TestSyscallSignal.java
index 5000765..279d917 100644
--- a/frysk-core/frysk/proc/TestSyscallSignal.java
+++ b/frysk-core/frysk/proc/TestSyscallSignal.java
@@ -39,6 +39,7 @@
 
 package frysk.proc;
 
+import frysk.testbed.IsaTestbed;
 import java.io.BufferedReader;
 import java.io.DataOutputStream;
 import java.io.IOException;
@@ -254,7 +255,7 @@ public class TestSyscallSignal
 
 	SyscallObserver(int stophits, Task task) {
 	    SyscallTable syscallTable
-		= SyscallTableFactory.getSyscallTable(task.getISA());
+		= SyscallTableFactory.getSyscallTable(IsaTestbed.getISA());
 	    this.stophits = stophits;
 	    this.opensys = syscallTable.getSyscall("open");
 	    this.closesys = syscallTable.getSyscall("close");
diff --git a/frysk-core/frysk/proc/TestTaskSyscallObserver.java b/frysk-core/frysk/proc/TestTaskSyscallObserver.java
index 217d606..0c7ea9f 100644
--- a/frysk-core/frysk/proc/TestTaskSyscallObserver.java
+++ b/frysk-core/frysk/proc/TestTaskSyscallObserver.java
@@ -37,7 +37,6 @@
 // version and license this file solely under the GPL without
 // exception.
 
-
 package frysk.proc;
 
 import frysk.isa.syscalls.Syscall;
@@ -56,6 +55,7 @@ import frysk.testbed.SlaveOffspring;
 import frysk.testbed.StopEventLoopWhenProcRemoved;
 import frysk.testbed.TaskObserverBase;
 import frysk.testbed.DaemonBlockedAtEntry;
+import frysk.testbed.IsaTestbed;
 
 /**
  * Check that syscall events are detected. This should be expanded later to
@@ -85,7 +85,7 @@ public class TestTaskSyscallObserver
 
 	SyscallObserver (Task task) {
 	    SyscallTable syscallTable
-		= SyscallTableFactory.getSyscallTable(task.getISA());
+		= SyscallTableFactory.getSyscallTable(IsaTestbed.getISA());
 	    execvesys = syscallTable.getSyscall("execve");
 	    opensys = syscallTable.getSyscall("open");
 	    readsys = syscallTable.getSyscall("read");
diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog
index 6879876..212e465 100644
--- a/frysk-core/frysk/testbed/ChangeLog
+++ b/frysk-core/frysk/testbed/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-25  Andrew Cagney  <cagney@redhat.com>
+
+	* TestIsa.java: New.
+	* IsaTestbed.java: New.
+
 2008-01-24  Andrew Cagney  <cagney@redhat.com>
 
 	* DaemonBlockedAtSignal.java: Update to match
diff --git a/frysk-sys/frysk/sys/Pipe.java b/frysk-core/frysk/testbed/IsaTestbed.java
similarity index 76%
copy from frysk-sys/frysk/sys/Pipe.java
copy to frysk-core/frysk/testbed/IsaTestbed.java
index bd88db4..5ea3c66 100644
--- a/frysk-sys/frysk/sys/Pipe.java
+++ b/frysk-core/frysk/testbed/IsaTestbed.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2007, Red Hat Inc.
+// Copyright 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -37,46 +37,36 @@
 // version and license this file solely under the GPL without
 // exception.
 
-package frysk.sys;
+package frysk.testbed;
+
+import frysk.isa.ISA;
+import frysk.isa.ElfMap;
+import frysk.Config;
 
 /**
- * Open a Pipe.
+ * Return the ISA being used by the testbed.
  */
 
-public class Pipe
-{
-    /**
-     * Use this end for reading.
-     */
-    public final FileDescriptor in;
-    /**
-     * Use this end for writing.
-     */
-    public final FileDescriptor out;
+public class IsaTestbed {
 
     /**
-     * Create a bi-directional pipe.
+     * Return the default isa being used for testing.
      */
-    public Pipe ()
-    {
-	FileDescriptor[] filedes = pipe();
-	in = filedes[0];
-	out = filedes[1];
+    public static ISA getISA() {
+	return ElfMap.getISA(Config.getPkgLibFile("funit-slave"));
     }
-
-    public String toString ()
-    {
-	return "[" + out.getFd () + "|" + in.getFd () + "]";
-    }
-
-    public void close ()
-    {
-	in.close ();
-	out.close ();
+    
+    /**
+     * Return the 32-bit isa being used for 32-on-64 testing.
+     */
+    public static ISA getISA32() {
+	return ElfMap.getISA(Config.getPkgLib32File("funit-slave"));
     }
 
     /**
-     * Really create the pipe.
+     * Return the 64-bit isa being used for 32-on-64 testing.
      */
-    private native FileDescriptor[] pipe ();
+    public static ISA getISA64() {
+	return ElfMap.getISA(Config.getPkgLib64File("funit-slave"));
+    }
 }
diff --git a/frysk-core/frysk/testbed/PidCounter.java b/frysk-core/frysk/testbed/TestIsa.java
similarity index 64%
copy from frysk-core/frysk/testbed/PidCounter.java
copy to frysk-core/frysk/testbed/TestIsa.java
index 717642e..9ab511d 100644
--- a/frysk-core/frysk/testbed/PidCounter.java
+++ b/frysk-core/frysk/testbed/TestIsa.java
@@ -1,6 +1,6 @@
 // This file is part of the program FRYSK.
 //
-// Copyright 2005, 2006, 2007, Red Hat Inc.
+// Copyright 2008, Red Hat Inc.
 //
 // FRYSK is free software; you can redistribute it and/or modify it
 // under the terms of the GNU General Public License as published by
@@ -39,49 +39,49 @@
 
 package frysk.testbed;
 
-import java.util.List;
-import java.util.LinkedList;
-import java.util.Observer;
-import java.util.Observable;
-import frysk.proc.Proc;
+import java.io.File;
+import frysk.isa.ISA;
+import frysk.Config;
 
 /**
- * Watch for events involving the specified PID process; count the
- * number of events seen.
+ * Test IsaTestbed.
  */
 
-public class PidCounter
-    implements Observer
-{
-    public final List what = new LinkedList(); // XXX:
+public class TestIsa extends TestLib {
 
-    private int pid;
-
-    public int count = 0;
-
-    /**
-     * Create a pid counter bound to PID.
-     */
-    public PidCounter (int pid) {
-	this.pid = pid;
+    public void testIsaValid() {
+	assertNotNull("isa", IsaTestbed.getISA());
     }
-
-    /**
-     * Create a pid counter bound to PID, and attached to
-     * observable.
-     */
-    public PidCounter (int pid, Observable observable) {
-	this(pid);
-	observable.addObserver(this);
+    public void testIsa32Valid() {
+	if (missing32or64())
+	    return;
+	assertNotNull("isa32", IsaTestbed.getISA32());
+    }
+    public void testIsa64Valid() {
+	if (missing32or64())
+	    return;
+	assertNotNull("isa32", IsaTestbed.getISA32());
     }
 
-    public void update (Observable o, Object obj) {
-	if (obj instanceof Proc) {
-	    Proc proc = (Proc) obj;
-	    if (proc.getPid() == pid) {
-		count++;
-		what.add(new RuntimeException()); // XXX:
-	    }
-	}
+    private void checkIsaMatchesBlockedProcess(ISA isa, File exe) {
+	assertSame("running isa",
+		   new DaemonBlockedAtEntry(exe).getMainTask().getISA(),
+		   isa);
+    }
+    public void testIsaMatchesBlockedProcess() {
+	checkIsaMatchesBlockedProcess(IsaTestbed.getISA(),
+				      Config.getPkgLibFile("funit-slave"));
+    }
+    public void testIsa32MatchesBlockedProcess() {
+	if (missing32or64())
+	    return;
+	checkIsaMatchesBlockedProcess(IsaTestbed.getISA32(),
+				      Config.getPkgLib32File("funit-slave"));
+    }
+    public void testIsa64MatchesBlockedProcess() {
+	if (missing32or64())
+	    return;
+	checkIsaMatchesBlockedProcess(IsaTestbed.getISA64(),
+				      Config.getPkgLib64File("funit-slave"));
     }
 }


hooks/post-receive
--
frysk system monitor/debugger


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-01-25 16:48 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-01-25 16:48 [SCM] master: Add frysk.testbed.IsaTestbed; use cagney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).