public inbox for frysk@sourceware.org
 help / color / mirror / Atom feed
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();
    
  }
}

      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).