Closed Bug 785675 Opened 12 years ago Closed 12 years ago

Port |Bug 748490 - Provide common location for testing modules| to fix multiple perma-oranges.

Categories

(SeaMonkey :: Testing Infrastructure, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: philip.chee, Assigned: ewong)

References

Details

Attachments

(2 files, 3 obsolete files)

One example is Bug 783519 - [SeaMonkey] "browser_NetUtil.js | Exception thrown - [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXPCComponents_Utils.import]""

Many of our tests are failing at trying to import:
Cu.import("resource://testing-common/httpd.js");

According to Serge we need to port:
Bug 748490 - Provide common location for testing modules
Attached patch Port |Bug 748490| to SeaMonkey (obsolete) — Splinter Review
Assignee: nobody → ewong
Status: NEW → ASSIGNED
Attachment #655887 - Flags: review?(bugspam.Callek)
http://tinderbox.mozilla.org/showlog.cgi?log=SeaMonkey/1347044604.1347046278.17635.gz#err7

NEXT ERROR TEST-UNEXPECTED-FAIL | e:\builds\slave\test\build\xpcshell\tests\image\test\unit\test_async_notification.js | test failed (with xpcshell return code: 3), see following log:
>>>>>>>
### XPCOM_MEM_LEAK_LOG defined -- logging leaks to c:\docume~1\seabld\locals~1\temp\tmp23pcxi\runxpcshelltests_leaks.log
WARNING: NS_ENSURE_SUCCESS(rv, rv) failed with result 0x80040111: file e:/builds/slave/comm-cen-trunk-w32-dbg/build/mozilla/netwerk/base/src/nsIOService.cpp, line 648
WARNING: NS_ENSURE_SUCCESS(rv, 0x80070057) failed with result 0x80040111: file e:/builds/slave/comm-cen-trunk-w32-dbg/build/mozilla/js/xpconnect/loader/mozJSComponentLoader.cpp, line 1091
async_load_tests.js:14: NS_ERROR_ILLEGAL_VALUE: Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXPCComponents_Utils.import]
ewong: The argument needs to be --testing-modules-dir (instead of --tests-modules-dir).
BTW: I wonder why TB does not have this problem. Do they directly run the test infrastructure in mozilla/ and include their tests in some way?
(In reply to Frank Wein [:mcsmurf] from comment #3)
> ewong: The argument needs to be --testing-modules-dir (instead of
> --tests-modules-dir).
> BTW: I wonder why TB does not have this problem. Do they directly run the
> test infrastructure in mozilla/ and include their tests in some way?

Thanks!
Attachment #655887 - Attachment is obsolete: true
Attachment #655887 - Flags: review?(bugspam.Callek)
Attachment #667296 - Flags: review?(bugspam.Callek)
I now looked at this locally and in the buildbot log, I'm not sure if this patch is the correct fix for the problem. When running "make xpcshell-tests" in the objdir, it enters the mozilla/ directory and runs the tests there (see http://hg.mozilla.org/comm-central/annotate/861e8385f731//Makefile.in#l48). So there the --testing-modules-dir argument already gets appended to the command line. But buildbot testing works a bit different as the test run does not necessarily happen on the same box as the build run. buildbot downloads a special zip file (for example http://ftp.mozilla.org/pub/mozilla.org/seamonkey/tinderbox-builds/comm-central-trunk-win32-debug/1349392410/seamonkey-2.15a1.en-US.win32.tests.zip), extracts it and runs those tests. I'll investigate this further.
Found the solution! :)
Callek: We need to adjust this buildbot step for the xpcshell tests, not sure how this works, you probably know this better than I do:
======== BuildStep started ========
unpack tests
=== Output ===
'unzip' '-o' 'seamonkey-2.15a1.en-US.win32.tests.zip' 'bin*' 'certs*' 'xpcshell*'

For comparison, here's the Thunderbird buildbot step:

========= Started unpack tests (results: 0, elapsed: 37 secs) (at 2012-10-04 15:52:18.219199) =========
'unzip' '-oq' u'thunderbird-18.0a1.en-US.win32.tests.zip' 'bin*' 'certs*' 'modules*' 'xpcshell*'
 in dir c:\talos-slave\test\build (timeout 1200 secs)
 watching logfiles {}
 argv: ['unzip', '-oq', u'thunderbird-18.0a1.en-US.win32.tests.zip', 'bin*', 'certs*', 'modules*', 'xpcshell*']

The difference is the modules* part, in the modules directory the file httpd.js can be found. The runxpcshelltests.py tries to guess the location of the testing modules by looking for the modules/ directory in the current working directory. So we also need to unzip the modules directory from the tests.zip file.
Also see Bug 755339 on that solution from Comment 7 (checkin in buildbot config: http://hg.mozilla.org/build/buildbotcustom/rev/7d0cd546fb77)
Comment on attachment 667296 [details] [diff] [review]
Port |Bug 748490 - Provide common location for testing modules| to fix multiple perma-oranges. (v2)

Review of attachment 667296 [details] [diff] [review]:
-----------------------------------------------------------------

::: config/rules.mk
@@ +1366,5 @@
> +# For each file defined in TESTING_JS_MODULES, copy it to
> +# objdir/_tests/modules/. If TESTING_JS_MODULE_DIR is defined, that path
> +# wlll be appended to the output directory.
> +
> +ifdef TESTING_JS_MODULES

nit please wrap this in ifdef ENABLE_TESTS
Attachment #667296 - Flags: review?(bugspam.Callek) → review+
Attachment #672134 - Flags: review?(bugspam.Callek) → review+
Sorry for the delay guys, but thanks for the investigation/work!
Pushed to buildbotcustom:
http://hg.mozilla.org/build/buildbotcustom/rev/fc2ad1ffc38c
There's been a typo in the buildbotcustom patch, I pushed a typo fix: http://hg.mozilla.org/build/buildbotcustom/rev/f2950891859c
This looks fixed, failing xpcshell tests are down from ~420 to ~3 :-)
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: