From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13253 invoked by alias); 12 Mar 2008 20:39:54 -0000 Received: (qmail 13199 invoked by uid 367); 12 Mar 2008 20:39:49 -0000 Date: Wed, 12 Mar 2008 20:39:00 -0000 Message-ID: <20080312203949.13184.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Move stepping test in frysk.proc to frysk.stepping. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: cba040e1437a19ae0f0b21d560b13cb6d2091282 X-Git-Newrev: 63483127121a20b5318affa620e6f42cb7040cfb 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/msg00347.txt.bz2 The branch, master has been updated via 63483127121a20b5318affa620e6f42cb7040cfb (commit) via 3f4f46c89562cd78b8704062e333326b3b447baa (commit) from cba040e1437a19ae0f0b21d560b13cb6d2091282 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 63483127121a20b5318affa620e6f42cb7040cfb Author: Andrew Cagney Date: Wed Mar 12 16:38:43 2008 -0400 Move stepping test in frysk.proc to frysk.stepping. frysk-core/frysk/proc/ChangeLog 2008-03-12 Andrew Cagney * TestTaskObserverInstruction.java (testFirstInstructionSteppingEngine()): Delete; move to frysk.stepping.TestFirstInstruction. frysk-core/frysk/stepping/ChangeLog 2008-03-12 Andrew Cagney * TestFirstInstruction.java: Extract from frysk.proc.TestTaskObserverInstruction.java. commit 3f4f46c89562cd78b8704062e333326b3b447baa Author: Andrew Cagney Date: Wed Mar 12 15:43:52 2008 -0400 Remember to register the task directly created. frysk-core/frysk/proc/ChangeLog 2008-03-12 Andrew Cagney * TestTaskObserverInstructionSigReturn.java: Register tasks with TearDownProcess. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 9 ++ .../frysk/proc/TestTaskObserverInstruction.java | 69 +-------------- .../proc/TestTaskObserverInstructionSigReturn.java | 14 ++-- frysk-core/frysk/stepping/ChangeLog | 5 + .../TestFirstInstruction.java} | 91 +++++++++++--------- 5 files changed, 73 insertions(+), 115 deletions(-) copy frysk-core/frysk/{testbed/StopEventLoopWhenProcTerminated.java => stepping/TestFirstInstruction.java} (59%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 3c3a8f6..1022bf7 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,12 @@ +2008-03-12 Andrew Cagney + + * TestTaskObserverInstruction.java + (testFirstInstructionSteppingEngine()): Delete; move to + frysk.stepping.TestFirstInstruction. + + * TestTaskObserverInstructionSigReturn.java: Register tasks with + TearDownProcess. + 2008-03-11 Andrew Cagney * TestInstructions.java: Add task to tearDown. diff --git a/frysk-core/frysk/proc/TestTaskObserverInstruction.java b/frysk-core/frysk/proc/TestTaskObserverInstruction.java index 0a5c921..230b468 100644 --- a/frysk-core/frysk/proc/TestTaskObserverInstruction.java +++ b/frysk-core/frysk/proc/TestTaskObserverInstruction.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 @@ -39,10 +39,6 @@ package frysk.proc; -import java.util.Observable; -import java.util.Observer; -import frysk.stepping.SteppingEngine; -import frysk.stepping.TaskStepEngine; import frysk.testbed.TestLib; import frysk.testbed.Offspring; import frysk.testbed.SlaveOffspring; @@ -140,7 +136,7 @@ public class TestTaskObserverInstruction extends TestLib assertTrue("InstructionObserver hit", instr.hit == 2); } - class StepAttachedObserver implements TaskObserver.Attached + private class StepAttachedObserver implements TaskObserver.Attached { private final InstructionObserver instr; @@ -172,45 +168,7 @@ public class TestTaskObserverInstruction extends TestLib } - private AttachedObserver ao; - private SteppingEngine steppingEngine; - private LockObserver lock; - - public void testFirstInstructionSteppingEngine () - { - lock = new LockObserver(); - steppingEngine = new SteppingEngine(); - steppingEngine.addObserver(lock); - ao = new AttachedObserver(); - String[] cmd = new String[1]; - cmd[0] = getExecPath ("funit-rt-stepper"); - Manager.host.requestCreateAttachedProc("/dev/null", "/dev/null", "/dev/null", cmd, ao); - assertRunUntilStop("Creating attached process"); - } - - protected class AttachedObserver implements TaskObserver.Attached - { - public void addedTo (Object o){ } - - public Action updateAttached (Task task) - { - Proc proc = task.getProc(); - steppingEngine.addProc(proc); - return Action.BLOCK; - } - - public void addFailed (Object observable, Throwable w) - { - System.err.println("addFailed: " + observable + " cause: " + w); - } - - public void deletedFrom (Object o) - { - steppingEngine.stepInstruction((Task) o); - } - } - - static class InstructionObserver implements TaskObserver.Instruction + private static class InstructionObserver implements TaskObserver.Instruction { boolean added; boolean deleted; @@ -240,25 +198,4 @@ public class TestTaskObserverInstruction extends TestLib } } - private boolean flag = true; - - private class LockObserver implements Observer - { - public void update (Observable o, Object arg) - { - TaskStepEngine tse = (TaskStepEngine) arg; - if (! tse.getState().isStopped()) - return; - - if (flag) - { - flag = false; - tse.getTask().requestDeleteAttachedObserver(ao); - } - else - { - Manager.eventLoop.requestStop(); - } - } - } } diff --git a/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java b/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java index 552df1d..a382413 100644 --- a/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java +++ b/frysk-core/frysk/proc/TestTaskObserverInstructionSigReturn.java @@ -107,13 +107,13 @@ public class TestTaskObserverInstructionSigReturn // ignored } - // TaskObserver.Attached interface - public Action updateAttached(Task task) - { - this.task = task; - Manager.eventLoop.requestStop(); - return Action.BLOCK; - } + // TaskObserver.Attached interface + public Action updateAttached(Task task) { + addToTearDown(task); + this.task = task; + Manager.eventLoop.requestStop(); + return Action.BLOCK; + } // TaskObserver.Instruction interface public Action updateExecuted(Task task) diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog index 4033299..c334a10 100644 --- a/frysk-core/frysk/stepping/ChangeLog +++ b/frysk-core/frysk/stepping/ChangeLog @@ -1,3 +1,8 @@ +2008-03-12 Andrew Cagney + + * TestFirstInstruction.java: Extract from + frysk.proc.TestTaskObserverInstruction.java. + 2008-03-03 Andrew Cagney * TestSteppingEngine.java: Use frysk.config. diff --git a/frysk-core/frysk/testbed/StopEventLoopWhenProcTerminated.java b/frysk-core/frysk/stepping/TestFirstInstruction.java similarity index 59% copy from frysk-core/frysk/testbed/StopEventLoopWhenProcTerminated.java copy to frysk-core/frysk/stepping/TestFirstInstruction.java index 5b8737d..6a194e0 100644 --- a/frysk-core/frysk/testbed/StopEventLoopWhenProcTerminated.java +++ b/frysk-core/frysk/stepping/TestFirstInstruction.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2008, 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 @@ -37,56 +37,63 @@ // version and license this file solely under the GPL without // exception. -package frysk.testbed; +package frysk.stepping; -import frysk.proc.Proc; -import frysk.rsl.Log; +import java.util.Observable; +import java.util.Observer; +import frysk.testbed.TestLib; import frysk.proc.Manager; import frysk.proc.TaskObserver; +import frysk.testbed.TaskObserverBase; import frysk.proc.Action; -import frysk.isa.signals.Signal; import frysk.proc.Task; -import frysk.sys.ProcessIdentifier; - -/** - * An observer that stops the eventloop when the process with the - * given pid generates a terminated event. - */ - -public class StopEventLoopWhenProcTerminated extends TaskObserverBase - implements TaskObserver.Terminated -{ - private static final Log fine - = Log.fine(StopEventLoopWhenProcTerminated.class); - - public boolean terminated; - public Signal signal; - public int status; - - private Proc proc; - public String toString() { - return proc.toString(); - } +import frysk.proc.Proc; - public StopEventLoopWhenProcTerminated(Proc proc) { - proc.getMainTask().requestAddTerminatedObserver(this); - } +public class TestFirstInstruction extends TestLib { - public StopEventLoopWhenProcTerminated(ProcessIdentifier pid) { - this(TestLib.assertRunToFindProc(pid)); + private AttachedObserver ao; + private SteppingEngine steppingEngine; + private LockObserver lock; + + public void testFirstInstructionSteppingEngine() { + lock = new LockObserver(); + steppingEngine = new SteppingEngine(); + steppingEngine.addObserver(lock); + ao = new AttachedObserver(); + String[] cmd = new String[1]; + cmd[0] = getExecPath ("funit-rt-stepper"); + Manager.host.requestCreateAttachedProc("/dev/null", "/dev/null", "/dev/null", cmd, ao); + assertRunUntilStop("Creating attached process"); } - public StopEventLoopWhenProcTerminated(Offspring offspring) { - this(offspring.assertRunToFindProc()); + private class AttachedObserver + extends TaskObserverBase + implements TaskObserver.Attached + { + public Action updateAttached(Task task) { + addToTearDown(task); + Proc proc = task.getProc(); + steppingEngine.addProc(proc); + return Action.BLOCK; + } + public void deletedFrom(Object o) { + steppingEngine.stepInstruction((Task) o); + } } - - public Action updateTerminated(Task task, Signal signal, int status) { - fine.log(this, "updateTerminated", task, "signal", signal, "status", - status); - this.terminated = true; - this.signal = signal; - this.status = status; - Manager.eventLoop.requestStop(); - return Action.CONTINUE; + + private class LockObserver implements Observer { + private boolean flag = true; + public void update (Observable o, Object arg) { + TaskStepEngine tse = (TaskStepEngine) arg; + if (! tse.getState().isStopped()) + return; + + if (flag) { + flag = false; + tse.getTask().requestDeleteAttachedObserver(ao); + } else { + Manager.eventLoop.requestStop(); + } + } } } hooks/post-receive -- frysk system monitor/debugger