public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Simplify frysk.sys.Child and Daemon, return ProcessIdentifier. Date: Thu, 07 Feb 2008 16:39:00 -0000 [thread overview] Message-ID: <20080207163901.14637.qmail@sourceware.org> (raw) The branch, master has been updated via 9c26f2e7af2906f4fa80bc346f0d91e3570c9599 (commit) from f0af780514b6076f72a50c4b76cabf13437fa51e (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 9c26f2e7af2906f4fa80bc346f0d91e3570c9599 Author: Andrew Cagney <cagney@redhat.com> Date: Thu Feb 7 11:38:08 2008 -0500 Simplify frysk.sys.Child and Daemon, return ProcessIdentifier. frysk-core/frysk/proc/live/ChangeLog 2008-02-07 Andrew Cagney <cagney@redhat.com> * TestByteBuffer.java: Use ForkFactory. frysk-sys/frysk/ChangeLog 2008-02-07 Andrew Cagney <cagney@redhat.com> * ForkFactory.java: New. frysk-sys/frysk/sys/ChangeLog 2008-02-07 Andrew Cagney <cagney@redhat.com> * DaemonFactory.java: Replace Daemon.java. * cni/DaemonFactory.cxx: Replace cni/Daemon.cxx. * ChildFactory.java: Replace Child.java. * cni/ChildFactory.cxx: Replace cni/Child.cxx. * ChildPipePair.java: Update. * DaemonPipePair.java: Update. * PseudoTerminal.java: Update. * TestPtrace.java: Update. frysk-sys/frysk/testbed/ChangeLog 2008-02-07 Andrew Cagney <cagney@redhat.com> * ForkFactory.java: New. * DetachedSelf.java: Delete. * AttachedSelf.java: Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/live/ChangeLog | 4 + frysk-core/frysk/proc/live/TestByteBuffer.java | 4 +- frysk-sys/frysk/ChangeLog | 4 + frysk-sys/frysk/sys/ChangeLog | 11 +++ .../frysk/sys/{Child.java => ChildFactory.java} | 12 ++-- frysk-sys/frysk/sys/ChildPipePair.java | 23 ++---- .../frysk/sys/{Daemon.java => DaemonFactory.java} | 17 ++--- frysk-sys/frysk/sys/DaemonPipePair.java | 21 ++---- frysk-sys/frysk/sys/PseudoTerminal.java | 10 +-- frysk-sys/frysk/sys/TestPtrace.java | 64 ++++++++---------- .../frysk/sys/cni/{Child.cxx => ChildFactory.cxx} | 8 +- .../sys/cni/{Daemon.cxx => DaemonFactory.cxx} | 8 +- frysk-sys/frysk/testbed/ChangeLog | 6 ++ frysk-sys/frysk/testbed/DetachedSelf.java | 71 -------------------- .../{AttachedSelf.java => ForkFactory.java} | 46 +++++++++---- 15 files changed, 128 insertions(+), 181 deletions(-) rename frysk-sys/frysk/sys/{Child.java => ChildFactory.java} (90%) rename frysk-sys/frysk/sys/{Daemon.java => DaemonFactory.java} (89%) rename frysk-sys/frysk/sys/cni/{Child.cxx => ChildFactory.cxx} (94%) rename frysk-sys/frysk/sys/cni/{Daemon.cxx => DaemonFactory.cxx} (95%) delete mode 100644 frysk-sys/frysk/testbed/DetachedSelf.java rename frysk-sys/frysk/testbed/{AttachedSelf.java => ForkFactory.java} (76%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 73a40a1..ef7a60b 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2008-02-07 Andrew Cagney <cagney@redhat.com> + + * TestByteBuffer.java: Use ForkFactory. + 2008-02-06 Andrew Cagney <cagney@redhat.com> * LinuxWaitBuilder.java: Update to match WaitBuilder's diff --git a/frysk-core/frysk/proc/live/TestByteBuffer.java b/frysk-core/frysk/proc/live/TestByteBuffer.java index c352985..ec40b29 100644 --- a/frysk-core/frysk/proc/live/TestByteBuffer.java +++ b/frysk-core/frysk/proc/live/TestByteBuffer.java @@ -44,7 +44,7 @@ import frysk.junit.TestCase; import frysk.proc.Task; import frysk.proc.Proc; import frysk.proc.dummy.DummyProc; -import frysk.testbed.AttachedSelf; +import frysk.testbed.ForkFactory; import frysk.testbed.DaemonBlockedAtEntry; import frysk.testbed.LocalMemory; import frysk.sys.Ptrace.RegisterSet; @@ -75,7 +75,7 @@ public class TestByteBuffer // Watch for spawned processes, etc. super.setUp(); - pid = new AttachedSelf().hashCode(); + pid = ForkFactory.attachedDaemon().intValue(); // Text and Data are the same, but can be accessed independently. addressSpaceByteBufferText diff --git a/frysk-sys/frysk/ChangeLog b/frysk-sys/frysk/ChangeLog index 4f228dd..ae456df 100644 --- a/frysk-sys/frysk/ChangeLog +++ b/frysk-sys/frysk/ChangeLog @@ -1,3 +1,7 @@ +2008-02-07 Andrew Cagney <cagney@redhat.com> + + * ForkFactory.java: New. + 2008-01-07 Nurdin Premji <npremji@redhat.com> * CompilerVersion.java: Added (C). diff --git a/frysk-sys/frysk/sys/ChangeLog b/frysk-sys/frysk/sys/ChangeLog index 573500a..5248ce2 100644 --- a/frysk-sys/frysk/sys/ChangeLog +++ b/frysk-sys/frysk/sys/ChangeLog @@ -1,3 +1,14 @@ +2008-02-07 Andrew Cagney <cagney@redhat.com> + + * DaemonFactory.java: Replace Daemon.java. + * cni/DaemonFactory.cxx: Replace cni/Daemon.cxx. + * ChildFactory.java: Replace Child.java. + * cni/ChildFactory.cxx: Replace cni/Child.cxx. + * ChildPipePair.java: Update. + * DaemonPipePair.java: Update. + * PseudoTerminal.java: Update. + * TestPtrace.java: Update. + 2008-02-06 Andrew Cagney <cagney@redhat.com> * WaitBuilder.java (syscallEvent(ProcessIdentifier)): Replace diff --git a/frysk-sys/frysk/sys/Child.java b/frysk-sys/frysk/sys/ChildFactory.java similarity index 90% rename from frysk-sys/frysk/sys/Child.java rename to frysk-sys/frysk/sys/ChildFactory.java index 825bf14..8be6ea1 100644 --- a/frysk-sys/frysk/sys/Child.java +++ b/frysk-sys/frysk/sys/ChildFactory.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2005, 2006, 2007, Red Hat Inc. +// Copyright 2005, 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 @@ -39,7 +39,7 @@ package frysk.sys; -public class Child extends ProcessIdentifierDecorator { +public class ChildFactory { /** * Create a child process (direct decendant of this process) that * redirects its I/O to REDIRECT, and executes EXEC. @@ -53,15 +53,15 @@ public class Child extends ProcessIdentifierDecorator { * * Package private. */ - Child(Redirect redirect, Execute exec) { - super (child (redirect, exec)); + public static ProcessIdentifier create(Redirect redirect, Execute exec) { + return child(redirect, exec); } /** * Create a child wired to nothing; STDIN is closed, STDOUT/ERROR * are the same as for this process. */ - public Child(Execute exec) { - this(new Redirect() { + public static ProcessIdentifier create(Execute exec) { + return create(new Redirect() { protected void reopen() { FileDescriptor.in.close (); } diff --git a/frysk-sys/frysk/sys/ChildPipePair.java b/frysk-sys/frysk/sys/ChildPipePair.java index bbb1e43..bbe62c9 100644 --- a/frysk-sys/frysk/sys/ChildPipePair.java +++ b/frysk-sys/frysk/sys/ChildPipePair.java @@ -47,22 +47,15 @@ package frysk.sys; * The child process is created using the method spawn. */ -public class ChildPipePair - extends PipePair -{ - protected ProcessIdentifier spawn (Redirect redirect, - Execute exec) - { - return new Child (redirect, exec); +public class ChildPipePair extends PipePair { + protected ProcessIdentifier spawn(Redirect redirect, + Execute exec) { + return ChildFactory.create(redirect, exec); } - - public ChildPipePair (String[] argv) - { - super (new Exec (argv)); + public ChildPipePair(String[] argv) { + super(new Exec(argv)); } - - public ChildPipePair (Execute exec) - { - super (exec); + public ChildPipePair(Execute exec) { + super(exec); } } diff --git a/frysk-sys/frysk/sys/Daemon.java b/frysk-sys/frysk/sys/DaemonFactory.java similarity index 89% rename from frysk-sys/frysk/sys/Daemon.java rename to frysk-sys/frysk/sys/DaemonFactory.java index 6b2cf3d..4941eaf 100644 --- a/frysk-sys/frysk/sys/Daemon.java +++ b/frysk-sys/frysk/sys/DaemonFactory.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -44,12 +44,12 @@ package frysk.sys; * the parent. */ -public class Daemon extends ProcessIdentifierDecorator { +public class DaemonFactory { /** * Create a daemon process (child of process 1 a.k.a. init) that * redirects its I/O to REDIRECT, and executes EXEC. * - * Package private. + * Private. */ private static native ProcessIdentifier daemon(Redirect redirect, Execute exec); @@ -57,21 +57,20 @@ public class Daemon extends ProcessIdentifierDecorator { /** * Create a daemon wired to REDIRECT, and running EXEC. */ - Daemon(Redirect redirect, Execute exec) { - super (daemon (redirect, exec)); + public static ProcessIdentifier create(Redirect redirect, Execute exec) { + return daemon(redirect, exec); } /** * Create a daemon wired to nothing; STDIN is closed, STDOUT/ERROR * are the same as for this process. */ - public Daemon(Execute exec) { - this(new Redirect() { + public static ProcessIdentifier create(Execute exec) { + return create(new Redirect() { protected void reopen() { FileDescriptor.in.close(); } - protected void close() - { + protected void close() { } }, exec); } diff --git a/frysk-sys/frysk/sys/DaemonPipePair.java b/frysk-sys/frysk/sys/DaemonPipePair.java index 80cf9f8..b040b3c 100644 --- a/frysk-sys/frysk/sys/DaemonPipePair.java +++ b/frysk-sys/frysk/sys/DaemonPipePair.java @@ -43,21 +43,16 @@ package frysk.sys; * A pair of pipes wired to a daemon process. */ -public class DaemonPipePair - extends PipePair -{ - protected ProcessIdentifier spawn (Redirect redirect, - Execute exec) - { - return new Daemon (redirect, exec); +public class DaemonPipePair extends PipePair { + protected ProcessIdentifier spawn(Redirect redirect, + Execute exec) { + return DaemonFactory.create(redirect, exec); } - public DaemonPipePair (String[] argv) - { - super (new Exec (argv)); + public DaemonPipePair(String[] argv) { + super(new Exec (argv)); } - public DaemonPipePair (Execute exec) - { - super (exec); + public DaemonPipePair(Execute exec) { + super(exec); } } diff --git a/frysk-sys/frysk/sys/PseudoTerminal.java b/frysk-sys/frysk/sys/PseudoTerminal.java index 05acfa6..43bfe2c 100755 --- a/frysk-sys/frysk/sys/PseudoTerminal.java +++ b/frysk-sys/frysk/sys/PseudoTerminal.java @@ -119,17 +119,15 @@ public class PseudoTerminal * Convenience method, adds a child process bound to this * pseudo-terminal. */ - public ProcessIdentifier addChild (String[] args) - { - return new Child (new RedirectStdio (name), new Exec (args)); + public ProcessIdentifier addChild(String[] args) { + return ChildFactory.create(new RedirectStdio (name), new Exec (args)); } /** * Convenience method, adds a daemon process bound to this * pseudo-terminal. */ - public ProcessIdentifier addDaemon (String[] args) - { - return new Daemon (new RedirectStdio (name), new Exec (args)); + public ProcessIdentifier addDaemon(String[] args) { + return DaemonFactory.create(new RedirectStdio (name), new Exec (args)); } } diff --git a/frysk-sys/frysk/sys/TestPtrace.java b/frysk-sys/frysk/sys/TestPtrace.java index 9282fe6..0b68caf 100644 --- a/frysk-sys/frysk/sys/TestPtrace.java +++ b/frysk-sys/frysk/sys/TestPtrace.java @@ -41,7 +41,7 @@ package frysk.sys; import frysk.junit.TestCase; import frysk.testbed.TearDownProcess; -import frysk.testbed.AttachedSelf; +import frysk.testbed.ForkFactory; import frysk.sys.Ptrace.AddressSpace; import frysk.testbed.LocalMemory; import frysk.testbed.LocalMemory.StackBuilder; @@ -113,9 +113,8 @@ public class TestPtrace /** * Check attach (to oneself). */ - public void testAttachDetach () - { - final ProcessIdentifier pid = new Daemon(new Execute() { + public void testAttachDetach() { + final ProcessIdentifier pid = DaemonFactory.create(new Execute() { public void execute() { Itimer.sleep (TestCase.getTimeoutSeconds()); } @@ -130,7 +129,7 @@ public class TestPtrace fail (why); } public void stopped(ProcessIdentifier pid, Signal signal) { - assertEquals("stopped pid", id, pid); + assertSame("stopped pid", id, pid); assertSame("stopped sig", Signal.STOP, signal); } }); @@ -149,22 +148,20 @@ public class TestPtrace assertEquals("Errno", Errno.Echild.class, errno.getClass()); } - private void verifyBytes (String what, int pid, - AddressSpace space, - byte[] bytes, long addr) - { + private void verifyBytes(String what, ProcessIdentifier pid, + AddressSpace space, + byte[] bytes, long addr) { for (int i = 0; i < bytes.length; i++) { - assertEquals (what + " " + i + " at " + addr + " in " + space, - bytes[i] & 0xff, // signed - ulgh - space.peek(pid, addr + i)); + assertEquals(what + " " + i + " at " + addr + " in " + space, + bytes[i] & 0xff, // signed - ulgh + space.peek(pid, addr + i)); } } private void verifyPeek (String what, AddressSpace space, byte[] bytes, long addr) { - verifyBytes (what, new AttachedSelf ().hashCode(), - space, bytes, addr); + verifyBytes (what, ForkFactory.attachedDaemon(), space, bytes, addr); } public void testTextValPeek () { @@ -207,14 +204,13 @@ public class TestPtrace }); } - public void verifyPoke (String what, AddressSpace space, - byte[] bytes, long addr) - { - int pid = new AttachedSelf ().hashCode(); + public void verifyPoke(String what, AddressSpace space, + byte[] bytes, long addr) { + ProcessIdentifier pid = ForkFactory.attachedDaemon(); for (byte i = 4; i < 12; i++) { space.poke(pid, addr + i, i); bytes[i] = i; - verifyBytes (what, pid, space, bytes, addr); + verifyBytes(what, pid, space, bytes, addr); } } public void testTextValPoke () @@ -258,10 +254,9 @@ public class TestPtrace }); } - private void verifyPeekBytes (String why, AddressSpace space, - byte[] startBytes, long startAddr) - { - int pid = new AttachedSelf().hashCode(); + private void verifyPeekBytes(String why, AddressSpace space, + byte[] startBytes, long startAddr) { + ProcessIdentifier pid = ForkFactory.attachedDaemon(); byte[] pidBytes = new byte[startBytes.length]; byte[] myBytes = new byte[startBytes.length]; for (int addr = 4; addr < 9; addr++) { @@ -326,10 +321,9 @@ public class TestPtrace }); } - private void verifyPokeBytes (String why, AddressSpace space, - byte[] startBytes, long startAddr) - { - int pid = new AttachedSelf().hashCode(); + private void verifyPokeBytes(String why, AddressSpace space, + byte[] startBytes, long startAddr) { + ProcessIdentifier pid = ForkFactory.attachedDaemon(); byte[] newBytes = new byte[startBytes.length]; byte[] myBytes = new byte[startBytes.length]; byte[] pidBytes = new byte[startBytes.length]; @@ -402,19 +396,17 @@ public class TestPtrace }); } - private void verifyOutOfBounds (String why, boolean expected, - int length, byte[] bytes, int offset) - { - int pid = new AttachedSelf().hashCode(); + private void verifyOutOfBounds(String why, boolean expected, + int length, byte[] bytes, int offset) { + ProcessIdentifier pid = ForkFactory.attachedDaemon(); boolean caught = false; try { - AddressSpace.DATA.peek (pid, LocalMemory.getCodeAddr (), length, - bytes, offset); - } - catch (ArrayIndexOutOfBoundsException e) { + AddressSpace.DATA.peek(pid, LocalMemory.getCodeAddr (), length, + bytes, offset); + } catch (ArrayIndexOutOfBoundsException e) { caught = true; } - assertEquals (why + " exception", expected, caught); + assertEquals(why + " exception", expected, caught); } public void testLengthUnderBound () { diff --git a/frysk-sys/frysk/sys/cni/Child.cxx b/frysk-sys/frysk/sys/cni/ChildFactory.cxx similarity index 94% rename from frysk-sys/frysk/sys/cni/Child.cxx rename to frysk-sys/frysk/sys/cni/ChildFactory.cxx index 26741bf..4c5ef9b 100644 --- a/frysk-sys/frysk/sys/cni/Child.cxx +++ b/frysk-sys/frysk/sys/cni/ChildFactory.cxx @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -51,13 +51,13 @@ #include "frysk/sys/ProcessIdentifier.h" #include "frysk/sys/ProcessIdentifierFactory.h" #include "frysk/sys/ProcessIdentifierDecorator.h" -#include "frysk/sys/Child.h" +#include "frysk/sys/ChildFactory.h" #include "frysk/sys/Redirect.h" #include "frysk/sys/Execute.h" frysk::sys::ProcessIdentifier* -frysk::sys::Child::child (frysk::sys::Redirect* redirect, - frysk::sys::Execute* exec) +frysk::sys::ChildFactory::child (frysk::sys::Redirect* redirect, + frysk::sys::Execute* exec) { // Fork/exec errno = 0; diff --git a/frysk-sys/frysk/sys/cni/Daemon.cxx b/frysk-sys/frysk/sys/cni/DaemonFactory.cxx similarity index 95% rename from frysk-sys/frysk/sys/cni/Daemon.cxx rename to frysk-sys/frysk/sys/cni/DaemonFactory.cxx index f4b5d60..46b8a53 100644 --- a/frysk-sys/frysk/sys/cni/Daemon.cxx +++ b/frysk-sys/frysk/sys/cni/DaemonFactory.cxx @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// Copyright 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 @@ -51,13 +51,13 @@ #include "frysk/sys/ProcessIdentifier.h" #include "frysk/sys/ProcessIdentifierFactory.h" #include "frysk/sys/ProcessIdentifierDecorator.h" -#include "frysk/sys/Daemon.h" +#include "frysk/sys/DaemonFactory.h" #include "frysk/sys/Redirect.h" #include "frysk/sys/Execute.h" frysk::sys::ProcessIdentifier* -frysk::sys::Daemon::daemon (frysk::sys::Redirect* redirect, - frysk::sys::Execute* exec) +frysk::sys::DaemonFactory::daemon(frysk::sys::Redirect* redirect, + frysk::sys::Execute* exec) { volatile int pid = -1; diff --git a/frysk-sys/frysk/testbed/ChangeLog b/frysk-sys/frysk/testbed/ChangeLog index a06ff7c..d038eb5 100644 --- a/frysk-sys/frysk/testbed/ChangeLog +++ b/frysk-sys/frysk/testbed/ChangeLog @@ -1,3 +1,9 @@ +2008-02-07 Andrew Cagney <cagney@redhat.com> + + * ForkFactory.java: New. + * DetachedSelf.java: Delete. + * AttachedSelf.java: Delete. + 2008-02-06 Andrew Cagney <cagney@redhat.com> * TearDownProcess.java: Update to match WaitBuilder's stopped, diff --git a/frysk-sys/frysk/testbed/DetachedSelf.java b/frysk-sys/frysk/testbed/DetachedSelf.java deleted file mode 100644 index b8daf72..0000000 --- a/frysk-sys/frysk/testbed/DetachedSelf.java +++ /dev/null @@ -1,71 +0,0 @@ -// This file is part of the program FRYSK. -// -// Copyright 2007, 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 -// the Free Software Foundation; version 2 of the License. -// -// FRYSK is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with FRYSK; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. -// hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-02-07 16:39 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=20080207163901.14637.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).