public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Move stepping test in frysk.proc to frysk.stepping.
Date: Wed, 12 Mar 2008 20:39:00 -0000	[thread overview]
Message-ID: <20080312203949.13184.qmail@sourceware.org> (raw)

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 <cagney@redhat.com>
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  <cagney@redhat.com>
    
    	* TestTaskObserverInstruction.java
    	(testFirstInstructionSteppingEngine()):	Delete; move to
    	frysk.stepping.TestFirstInstruction.
    
    frysk-core/frysk/stepping/ChangeLog
    2008-03-12  Andrew Cagney  <cagney@redhat.com>
    
    	* TestFirstInstruction.java: Extract from
    	frysk.proc.TestTaskObserverInstruction.java.

commit 3f4f46c89562cd78b8704062e333326b3b447baa
Author: Andrew Cagney <cagney@redhat.com>
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  <cagney@redhat.com>
    
    	* 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  <cagney@redhat.com>
+
+	* TestTaskObserverInstruction.java
+	(testFirstInstructionSteppingEngine()):	Delete; move to
+	frysk.stepping.TestFirstInstruction.
+
+	* TestTaskObserverInstructionSigReturn.java: Register tasks with
+	TearDownProcess.
+
 2008-03-11  Andrew Cagney  <cagney@redhat.com>
 
 	* 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  <cagney@redhat.com>
+
+	* TestFirstInstruction.java: Extract from
+	frysk.proc.TestTaskObserverInstruction.java.
+
 2008-03-03  Andrew Cagney  <cagney@redhat.com>
 
 	* 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


                 reply	other threads:[~2008-03-12 20: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=20080312203949.13184.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: link
Be 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).