From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8291 invoked by alias); 29 Nov 2007 20:06:02 -0000 Received: (qmail 8212 invoked by uid 367); 29 Nov 2007 20:05:53 -0000 Date: Thu, 29 Nov 2007 20:06:00 -0000 Message-ID: <20071129200553.8197.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Add frysk.proc.dead.TestCoreRegs. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: c6bbbe730513c609fe78bb7f92c9cecab7b1aa33 X-Git-Newrev: 844d4ed8788ac42facac66356f9f800cb17d1f72 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: 2007-q4/txt/msg00495.txt.bz2 The branch, master has been updated via 844d4ed8788ac42facac66356f9f800cb17d1f72 (commit) from c6bbbe730513c609fe78bb7f92c9cecab7b1aa33 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 844d4ed8788ac42facac66356f9f800cb17d1f72 Author: Andrew Cagney Date: Thu Nov 29 15:05:30 2007 -0500 Add frysk.proc.dead.TestCoreRegs. frysk-core/frysk/proc/ChangeLog 2007-11-29 Andrew Cagney * TestRegs.java: Move to frysk.proc.live.TestRegs. frysk-core/frysk/proc/dead/ChangeLog 2007-11-29 Andrew Cagney * TestCoreRegs.java: New. frysk-core/frysk/proc/live/ChangeLog 2007-11-29 Andrew Cagney * TestRegs.java: Moved from frysk.proc.TestRegs. frysk-core/frysk/testbed/ChangeLog 2007-11-29 Andrew Cagney * CoreFileAtSignal.java (constructCore(Proc)): New. * RegsCase.java (setTask(Task)): New. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 4 +++ frysk-core/frysk/proc/dead/ChangeLog | 4 +++ .../proc/{TestRegs.java => dead/TestCoreRegs.java} | 18 +++++++++++++- frysk-core/frysk/proc/live/ChangeLog | 4 +++ frysk-core/frysk/proc/{ => live}/TestRegs.java | 2 +- frysk-core/frysk/testbed/ChangeLog | 5 ++++ frysk-core/frysk/testbed/CoreFileAtSignal.java | 23 +++++++++++-------- frysk-core/frysk/testbed/RegsCase.java | 19 +++++++++++++-- 8 files changed, 63 insertions(+), 16 deletions(-) copy frysk-core/frysk/proc/{TestRegs.java => dead/TestCoreRegs.java} (83%) rename frysk-core/frysk/proc/{ => live}/TestRegs.java (99%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index 90e62d2..24a3a95 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * TestRegs.java: Move to frysk.proc.live.TestRegs. + 2007-11-26 Andrew Cagney * X86BankRegisters.java: Replace X8664Registers.XMM8 et.al. with diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog index 8790a32..cb18b1c 100644 --- a/frysk-core/frysk/proc/dead/ChangeLog +++ b/frysk-core/frysk/proc/dead/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * TestCoreRegs.java: New. + 2007-11-29 Phil Muldoon * CorefileByteBuffer.java (peek): Tweak error message diff --git a/frysk-core/frysk/proc/TestRegs.java b/frysk-core/frysk/proc/dead/TestCoreRegs.java similarity index 83% copy from frysk-core/frysk/proc/TestRegs.java copy to frysk-core/frysk/proc/dead/TestCoreRegs.java index bf90609..2e9deaf 100644 --- a/frysk-core/frysk/proc/TestRegs.java +++ b/frysk-core/frysk/proc/dead/TestCoreRegs.java @@ -37,16 +37,30 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.proc.dead; import frysk.isa.Register; import frysk.testbed.RegsCase; +import frysk.proc.Proc; +import frysk.testbed.CoreFileAtSignal; +import frysk.util.Util; +import java.io.File; /** * Check all register values. */ -public class TestRegs extends RegsCase { +public class TestCoreRegs extends RegsCase { + + public void setUp() { + super.setUp(); + // Replace the live task with a dead one. + Proc proc = task().getProc(); + File exe = new File(proc.getExe()); + File core = CoreFileAtSignal.constructCore(proc); + Proc coreProc = Util.getProcFromCoreFile(core, exe); + setTask(coreProc.getMainTask()); + } public void access(Register register, int offset, int length, byte[] bytes, int start, boolean write) { diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index ee712f6..df11d49 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,3 +1,7 @@ +2007-11-29 Andrew Cagney + + * TestRegs.java: Moved from frysk.proc.TestRegs. + 2007-11-27 Jose Flavio Aguilar Paulino * PtraceRegisterBanksFactory.java: Putting single PowerPC ptrace diff --git a/frysk-core/frysk/proc/TestRegs.java b/frysk-core/frysk/proc/live/TestRegs.java similarity index 99% rename from frysk-core/frysk/proc/TestRegs.java rename to frysk-core/frysk/proc/live/TestRegs.java index bf90609..21c3583 100644 --- a/frysk-core/frysk/proc/TestRegs.java +++ b/frysk-core/frysk/proc/live/TestRegs.java @@ -37,7 +37,7 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; +package frysk.proc.live; import frysk.isa.Register; import frysk.testbed.RegsCase; diff --git a/frysk-core/frysk/testbed/ChangeLog b/frysk-core/frysk/testbed/ChangeLog index fb84632..9a990b2 100644 --- a/frysk-core/frysk/testbed/ChangeLog +++ b/frysk-core/frysk/testbed/ChangeLog @@ -1,3 +1,8 @@ +2007-11-29 Andrew Cagney + + * CoreFileAtSignal.java (constructCore(Proc)): New. + * RegsCase.java (setTask(Task)): New. + 2007-11-28 Andrew Cagney * TestRegs.java (testGeneralRegistersPresent()): Rename diff --git a/frysk-core/frysk/testbed/CoreFileAtSignal.java b/frysk-core/frysk/testbed/CoreFileAtSignal.java index 8d058fc..432308c 100644 --- a/frysk-core/frysk/testbed/CoreFileAtSignal.java +++ b/frysk-core/frysk/testbed/CoreFileAtSignal.java @@ -49,16 +49,8 @@ import frysk.Config; public class CoreFileAtSignal extends TestLib { - - /** - * Given a path to an executable it will run it until it sigfaults then - * extracts a corefile at that point, and return a Proc representing - * that core file. - */ - public static File constructCore(File exeFile) { - final Proc ackProc - = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); - final CoredumpAction coreDump + public static File constructCore(Proc ackProc) { + CoredumpAction coreDump = new CoredumpAction(ackProc, new Event() { public void execute() { Manager.eventLoop.requestStop(); @@ -72,6 +64,17 @@ public class CoreFileAtSignal extends TestLib { TearDownFile core = new TearDownFile(coreFileName); return core; } + + /** + * Given a path to an executable it will run it until it sigfaults then + * extracts a corefile at that point, and return a Proc representing + * that core file. + */ + public static File constructCore(File exeFile) { + final Proc ackProc + = new DaemonBlockedAtSignal(exeFile).getMainTask().getProc(); + return constructCore(ackProc); + } /** * Given a path to an executable it will run it until it sigfaults then diff --git a/frysk-core/frysk/testbed/RegsCase.java b/frysk-core/frysk/testbed/RegsCase.java index 23f3fba..a8074eb 100644 --- a/frysk-core/frysk/testbed/RegsCase.java +++ b/frysk-core/frysk/testbed/RegsCase.java @@ -72,15 +72,28 @@ public abstract class RegsCase extends TestLib { private ByteOrder order; private ISA isa; private Registers registers; - public void setUp() { - super.setUp(); - task = new DaemonBlockedAtSignal("funit-regs").getMainTask(); + /** + * Set things up for testing against the specified task. + * + * Initially things are set up for testing against the live + * "funit-regs" process; this can be overwritten by re-calling + * with a new task (for instance from a core file created from the + * live funit-regs. + */ + protected void setTask(Task task) { + this.task = task; isa = task.getISA(); order = isa.order(); registers = RegistersFactory.getRegisters(isa); if (isaValues.containsKey(isa)) values = (Values)isaValues.get(isa); } + + public void setUp() { + super.setUp(); + setTask(new DaemonBlockedAtSignal("funit-regs").getMainTask()); + } + public void tearDown() { task = null; values = null; hooks/post-receive -- frysk system monitor/debugger