From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21970 invoked by alias); 14 May 2007 18:01:05 -0000 Received: (qmail 21952 invoked by uid 22791); 14 May 2007 18:01:04 -0000 X-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,DK_POLICY_SIGNSOME,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (66.187.233.31) by sourceware.org (qpsmtpd/0.31) with ESMTP; Mon, 14 May 2007 18:00:59 +0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.13.1/8.13.1) with ESMTP id l4EI0vS6006823 for ; Mon, 14 May 2007 14:00:57 -0400 Received: from pobox.toronto.redhat.com (pobox.toronto.redhat.com [172.16.14.4]) by int-mx1.corp.redhat.com (8.13.1/8.13.1) with ESMTP id l4EI0qRc032215 for ; Mon, 14 May 2007 14:00:56 -0400 Received: from [10.11.14.15] (vpn-14-15.rdu.redhat.com [10.11.14.15]) by pobox.toronto.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id l4EI0pfB014679; Mon, 14 May 2007 14:00:51 -0400 Message-ID: <4648A3D3.60309@redhat.com> Date: Mon, 14 May 2007 18:04:00 -0000 From: Adam Jocksch User-Agent: Thunderbird 1.5.0.10 (X11/20070306) MIME-Version: 1.0 To: Adam Jocksch CC: frysk Subject: Re: Some trouble writing a testcase References: <46488CBD.3010508@redhat.com> In-Reply-To: <46488CBD.3010508@redhat.com> Content-Type: multipart/mixed; boundary="------------010708030907020801020703" X-Virus-Checked: Checked by ClamAV on sourceware.org X-IsSubscribed: yes Mailing-List: contact frysk-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-owner@sourceware.org X-SW-Source: 2007-q2/txt/msg00154.txt.bz2 This is a multi-part message in MIME format. --------------010708030907020801020703 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-length: 1167 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. --------------010708030907020801020703 Content-Type: text/x-java; name="TestDisplay.java" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="TestDisplay.java" Content-length: 3568 // 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(); } } --------------010708030907020801020703--