This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Add frysk.testbed.IsaTestbed; use.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]