From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27657 invoked by alias); 17 Jan 2008 19:13:27 -0000 Received: (qmail 27609 invoked by uid 367); 17 Jan 2008 19:13:21 -0000 Date: Thu, 17 Jan 2008 19:13:00 -0000 Message-ID: <20080117191321.27594.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Fix npe in printing of proc/task states. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 7471bf81c02735215985cceea7cd53c9c9027265 X-Git-Newrev: a5715aa1057d05bec280b882aaa08b31132b4d19 Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q1/txt/msg00079.txt.bz2 The branch, master has been updated via a5715aa1057d05bec280b882aaa08b31132b4d19 (commit) via dad9b48141b0df4210204f03d0aaa704e7437882 (commit) via 3b7ca62fcde3fd2351831ee1b902337e7c76c01a (commit) via 1942b91b6f5e5fc974ddf7c6523a03eb81a33b5d (commit) from 7471bf81c02735215985cceea7cd53c9c9027265 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit a5715aa1057d05bec280b882aaa08b31132b4d19 Author: Andrew Cagney Date: Thu Jan 17 12:57:22 2008 -0500 Fix npe in printing of proc/task states. frysk-core/frysk/proc/live/ChangeLog 2008-01-17 Andrew Cagney * LinuxPtraceProc.java (getStateFIXME()): Return "" when null. * LinuxPtraceTask.java (getStateFIXME()): Ditto. commit dad9b48141b0df4210204f03d0aaa704e7437882 Author: Andrew Cagney Date: Thu Jan 17 12:47:20 2008 -0500 Re-indent TestProcStopped. frysk-core/frysk/proc/live/ChangeLog 2008-01-17 Andrew Cagney * TestProcStopped.java: Re-indent. commit 3b7ca62fcde3fd2351831ee1b902337e7c76c01a Author: Andrew Cagney Date: Thu Jan 17 12:05:22 2008 -0500 Move TestProcStopped to frysk.proc.live. frysk-core/frysk/proc/ChangeLog 2008-01-17 Andrew Cagney * TestProcStopped.java: Move to frysk.proc.live. frysk-core/frysk/proc/live/ChangeLog 2008-01-17 Andrew Cagney * TestProcStopped.java: Moved from frysk.proc. commit 1942b91b6f5e5fc974ddf7c6523a03eb81a33b5d Author: Andrew Cagney Date: Thu Jan 17 11:47:44 2008 -0500 Move .assertSendStop() to frysk.testbed.Offspring. frysk-core/frysk/testbed/ChangeLog 2008-01-17 Andrew Cagney * SlaveOffspring.java (assertSendStop()): Move from here ... (STOP_SIG): Delete. * Offspring.java (assertSendStop()): ... to here. * LegacyOffspring.java (assertSendStop()): Delete. (STOP_SIG): Delete. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 4 + frysk-core/frysk/proc/live/ChangeLog | 10 + frysk-core/frysk/proc/live/LinuxPtraceProc.java | 4 +- frysk-core/frysk/proc/live/LinuxPtraceTask.java | 5 +- .../frysk/proc/{ => live}/TestProcStopped.java | 196 +++++++++----------- frysk-core/frysk/testbed/ChangeLog | 8 + frysk-core/frysk/testbed/LegacyOffspring.java | 11 +- frysk-core/frysk/testbed/Offspring.java | 12 +- frysk-core/frysk/testbed/SlaveOffspring.java | 11 +- 9 files changed, 128 insertions(+), 133 deletions(-) rename frysk-core/frysk/proc/{ => live}/TestProcStopped.java (54%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 4d45985..3628748 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,7 @@ +2008-01-17 Andrew Cagney + + * TestProcStopped.java: Move to frysk.proc.live. + 2008-01-16 Andrew Cagney * Task.java (blockers): Delete. diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index 4118d0a..00a2941 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,13 @@ +2008-01-17 Andrew Cagney + + * LinuxPtraceProc.java (getStateFIXME()): Return "" when + null. + * LinuxPtraceTask.java (getStateFIXME()): Ditto. + + * TestProcStopped.java: Re-indent. + + * TestProcStopped.java: Moved from frysk.proc. + 2008-01-16 Andrew Cagney * LinuxPtraceTask.java (blockers): New. diff --git a/frysk-core/frysk/proc/live/LinuxPtraceProc.java b/frysk-core/frysk/proc/live/LinuxPtraceProc.java index c6662d4..4a86392 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceProc.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceProc.java @@ -284,8 +284,10 @@ public class LinuxPtraceProc extends LiveProc { protected String getStateFIXME() { if (newState != null) return newState.toString(); - else + else if (oldState != null) return oldState.toString(); + else + return ""; } /** diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java index 99be7e6..ecf1a58 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java @@ -416,7 +416,10 @@ public class LinuxPtraceTask extends LiveTask { return oldState; } protected String getStateFIXME() { - return getState().toString(); + if (getState() != null) + return getState().toString(); + else + return ""; } /** diff --git a/frysk-core/frysk/proc/TestProcStopped.java b/frysk-core/frysk/proc/live/TestProcStopped.java similarity index 54% rename from frysk-core/frysk/proc/TestProcStopped.java rename to frysk-core/frysk/proc/live/TestProcStopped.java index 17667f0..eaad80a 100644 --- a/frysk-core/frysk/proc/TestProcStopped.java +++ b/frysk-core/frysk/proc/live/TestProcStopped.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 @@ -38,152 +38,130 @@ // exception. -package frysk.proc; +package frysk.proc.live; +import frysk.proc.Manager; import frysk.event.RequestStopEvent; import frysk.testbed.TestLib; import frysk.testbed.SlaveOffspring; +import frysk.proc.Proc; +import frysk.proc.Task; +import frysk.proc.ProcObserver; +import frysk.proc.ProcBlockAction; -public class TestProcStopped - extends TestLib -{ - - public void stopped (SlaveOffspring ackProc, int count) - { - ackProc.assertSendStop(); - Proc proc = ackProc.assertFindProcAndTasks(); - new ProcBlockAction(proc, new MyTester()); - } - - public void running (SlaveOffspring ackProc, int count) - { - Proc proc = ackProc.assertFindProcAndTasks(); - new ProcBlockAction(proc, new MyTester()); - } - - public void testStoppedAckDaemon () - { - if (unresolvedOnUtrace(5114)) - return; - SlaveOffspring ackProc = SlaveOffspring.createDaemon(); - stopped(ackProc, 1); - assertRunUntilStop("testStoppedAckDaemon"); - } - - public void testStoppedDetached () - { - if (unresolvedOnUtrace(5114)) - return; - SlaveOffspring ackProc = SlaveOffspring.createChild(); - stopped(ackProc, 1); - assertRunUntilStop("testStoppedDetached"); - } - - public void testStoppedAttached () - { - SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); - stopped(ackProc, 1); - assertRunUntilStop("testStoppedAttached"); - } - - public void testRunningAckDaemon () - { - SlaveOffspring ackProc = SlaveOffspring.createDaemon(); - running(ackProc, 1); - assertRunUntilStop("testRunningAckDaemon"); - } - - public void testRunningDetached () - { - SlaveOffspring ackProc = SlaveOffspring.createChild(); - running(ackProc, 1); - assertRunUntilStop("testRunningDetached"); - } - - public void testRunningAttached () - { - SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); - running(ackProc, 1); - assertRunUntilStop("testRunningAttached"); - } - - public void testMultiThreadedStoppedAckDaemon () { +public class TestProcStopped extends TestLib { + + private void stopped(SlaveOffspring ackProc) { + ackProc.assertSendStop(); + Proc proc = ackProc.assertFindProcAndTasks(); + new ProcBlockAction(proc, new MyTester()); + } + + private void running(SlaveOffspring ackProc) { + Proc proc = ackProc.assertFindProcAndTasks(); + new ProcBlockAction(proc, new MyTester()); + } + + public void testStoppedAckDaemon() { + if (unresolvedOnUtrace(5114)) + return; + SlaveOffspring ackProc = SlaveOffspring.createDaemon(); + stopped(ackProc); + assertRunUntilStop("testStoppedAckDaemon"); + } + + public void testStoppedDetached() { + if (unresolvedOnUtrace(5114)) + return; + SlaveOffspring ackProc = SlaveOffspring.createChild(); + stopped(ackProc); + assertRunUntilStop("testStoppedDetached"); + } + + public void testStoppedAttached() { + SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); + stopped(ackProc); + assertRunUntilStop("testStoppedAttached"); + } + + public void testRunningAckDaemon() { + SlaveOffspring ackProc = SlaveOffspring.createDaemon(); + running(ackProc); + assertRunUntilStop("testRunningAckDaemon"); + } + + public void testRunningDetached() { + SlaveOffspring ackProc = SlaveOffspring.createChild(); + running(ackProc); + assertRunUntilStop("testRunningDetached"); + } + + public void testRunningAttached() { + SlaveOffspring ackProc = SlaveOffspring.createAttachedChild(); + running(ackProc); + assertRunUntilStop("testRunningAttached"); + } + + public void testMultiThreadedStoppedAckDaemon() { if (unresolvedOnUtrace(3595)) return; SlaveOffspring ackProc = SlaveOffspring.createDaemon() .assertSendAddClonesWaitForAcks(2); - stopped(ackProc, 3); + stopped(ackProc); assertRunUntilStop("testStoppedAckDaemon"); } - public void testMultiThreadedStoppedDetached () { + public void testMultiThreadedStoppedDetached() { if (unresolvedOnUtrace(3595)) return; SlaveOffspring ackProc = SlaveOffspring.createChild() .assertSendAddClonesWaitForAcks(2); - stopped(ackProc, 3); + stopped(ackProc); assertRunUntilStop("testStoppedDetached"); } - public void testMultiThreadedStoppedAttached () { + public void testMultiThreadedStoppedAttached() { SlaveOffspring ackProc = SlaveOffspring.createAttachedChild() .assertSendAddClonesWaitForAcks(2); - stopped(ackProc, 3); + stopped(ackProc); assertRunUntilStop("testStoppedAttached"); } - public void testMultiThreadedRunningAckDaemon () { + public void testMultiThreadedRunningAckDaemon() { SlaveOffspring ackProc = SlaveOffspring.createDaemon() .assertSendAddClonesWaitForAcks(2); - running(ackProc, 3); + running(ackProc); assertRunUntilStop("testRunningAckDaemon"); } - public void testMultiThreadedRunningDetached () { + public void testMultiThreadedRunningDetached() { SlaveOffspring ackProc = SlaveOffspring.createChild() .assertSendAddClonesWaitForAcks(2); - running(ackProc, 3); + running(ackProc); assertRunUntilStop("testRunningDetached"); } - public void testMultiThreadedRunningAttached () { + public void testMultiThreadedRunningAttached() { SlaveOffspring ackProc = SlaveOffspring.createAttachedChild() .assertSendAddClonesWaitForAcks(2); - running(ackProc, 3); + running(ackProc); assertRunUntilStop("testRunningAttached"); } - public class MyTester - implements ProcObserver.ProcAction - { - - public void existingTask (Task task) - { - + public class MyTester implements ProcObserver.ProcAction { + public void existingTask(Task task) { + } + public void deletedFrom(Object observable) { + } + public void allExistingTasksCompleted() { + Manager.eventLoop.add(new RequestStopEvent(Manager.eventLoop)); + } + public void addFailed(Object observable, Throwable w) { + fail("Proc add failed: " + w.getMessage()); + } + public void addedTo(Object observable) { + } + public void taskAddFailed(Object task, Throwable w) { + } } - - public void deletedFrom (Object observable) - { - } - - public void allExistingTasksCompleted () - { - Manager.eventLoop.add(new RequestStopEvent(Manager.eventLoop)); - - } - - public void addFailed (Object observable, Throwable w) - { - fail("Proc add failed: " + w.getMessage()); - } - - public void addedTo (Object observable) - { - } - - public void taskAddFailed (Object task, Throwable w) - { - } - - } } diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index 743820c..0436377 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,11 @@ +2008-01-17 Andrew Cagney + + * SlaveOffspring.java (assertSendStop()): Move from here ... + (STOP_SIG): Delete. + * Offspring.java (assertSendStop()): ... to here. + * LegacyOffspring.java (assertSendStop()): Delete. + (STOP_SIG): Delete. + 2008-01-15 Andrew Cagney * StatState.java (assertRunUntil(int)): Make public. diff --git a/frysk-core/frysk/testbed/LegacyOffspring.java b/frysk-core/frysk/testbed/LegacyOffspring.java index 0b9b1fa..d892e7a 100644 --- a/frysk-core/frysk/testbed/LegacyOffspring.java +++ b/frysk-core/frysk/testbed/LegacyOffspring.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 @@ -92,7 +92,6 @@ public class LegacyOffspring private static final Signal ADD_CLONE_SIG = Signal.USR1; private static final Signal DEL_CLONE_SIG = Signal.USR2; - private static final Signal STOP_SIG = Signal.STOP; private static final Signal ADD_FORK_SIG = Signal.HUP; private static final Signal DEL_FORK_SIG = Signal.INT; private static final Signal ZOMBIE_FORK_SIG = Signal.URG; @@ -227,14 +226,6 @@ public class LegacyOffspring } /** - * Stop a Task. - */ - public void assertSendStop () { - signal(STOP_SIG); - assertIs(StatState.TRACED_OR_STOPPED); - } - - /** * Reap the process.. Kill the process and then wait for and * consume all of that processes waitpid events. */ diff --git a/frysk-core/frysk/testbed/Offspring.java b/frysk-core/frysk/testbed/Offspring.java index c734f32..4dad3ad 100644 --- a/frysk-core/frysk/testbed/Offspring.java +++ b/frysk-core/frysk/testbed/Offspring.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 @@ -68,7 +68,7 @@ public abstract class Offspring { /** * Send the child the sig. */ - public void signal (Signal sig) { + public void signal(Signal sig) { sig.tkill(getPid()); } /** @@ -136,4 +136,12 @@ public abstract class Offspring { public void assertRunUntil(StatState state) { state.assertRunUntil(getPid()); } + + /** + * Stop a Task with a SIGSTOP and then wait until it has stopped.. + */ + public void assertSendStop () { + signal(Signal.STOP); + assertIs(StatState.TRACED_OR_STOPPED); + } } diff --git a/frysk-core/frysk/testbed/SlaveOffspring.java b/frysk-core/frysk/testbed/SlaveOffspring.java index 5b5304e..022156d 100644 --- a/frysk-core/frysk/testbed/SlaveOffspring.java +++ b/frysk-core/frysk/testbed/SlaveOffspring.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 @@ -97,7 +97,6 @@ public class SlaveOffspring private static final Signal ADD_CLONE_SIG = Signal.USR1; private static final Signal DEL_CLONE_SIG = Signal.USR2; - private static final Signal STOP_SIG = Signal.STOP; private static final Signal ADD_FORK_SIG = Signal.HUP; private static final Signal DEL_FORK_SIG = Signal.PROF; private static final Signal ZOMBIE_FORK_SIG = Signal.URG; @@ -234,14 +233,6 @@ public class SlaveOffspring } /** - * Stop a Task. - */ - public void assertSendStop () { - signal(STOP_SIG); - assertIs(StatState.TRACED_OR_STOPPED); - } - - /** * Reap the process.. Kill the process and then wait for and * consume all of that processes waitpid events. */ hooks/post-receive -- frysk system monitor/debugger