From: Adam Jocksch <ajocksch@redhat.com>
To: Adam Jocksch <ajocksch@redhat.com>
Cc: frysk <frysk@sourceware.org>
Subject: Re: Some trouble writing a testcase
Date: Mon, 14 May 2007 18:04:00 -0000 [thread overview]
Message-ID: <4648A3D3.60309@redhat.com> (raw)
In-Reply-To: <46488CBD.3010508@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1167 bytes --]
Adam Jocksch wrote:
> Ok, I'm trying to write a simple testcase for the newly created
> Display class and I'm uncovering some of the rust that's built up over
> that last few months :P. Essentially the test I want to create
> consists of having a program:
>
> int x;
> x = 1; *
> x = 2; **
>
> Then creating breakpoints at the two lines marked by * and ** and then
> printing out the variable values (via Display) at those two points.
> Right now I'm using AttachedDaemonProcess to create a proc that's
> attached and blocked at the first address of the program. However I'm
> having some difficulties find the right sequence of calls to add the
> breakpoints. Currently I'm trying LineBreakoint.addLineBreakpoint()
> and then adding my own delegate observer to pick up on the calls. Is
> this correct, or is there something else I should be doing?
I've attached the test case as it currently stands. It currently times
out at the assertRunUntilStop("adding bp") on line 91. I also noticed
that the addedTo/deletedFrom/addFailed messages are not being forwarded
to the observer delegate. I added this to my local build but it didnt'
change anything.
[-- Attachment #2: TestDisplay.java --]
[-- Type: text/x-java, Size: 3568 bytes --]
// This file is part of the program FRYSK.
//
// Copyright 2007, Red Hat Inc.
//
// FRYSK is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
//
// FRYSK is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with FRYSK; if not, write to the Free Software Foundation,
// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
//
// In addition, as a special exception, Red Hat, Inc. gives You the
// additional right to link the code of FRYSK with code not covered
// under the GNU General Public License ("Non-GPL Code") and to
// distribute linked combinations including the two, subject to the
// limitations in this paragraph. Non-GPL Code permitted under this
// exception must only link to the code of FRYSK through those well
// defined interfaces identified in the file named EXCEPTION found in
// the source code files (the "Approved Interfaces"). The files of
// Non-GPL Code may instantiate templates or use macros or inline
// functions from the Approved Interfaces without causing the
// resulting work to be covered by the GNU General Public
// License. Only Red Hat, Inc. may make changes or additions to the
// list of Approved Interfaces. You must obey the GNU General Public
// License in all respects for all of the FRYSK code and other code
// used in conjunction with FRYSK except the Non-GPL Code covered by
// this exception. If you modify this file, you may extend this
// exception to your version of the file, but you are not obligated to
// do so. If you do not wish to provide this exception without
// modification, you must delete this exception statement from your
// version and license this file solely under the GPL without
// exception.
package frysk.rt;
import frysk.Config;
import frysk.proc.Manager;
import frysk.proc.Task;
import frysk.proc.TestLib;
import frysk.rt.Breakpoint.PersistentBreakpoint;
public class TestDisplay
extends TestLib
{
public void testVarValueChanged()
{
AttachedDaemonProcess process =
new AttachedDaemonProcess(new String[]{getExecPath("funit-rt-varchange")});
assertNotNull(process.mainTask);
SteppingEngine.setProc(process.mainTask.getProc());
LineBreakpoint brk1 =
LineBreakpoint.addLineBreakpoint(process.mainTask,
Config.getRootSrcDir()+
"/frysk-core/frysk/rt/pkglibdir/funit-rt-varchange.c",
66);
brk1.setObserverDelegate(new BreakpointObserver()
{
public void deletedFrom (Object observable)
{
System.err.println("bp deleted");
}
public void addedTo (Object observable)
{
System.err.println("Added");
Manager.eventLoop.requestStop();
}
public void addFailed (Object observable, Throwable w)
{
System.err.println("failed");
Manager.eventLoop.requestStop();
}
public void updateHit (PersistentBreakpoint breakpoint, Task task,
long address)
{
System.err.println("breakpoint at " + address);
Manager.eventLoop.requestStop();
}
});
assertRunUntilStop("adding bp");
process.resume();
}
}
prev parent reply other threads:[~2007-05-14 18:01 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-14 16:47 Adam Jocksch
2007-05-14 18:04 ` Adam Jocksch [this message]
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=4648A3D3.60309@redhat.com \
--to=ajocksch@redhat.com \
--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).