Bug 3128 - Most of dogtail test scripts failed in frysk.
Summary: Most of dogtail test scripts failed in frysk.
Status: NEW
Alias: None
Product: frysk
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
: P2 normal
Target Milestone: ---
Assignee: Unassigned
URL:
Keywords:
Depends on:
Blocks: 2234 2777
  Show dependency treegraph
 
Reported: 2006-08-25 08:56 UTC by Yong Zheng
Modified: 2006-11-28 16:44 UTC (History)
3 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments
the patch to fix the bug(based on cvs head 08-30) (376 bytes, text/plain)
2006-08-30 04:17 UTC, Yong Zheng
Details
the full patch to fix this bug (552 bytes, text/plain)
2006-08-30 04:31 UTC, Yong Zheng
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Yong Zheng 2006-08-25 08:56:17 UTC
After finish compiling frysk(cvs head 08-25), run the following cmds:

cd $BUILD/frysk-gui
make check
cd frysk/gui/test/dogtail_scripts
./frysk_suite.sh

All testcases failed and it seems to be the same reason which causes the
failure. The following is one of the case's output. 

Running:
/rtos/source/frysk/temp/build_0825/frysk-gui/../../frysk-0825/frysk-gui/frysk/gui/test/dogtail_scripts/TestCredits.py
Detecting distribution: Red Hat/Fedora/derived distribution
Creating logfile at /tmp/dogtail/logs/TestCredits_20060825-163706 ...
Check that the credits text is correct ... 
GTK Accessibility Module initialized
theProcessGroups= [<DebugProcess.DebugProcess instance at 0x2af56b8df758>]
click on {child with name="New" roleName='push button'}
DEBUG = NewFryskSession
DEBUG = 0
DEBUG = NewFryskSession
DEBUG = 2
click on {"Forward" button}
Warning: Cannot click {"Forward" button}. It is not sensitive.
ERROR

======================================================================
ERROR: Check that the credits text is correct
----------------------------------------------------------------------
Traceback (most recent call last):
  File
"/rtos/source/frysk/temp/build_0825/frysk-gui/../../frysk-0825/frysk-gui/frysk/gui/test/dogtail_scripts/TestCredits.py",
line 110, in setUp
    createMinimalSession (self.frysk, self.theSession, False)
  File
"/rtos/source/frysk/temp/frysk-0825/frysk-gui/frysk/gui/test/dogtail_scripts/FryskHelpers.py",
line 452, in createMinimalSession
    for processName in theProcessList:
TypeError: iteration over non-sequence

----------------------------------------------------------------------
Ran 1 test in 5.099s

FAILED (errors=1)


We traced the sourcode and found the funit-child was not started successfully,
so all cases failed at creating the new session.
Comment 1 Len DiMaggio 2006-08-29 15:04:57 UTC
There are actually a couple of problems here.

The first problem is that I inadventently left some debug statements in the code:

DEBUG = NewFryskSession
DEBUG = 0
DEBUG = NewFryskSession
DEBUG = 2

These have been removed.

The second problem is more troubling. There was a problem where if a test
crashed, funit-child would not be killed when the next test started. This has
also been fixed. Can you try running one test again and let me know what you see
for results? Many thanks.
Comment 2 Yong Zheng 2006-08-30 04:15:00 UTC
(In reply to comment #1)
> There are actually a couple of problems here.
> 
> The first problem is that I inadventently left some debug statements in the code:
> 
> DEBUG = NewFryskSession
> DEBUG = 0
> DEBUG = NewFryskSession
> DEBUG = 2
> 
> These have been removed.
> 

Yes, these have been removed.

> The second problem is more troubling. There was a problem where if a test
> crashed, funit-child would not be killed when the next test started. This has
> also been fixed. Can you try running one test again and let me know what you
see for results?

I did the same test based on the cvs-head(08-30) and all testcases still failed.
So I traced down the python source codes and found the key point of the bug. We
have two ways to fix the bug:

1)the first way to fix the bug is simple. just see the following patch(based on
cvs head 08-30):
Index: frysk-gui/frysk/gui/test/dogtail_scripts/FryskHelpers.py
===================================================================
RCS file: /cvs/frysk/frysk-gui/frysk/gui/test/dogtail_scripts/FryskHelpers.py,v
retrieving revision 1.50
diff -u -r1.50 FryskHelpers.py
--- frysk-gui/frysk/gui/test/dogtail_scripts/FryskHelpers.py    28 Aug 2006
21:01:47 -0000      1.50+++
frysk-gui/frysk/gui/test/dogtail_scripts/FryskHelpers.py    30 Aug 2006 04:07:49
-0000
@@ -253,6 +253,8 @@
         Function returns an object that points to the Frysk GUI
     """

+    global FUNIT_CHILD_BINARY
+
     # First, make sure that AT-SPI is enabled
     AT_SPI_output = commands.getoutput('gconftool-2 -g
/desktop/gnome/interface/accessibility')
     if AT_SPI_output != 'true': 

2)the second way is to edit the rules for "make check". During the "make check",
 we can edit the FUNIT_CHILD_BINARY's value into the right value according to
user's compiling.

No matter which way is choosen, the bug can be  fixed. :-)
Comment 3 Yong Zheng 2006-08-30 04:17:38 UTC
Created attachment 1264 [details]
the patch to fix the bug(based on cvs head 08-30)

the patch to fix the bug(based on cvs head 08-30)
Comment 4 Yong Zheng 2006-08-30 04:31:49 UTC
Created attachment 1265 [details]
the full patch to fix this bug

I's sorry, the former patch omits some other modification.
Here the patch is the latest.
Comment 5 Len DiMaggio 2006-08-31 17:49:32 UTC
I'm sorry about this - the failure of the funit-child binary to start was
because I had inadvertently left a hard-coded reference to a directory in the
script. I've actually changed the function that invokes funit-child to accept
the binary name as a parameter. I just checked in this change. 

I'm wondering about the 2nd part of the patch that you submitted:

-funitchild=@abs_builddir@/frysk-core/frysk/pkglibexecdir/funit-child
+funitchild=@abs_builddir@/../frysk-core/frysk/pkglibexecdir/funit-child

But, funit-child is in: /builddir/frysk-core/frysk/pkglibexecdir/funit-child
Comment 6 Andrew Cagney 2006-09-01 01:25:03 UTC
(In reply to comment #5)

> I'm wondering about the 2nd part of the patch that you submitted:
> 
> -funitchild=@abs_builddir@/frysk-core/frysk/pkglibexecdir/funit-child
> +funitchild=@abs_builddir@/../frysk-core/frysk/pkglibexecdir/funit-child
> 
> But, funit-child is in: /builddir/frysk-core/frysk/pkglibexecdir/funit-child

FYI, this is autoconf wackyness.  BUILDDIR is pointing to <build>/frysk-gui
here.  I.e., it is at a different level to what you would expect.
Comment 7 Yong Zheng 2006-09-01 01:32:49 UTC
(In reply to comment #6)
> (In reply to comment #5)
> 
> > I'm wondering about the 2nd part of the patch that you submitted:
> > 
> > -funitchild=@abs_builddir@/frysk-core/frysk/pkglibexecdir/funit-child
> > +funitchild=@abs_builddir@/../frysk-core/frysk/pkglibexecdir/funit-child
> > 
> > But, funit-child is in: /builddir/frysk-core/frysk/pkglibexecdir/funit-child
> 
> FYI, this is autoconf wackyness.  BUILDDIR is pointing to <build>/frysk-gui
> here.  I.e., it is at a different level to what you would expect.

yes, the BUILDDIR here will be set $BUILD/frysk-gui. You can read the file
$BUILD/frysk-gui/frysk/gui/test/dogtail_scripts/frysk_suite.sh after you make
check under $BUILD/frysk-gui.