public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: pmuldoon@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Document testcase, add empty stacktrace test
Date: Mon, 19 Nov 2007 13:14:00 -0000	[thread overview]
Message-ID: <20071119131436.19286.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  e05a55a7ba2861173cb86e603b2e312f4c42b197 (commit)
      from  bbf660ad5f803e000274503ad878040f4d604fef (commit)

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

- Log -----------------------------------------------------------------
commit e05a55a7ba2861173cb86e603b2e312f4c42b197
Author: Phil Muldoon <pmuldoon@redhat.com>
Date:   Mon Nov 19 13:14:25 2007 +0000

    Document testcase, add empty stacktrace test
    
    2007-11-19  Phil Muldoon  <pmuldoon@redhat.com>
    
    	* TestLinuxCore.java (testLinuxCoreFileStackTrace): Rename
    	variables, document test case, check for empty stacktraces.
    	frysk-core/frysk/proc/dead/.#TestLinuxCore.java

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

Summary of changes:
 frysk-core/frysk/proc/dead/ChangeLog          |    4 +
 frysk-core/frysk/proc/dead/TestLinuxCore.java |   89 +++++++++++++++++--------
 2 files changed, 65 insertions(+), 28 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog
index 4d90ad6..191c1da 100644
--- a/frysk-core/frysk/proc/dead/ChangeLog
+++ b/frysk-core/frysk/proc/dead/ChangeLog
@@ -1,9 +1,13 @@
 2007-11-19  Phil Muldoon  <pmuldoon@redhat.com>
 
+	* TestLinuxCore.java (testLinuxCoreFileStackTrace): Rename
+	variables, document test case, check for empty stacktraces.
+	
 	* TestLinuxCore.java (testLinuxCoreFileStackTrace): Pass
 	executable location to LinuxHost. Fix 5352. Remove unresolved.
 	Fix 11-15 indention oops.
 
+
 2007-11-17  Andrew Cagney  <cagney@redhat.com>
 
 	* TestLinuxCore.java (testLinuxCoreFileStackTrace()): Mark as
diff --git a/frysk-core/frysk/proc/dead/TestLinuxCore.java b/frysk-core/frysk/proc/dead/TestLinuxCore.java
index 94f21ec..45eec06 100644
--- a/frysk-core/frysk/proc/dead/TestLinuxCore.java
+++ b/frysk-core/frysk/proc/dead/TestLinuxCore.java
@@ -134,19 +134,62 @@ public class TestLinuxCore
     return -1;
   }
 
+  /**
+   * Test that a corefile backtrace and a live process backtrace
+   * match on a blocked process
+   *
+   **/
   public void testLinuxCoreFileStackTrace () {
    
-    final Proc ackProc; // = giveMeAProc();
+    Proc testProc;
     
+    // Create a blocked process, blocked at a signal
     File exeFile = Config.getPkgLibFile("funit-stacks");
-    ackProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc();
+    testProc = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc();
+
 
+    StacktraceAction liveStacktrace;
+    StacktraceAction coreStacktrace;
+    StringWriter liveStackOutput = new StringWriter();
+    StringWriter coreStackOutput = new StringWriter();
 
-    StacktraceAction stacker;
-    StacktraceAction coreStack;
+    // Create a Stacktrace of the blocked live process
+    liveStacktrace = new StacktraceAction(new PrintWriter(liveStackOutput),
+					  testProc, 
+					  new RequestStopEvent(Manager.eventLoop), 
+					  true, false, false, false, false, false)
 
-    StringWriter stringWriter1 = new StringWriter();
-    stacker = new StacktraceAction(new PrintWriter(stringWriter1),ackProc, new RequestStopEvent(Manager.eventLoop), true, false,false, false, false, false)
+      {
+	
+	public void addFailed (Object observable, Throwable w)
+	{
+	  fail("Proc add failed: " + w.getMessage());
+	}
+      };
+
+    // And run ....
+    new ProcBlockAction (testProc, liveStacktrace);
+    assertRunUntilStop("Perform live process Backtrace");
+
+    // Check that the live process stacktrace acually produces
+    // something. If not there is a problem beyond this tests
+    // scope.
+    assertTrue("Live stack trace is not  empty", 
+	       liveStackOutput.getBuffer().length() > 0);
+
+    // Create a  corefile from blocked process, and model.
+    String coreFileName = constructCore(testProc);
+    File testCore = new File(coreFileName);
+    Host coreHost = new LinuxHost(Manager.eventLoop, 
+				  testCore, exeFile);
+    Proc coreProc = coreHost.getProc(new ProcId(testProc.getPid()));
+
+    // Create a stackktrace of a the corefile process
+    coreStacktrace = new StacktraceAction(new PrintWriter(coreStackOutput),
+					  coreProc, 
+					  new PrintEvent(),
+					  true, false, false, false , 
+					  false, false)
     {
 
       public void addFailed (Object observable, Throwable w)
@@ -155,31 +198,21 @@ public class TestLinuxCore
       }
     };
 
-    new ProcBlockAction (ackProc, stacker);
-    assertRunUntilStop("perform backtrace");
-
-    String coreFileName = constructCore(ackProc);
-    File xtestCore = new File(coreFileName);
-
-    Host lcoreHost = new LinuxHost(Manager.eventLoop, 
-				   xtestCore, exeFile);
-    
-    Proc coreProc = lcoreHost.getProc(new ProcId(ackProc.getPid()));
+    // And run ....
+    new ProcCoreAction(coreProc, coreStacktrace);
+    assertRunUntilStop("Perform corefile Backtrace");
 
-    StringWriter stringWriter2 = new StringWriter();
-    coreStack = new StacktraceAction(new PrintWriter(stringWriter2),coreProc, new PrintEvent(),true,false,false,false,false, false)
-    {
+    // Check that the dead process stacktrace produces something. If
+    // not there isa problem beyond this tests scope.
+    assertTrue("Core stack trace is not empty", 
+	       coreStackOutput.getBuffer().length() > 0);
 
-      public void addFailed (Object observable, Throwable w)
-      {
-        fail("Proc add failed: " + w.getMessage());
-      }
-    };
-    new ProcCoreAction(coreProc, coreStack);
-    assertRunUntilStop("perform corebacktrace");
+    // Finally, compare live and core stack traces.
+    assertEquals("Compare stack traces",
+		 liveStackOutput.getBuffer().toString(),
+		 coreStackOutput.getBuffer().toString());
 
-    assertEquals("Compare stack traces",stringWriter1.getBuffer().toString(),stringWriter2.getBuffer().toString());
-    xtestCore.delete();
+    testCore.delete();
   }
 
   private static class PrintEvent implements Event


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


                 reply	other threads:[~2007-11-19 13:14 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=20071119131436.19286.qmail@sourceware.org \
    --to=pmuldoon@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).