This is the mail archive of the frysk-cvs@sources.redhat.com mailing list for the frysk project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[SCM] master: Add StepOverPrologue test.


The branch, master has been updated
       via  32035e6f7ed081a0d73a4fd035b142981048a220 (commit)
      from  778ac77d3fe215ae14102f07822ba0f3d1cc0079 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit 32035e6f7ed081a0d73a4fd035b142981048a220
Author: Mark Wielaard <mwielaard@redhat.com>
Date:   Mon Dec 3 21:47:15 2007 +0100

    Add StepOverPrologue test.
    
    frysk-core/frysk/pkglibdir/ChangeLog
    2007-12-03  Mark Wielaard  <mwielaard@redhat.com>
    
        * funit-stepping-asm.S: Add fifth function and _stepOverPrologue_
        marker.
    
    frysk-core/frysk/stepping/ChangeLog
    2007-12-03  Mark Wielaard  <mwielaard@redhat.com>
    
        * TestStepping.java (testASMFunctionStepOverPrologue): New test.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/pkglibdir/ChangeLog            |    5 ++
 frysk-core/frysk/pkglibdir/funit-stepping-asm.S |    8 ++++
 frysk-core/frysk/stepping/ChangeLog             |   10 +++-
 frysk-core/frysk/stepping/TestStepping.java     |   46 +++++++++++++++++++++++
 4 files changed, 66 insertions(+), 3 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog
index 0b15918..6083017 100644
--- a/frysk-core/frysk/pkglibdir/ChangeLog
+++ b/frysk-core/frysk/pkglibdir/ChangeLog
@@ -1,3 +1,8 @@
+2007-12-03  Mark Wielaard  <mwielaard@redhat.com>
+
+	* funit-stepping-asm.S: Add fifth function and _stepOverPrologue_
+	marker.
+
 2007-12-03  Sami Wagiaalla  <swagiaal@toner.toronto.redhat.com>
 
 	* funit-class-static.cxx: Added a def of static_i.
diff --git a/frysk-core/frysk/pkglibdir/funit-stepping-asm.S b/frysk-core/frysk/pkglibdir/funit-stepping-asm.S
index 4af1506..cde2b22 100644
--- a/frysk-core/frysk/pkglibdir/funit-stepping-asm.S
+++ b/frysk-core/frysk/pkglibdir/funit-stepping-asm.S
@@ -40,10 +40,18 @@
 
 #include "frysk-asm.h"
 
+	FUNCTION_BEGIN(fifth,1)
+	FUNCTION_PROLOGUE(fifth,1) ; NO_OP	// _stepOverPrologue_
+	FUNCTION_EPILOGUE(fifth,1)
+	FUNCTION_RETURN(fifth,1)
+	FUNCTION_END(fifth,1)
+	
+	
 	FUNCTION_BEGIN(fourth,0)
 	FUNCTION_PROLOGUE(fourth,0)
 	NO_OP					// _stepAdvanceStart_
 	NO_OP
+	FUNCTION_CALL(fifth)
 	FUNCTION_EPILOGUE(fourth,0)
 	FUNCTION_RETURN(fourth,0)
 	FUNCTION_END(fourth,0)
diff --git a/frysk-core/frysk/stepping/ChangeLog b/frysk-core/frysk/stepping/ChangeLog
index f643eb3..7a52835 100644
--- a/frysk-core/frysk/stepping/ChangeLog
+++ b/frysk-core/frysk/stepping/ChangeLog
@@ -1,7 +1,11 @@
+2007-12-03  Mark Wielaard  <mwielaard@redhat.com>
+
+	* TestStepping.java (testASMFunctionStepOverPrologue): New test.
+
 2007-11-06  Tim Moore  <timoore@redhat.com>
-    
-    	* SteppingEngine.java (ThreadLifeObservable.updateTerminated):
-    	Clean out the dead task and its siblings if necessary.
+
+	* SteppingEngine.java (ThreadLifeObservable.updateTerminated):
+	Clean out the dead task and its siblings if necessary.
 
 2007-10-14  Andrew Cagney  <cagney@redhat.com>
 
diff --git a/frysk-core/frysk/stepping/TestStepping.java b/frysk-core/frysk/stepping/TestStepping.java
index 7f14ea1..cab4480 100644
--- a/frysk-core/frysk/stepping/TestStepping.java
+++ b/frysk-core/frysk/stepping/TestStepping.java
@@ -952,6 +952,52 @@ public class TestStepping extends TestLib {
 	cleanup();
     }
 
+  /**
+   * Tests that the line stepper steps OK even when stack pointer
+   * changes.
+   */                                                                          
+    public void testASMFunctionStepOverPrologue() {
+
+	/** Variable setup */
+	String source = Config.getRootSrcDir()
+	    + "frysk-core/frysk/pkglibdir/funit-stepping-asm.S";
+
+	this.scanner = new TestfileTokenScanner(new File(source));
+
+	/* The line number where the test begins, prologue of fifth
+	   function. */
+	int startLine = this.scanner.findTokenLine("_stepOverPrologue_");
+
+	/* The line number the test should end up at, still the same
+	   line (only prologue is stepped over, not the NO_OP) */
+	int endLine = this.scanner.findTokenLine("_stepOverPrologue_");
+
+	/* The test process */
+	dbae = new DaemonBlockedAtEntry(Config
+					.getPkgLibFile("funit-stepping-asm"));
+
+	Task theTask = dbae.getMainTask();
+
+	this.testStarted = false;
+
+	initTaskWithTask(theTask, source, startLine, endLine);
+
+	this.currentTest = new AssertLine(endLine, theTask);
+
+	DebugInfoFrame frame = DebugInfoStackFactory
+	    .createDebugInfoStackTrace(theTask);
+	assertTrue("Line information present", frame.getLines().length > 0);
+
+	/** The stepping operation */
+	this.se.stepOver(theTask, frame);
+
+	this.testStarted = true;
+	/** Run to completion */
+	assertRunUntilStop("Running test");
+	cleanup();
+    }
+
+
     boolean genericUpdate = false;
 
     public Task initTask(Offspring process, String source, int startLine,


hooks/post-receive
--
frysk system monitor/debugger


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]