Open Bug 676997 Opened 13 years ago Updated 2 years ago

xpcshell test uriloader/exthandler/tests/unit/test_handlerService.js fails on Android

Categories

(Core :: General, defect)

x86
Android
defect

Tracking

()

People

(Reporter: gbrown, Unassigned)

Details

(Whiteboard: [mobile-testing][xpcshell])

With patches for bug 668349 and 668351, xpcshell tests can be run on an Android device, and the majority of tests pass. 

However, uriloader/exthandler/tests/unit/test_handlerService.js consistently fails when run on Android.
Whiteboard: [mobile-testing][xpcshell]
geoff@geoff-MacBookPro:~/src/mozilla-central/objdir-droid$ make SOLO_FILE=test_handlerService.js -C uriloader/exthandler/tests check-one-remote
make: Entering directory `/home/geoff/src/mozilla-central/objdir-droid/uriloader/exthandler/tests'
/usr/bin/python2.6 -u ../../../../config/pythonpath.py \
	  -I../../../../build \
	  -I../../../../build/mobile \
	  ../../../../testing/xpcshell/remotexpcshelltests.py \
	  --symbols-path=../../../dist/crashreporter-symbols \
	  --build-info-json=../../../mozinfo.json \
	  --test-path=test_handlerService.js \
	  --profile-name=fennec \
	  --verbose \
	   \
	  --dm_trans=adb \
	  --deviceIP= \
	  --objdir=../../.. \
	  --apk=../../../dist/fennec-8.0a1.en-US.eabi-arm.apk \
          --noSetup \
	  ../../../_tests/xpcshell/uriloader/exthandler/tests/unit ../../../_tests/xpcshell/uriloader/exthandler/tests/unit_ipc
package set: org.mozilla.fennec_unofficial
chmod /data/local/tests/xpcshell/p
TEST-INFO | profile dir is /data/local/tests/xpcshell/p
TEST-INFO | /home/geoff/src/mozilla-central/objdir-droid/_tests/xpcshell/uriloader/exthandler/tests/unit/test_handlerService.js | running test ...
cd /data/local/tests/xpcshell/uriloader/exthandler/tests/unit; LD_LIBRARY_PATH=/data/local/tests/xpcshell/b; export CACHE_PATH=/data/local/tests/xpcshell/b; export GRE_HOME=/data/data/org.mozilla.fennec_unofficial; export XPCSHELL_TEST_PROFILE_DIR=/data/local/tests/xpcshell/p; /data/local/tests/xpcshell/b/xpcshell -r /data/local/tests/xpcshell/c/httpd.manifest --greomni /data/local/tests/xpcshell/b/fennec-8.0a1.en-US.eabi-arm.apk -j -s -e 'const _HTTPD_JS_PATH = "/data/local/tests/xpcshell/c/httpd.js";' -e 'const _HEAD_JS_PATH = "/data/local/tests/xpcshell/head.js";' -f /data/local/tests/xpcshell/head.js -e 'const _SERVER_ADDR = "localhost"' -e 'const _HEAD_FILES = ["head_handlerService.js"];' -e 'const _TAIL_FILES = ["tail_handlerService.js"];' -e 'const _TEST_FILE = ["test_handlerService.js"];' -e '_execute_test(); quit(0);'
TEST-KNOWN-FAIL | /home/geoff/src/mozilla-central/objdir-droid/_tests/xpcshell/uriloader/exthandler/tests/unit/test_handlerService.js | test passed
>>>>>>>
WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /home/geoff/src/mozilla-central/xpcom/base/nsTraceRefcntImpl.cpp, line 172
WARNING: No default pref files found.: file /home/geoff/src/mozilla-central/modules/libpref/src/Preferences.cpp, line 923
WARNING: GetIsLinkUp is not supported without a bridge connection: file /home/geoff/src/mozilla-central/netwerk/system/android/nsAndroidNetworkLinkService.cpp, line 61
*** HandlerServiceTest: getFile: requesting UMimTyp
*** HandlerServiceTest: getFile: requesting CurProcD
*** HandlerServiceTest: the following NS_ERROR_FAILURE exception in nsIDirectoryServiceProvider::getFile is expected, as we don't provide the 'CurProcD' file

TEST-INFO | (xpcshell/head.js) | test 1 pending
*** HandlerServiceTest: getFile: requesting ProfLDS
*** HandlerServiceTest: the following NS_ERROR_FAILURE exception in nsIDirectoryServiceProvider::getFile is expected, as we don't provide the 'ProfLDS' file
JS Component Loader: ERROR (null):0
                     uncaught exception: 2147500037
*** HandlerServiceTest: getFile: requesting TmpD
*** HandlerServiceTest: the following NS_ERROR_FAILURE exception in nsIDirectoryServiceProvider::getFile is expected, as we don't provide the 'TmpD' file
*** HandlerServiceTest: getFile: requesting ProfLDS
*** HandlerServiceTest: the following NS_ERROR_FAILURE exception in nsIDirectoryServiceProvider::getFile is expected, as we don't provide the 'ProfLDS' file
JS Component Loader: ERROR (null):0
                     uncaught exception: 2147500037
###!!! ASSERTION: no extension: '!aExtension.IsEmpty()', file /home/geoff/src/mozilla-central/uriloader/exthandler/android/nsMIMEInfoAndroid.cpp, line 341

TEST-PASS | test_handlerService.js | [run_test : 118] true == true

TEST-PASS | test_handlerService.js | [run_test : 120] nonexistent/type == nonexistent/type

TEST-PASS | test_handlerService.js | [run_test : 123] nonexistent/type == nonexistent/type

TEST-UNEXPECTED-FAIL | test_handlerService.js | 2 == 0 - See following stack:
JS frame :: /data/local/tests/xpcshell/head.js :: do_throw :: line 445
JS frame :: /data/local/tests/xpcshell/head.js :: _do_check_eq :: line 539
JS frame :: /data/local/tests/xpcshell/head.js :: do_check_eq :: line 560
JS frame :: test_handlerService.js :: run_test :: line 126
JS frame :: /data/local/tests/xpcshell/head.js :: _execute_test :: line 326
JS frame :: -e :: <TOP_LEVEL> :: line 1

TEST-INFO | (xpcshell/head.js) | exiting test
WARNING: nsExceptionService ignoring thread destruction after shutdown: file /home/geoff/src/mozilla-central/xpcom/base/nsExceptionService.cpp, line 197
WARNING: unable to Flush() diry datasource during XPCOM shutdown: file /home/geoff/src/mozilla-central/rdf/base/src/nsRDFXMLDataSource.cpp, line 776
WARNING: OOPDeinit() without successful OOPInit(): file /home/geoff/src/mozilla-central/toolkit/crashreporter/nsExceptionHandler.cpp, line 1830
nsStringStats
 => mAllocCount:           1604
 => mReallocCount:           22
 => mFreeCount:            1604
 => mShareCount:           7080
 => mAdoptCount:             73
 => mAdoptFreeCount:         73
WARNING: XPCOM objects created/destroyed from static ctor/dtor: file /home/geoff/src/mozilla-central/xpcom/base/nsTraceRefcntImpl.cpp, line 172
<<<<<<<
INFO | Result summary:
INFO | Passed: 0
INFO | Failed: 0
INFO | Todo: 1
make: Leaving directory `/home/geoff/src/mozilla-central/objdir-droid/uriloader/exthandler/tests'
The failing test calls:

var handlerInfo = mimeSvc.getFromTypeAndExtension("nonexistent/type", null);

and fails because handlerInfo.preferredAction != Ci.nsIHandlerInfo.saveToDisk.

I suspect that the assertion about a non-empty extension is inappropriate. From nsIMIMEService:

"One of aMIMEType and aFileExt can be an empty string. At least one of aMIMEType and aFileExt must be nonempty."
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.