From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7088 invoked by alias); 7 Dec 2007 12:13:32 -0000 Received: (qmail 6941 invoked by uid 9514); 7 Dec 2007 12:13:27 -0000 Date: Fri, 07 Dec 2007 12:13:00 -0000 Message-ID: <20071207121327.6926.qmail@sourceware.org> From: pmuldoon@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Refactor Auxv test, move AuxvStringBuilder to utils. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: af8def376f0ce3d3f216c3704bca8aec55843927 X-Git-Newrev: 108636b93367206922bef95b14494b4cb7dbe244 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/msg00541.txt.bz2 The branch, master has been updated via 108636b93367206922bef95b14494b4cb7dbe244 (commit) from af8def376f0ce3d3f216c3704bca8aec55843927 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 108636b93367206922bef95b14494b4cb7dbe244 Author: Phil Muldoon Date: Fri Dec 7 12:13:18 2007 +0000 Refactor Auxv test, move AuxvStringBuilder to utils. 2007-12-07 Phil Muldoon * AuxvStringBuilder.java: New. 2007-12-07 Phil Muldoon * AuxvCommand.java: Move AuxvStringBuilder from here to frysk.util. * TestAuxvCommand.java (testAuxVCoreCommand): Rewrite. Extract auxv from live process, generate core, test against fhpd represention of core auxv data. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/AuxvCommand.java | 30 +----------- frysk-core/frysk/hpd/ChangeLog | 9 +++ frysk-core/frysk/hpd/TestAuxvCommand.java | 52 ++++++++++++-------- .../frysk/util/AuxvStringBuilder.java | 46 +++++++++-------- frysk-core/frysk/util/ChangeLog | 4 ++ 5 files changed, 71 insertions(+), 70 deletions(-) copy frysk-sys/lib/dwfl/DwarfException.java => frysk-core/frysk/util/AuxvStringBuilder.java (77%) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/AuxvCommand.java b/frysk-core/frysk/hpd/AuxvCommand.java index 79f52fd..41d2fa1 100644 --- a/frysk-core/frysk/hpd/AuxvCommand.java +++ b/frysk-core/frysk/hpd/AuxvCommand.java @@ -39,11 +39,11 @@ package frysk.hpd; -import inua.elf.AT; import java.util.Iterator; import java.util.List; import frysk.proc.Auxv; import frysk.proc.Proc; +import frysk.util.AuxvStringBuilder; public class AuxvCommand extends ParameterizedCommand { @@ -89,31 +89,5 @@ public class AuxvCommand extends ParameterizedCommand { int completer(CLI cli, Input input, int cursor, List completions) { return -1; - } - - abstract class AuxvStringBuilder - { - protected AuxvStringBuilder() { - } - - public final void construct (Auxv[] rawAuxv) { - String value; - for (int i=0; i < rawAuxv.length; i++) { - switch (rawAuxv[i].type) { - case 33: - case 16: - case 3: - case 9: - case 15: - value = "0x"+Long.toHexString(rawAuxv[i].val); - break; - default: - value = ""+rawAuxv[i].val; - } - buildLine(AT.toString(rawAuxv[i].type), AT.toPrintString(rawAuxv[i].type), value); - } - } - - abstract public void buildLine(String type, String desc, String value); - } + } } diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 7e612de..cbd0566 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,3 +1,12 @@ +2007-12-07 Phil Muldoon + + * AuxvCommand.java: Move AuxvStringBuilder from here + to frysk.util. + * TestAuxvCommand.java (testAuxVCoreCommand): Rewrite. + Extract auxv from live process, generate core, test + against fhpd represention of core auxv data. + + 2007-12-06 Phil Muldoon * TopLevelCommand.java(TopLevelCommand): add auxv command. diff --git a/frysk-core/frysk/hpd/TestAuxvCommand.java b/frysk-core/frysk/hpd/TestAuxvCommand.java index 35fad72..a0f9c59 100644 --- a/frysk-core/frysk/hpd/TestAuxvCommand.java +++ b/frysk-core/frysk/hpd/TestAuxvCommand.java @@ -39,34 +39,46 @@ package frysk.hpd; -import frysk.Config; +import java.io.File; +import java.util.ArrayList; +import java.util.Iterator; + +import frysk.proc.Auxv; +import frysk.proc.Proc; +import frysk.proc.dead.TestLinuxCore; +import frysk.testbed.DaemonBlockedAtSignal; +import frysk.util.AuxvStringBuilder; public class TestAuxvCommand extends TestLib { public void testAuxVCoreCommand() { + + Proc proc = (new DaemonBlockedAtSignal("funit-stacks")).getMainTask().getProc(); + Auxv[] liveAuxv = proc.getAuxv(); + + TestLinuxCore tester = new TestLinuxCore(); + File core = new File(tester.constructCore(proc)); + core.deleteOnExit(); + class BuildAuxv extends AuxvStringBuilder { + + public ArrayList auxvData = new ArrayList(); + public void buildLine(String type, String desc, String value) { + auxvData.add(type+" : " + value+"\n"); + } + } + + BuildAuxv buildAuxv = new BuildAuxv(); + buildAuxv.construct(liveAuxv); + + e = new HpdTestbed(); - e.send("core " + Config.getPkgDataFile("test-core-x86").getPath() + e.send("core " + core.getPath() + " -noexe\n"); e.expect(5, "Attached to core file.*"); e.send("auxv\n"); - e.expect("AT_SYSINFO : 6464512"); - e.expect("AT_SYSINFO_EHDR : 0x62a000"); - e.expect("AT_HWCAP : 0xafe9f1bf"); - e.expect("AT_PAGESZ : 4096"); - e.expect("AT_CLKTCK : 100"); - e.expect("AT_PHDR : 0x8048034"); - e.expect("AT_PHENT : 32"); - e.expect("AT_PHNUM : 8"); - e.expect("AT_BASE : 0"); - e.expect("AT_FLAGS : 0"); - e.expect("AT_ENTRY : 0x80483e0"); - e.expect("AT_UID : 500"); - e.expect("AT_EUID : 500"); - e.expect("AT_GID : 500"); - e.expect("AT_EGID : 500"); - e.expect("AT_0x17 : 0"); - e.expect("AT_PLATFORM : 0xbfcfee4b"); - e.expect("AT_NULL : 0"); + Iterator i = buildAuxv.auxvData.iterator(); + while (i.hasNext()) + e.equals((String)i.next()); e.close(); } } diff --git a/frysk-sys/lib/dwfl/DwarfException.java b/frysk-core/frysk/util/AuxvStringBuilder.java similarity index 77% copy from frysk-sys/lib/dwfl/DwarfException.java copy to frysk-core/frysk/util/AuxvStringBuilder.java index 1f804ad..02ce064 100644 --- a/frysk-sys/lib/dwfl/DwarfException.java +++ b/frysk-core/frysk/util/AuxvStringBuilder.java @@ -36,33 +36,35 @@ // modification, you must delete this exception statement from your // version and license this file solely under the GPL without // exception. +package frysk.util; -package lib.dwfl; +import inua.elf.AT; +import frysk.proc.Auxv; -public class DwarfException - extends RuntimeException + +public abstract class AuxvStringBuilder { - static public final long serialVersionUID = 200703231604l; - public DwarfException() - { - super(); + protected AuxvStringBuilder() { } - public DwarfException(String message) - { - super(message); - } - - public DwarfException(String message, Throwable cause) - { - super(message, cause); - } - - public DwarfException(Throwable cause) - { - super(cause); + public final void construct (Auxv[] rawAuxv) { + String value; + for (int i=0; i < rawAuxv.length; i++) { + switch (rawAuxv[i].type) { + case 33: + case 16: + case 3: + case 9: + case 15: + value = "0x"+Long.toHexString(rawAuxv[i].val); + break; + default: + value = ""+rawAuxv[i].val; + } + buildLine(AT.toString(rawAuxv[i].type), AT.toPrintString(rawAuxv[i].type), value); + } } + + abstract public void buildLine(String type, String desc, String value); } - - diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog index cde359d..c404a5b 100644 --- a/frysk-core/frysk/util/ChangeLog +++ b/frysk-core/frysk/util/ChangeLog @@ -1,3 +1,7 @@ +2007-12-07 Phil Muldoon + + * AuxvStringBuilder.java: New. + 2007-12-04 Andrew Cagney Merge frysk.sys.Sig into frysk.sys.Signal. hooks/post-receive -- frysk system monitor/debugger