public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Add frysk.testbed.IsaTestbed; use. Date: Fri, 25 Jan 2008 16:48:00 -0000 [thread overview] Message-ID: <20080125164831.4618.qmail@sourceware.org> (raw) 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
reply other threads:[~2008-01-25 16:48 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20080125164831.4618.qmail@sourceware.org \ --to=cagney@sourceware.org \ --cc=frysk-cvs@sourceware.org \ --cc=frysk@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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).