This is the mail archive of the
frysk-cvs@sources.redhat.com
mailing list for the frysk project.
[SCM] master: Add StepOverPrologue test.
- From: mark at sourceware dot org
- To: frysk-cvs at sourceware dot org
- Date: 3 Dec 2007 20:47:29 -0000
- Subject: [SCM] master: Add StepOverPrologue test.
- Reply-to: frysk at sourceware dot org
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