Closed Bug 1111874 Opened 10 years ago Closed 6 years ago

Emulator mochitests broken: mach: error: --xre-path '/home/mikeh/dev/mozilla/b2g/051_emulator/gaia/xulrunner-sdk-30/xulrunner-sdk/b2g' is not a directory

Categories

(Firefox OS Graveyard :: Emulator, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: mikeh, Unassigned)

References

Details

STR:
# BRANCH=v2.0 ./config.sh emulator
# export GECKO_PATH = /home/mikeh/dev/mozilla/m-c/b2g32_v2_0
# export GECKO_OBJDIR = /home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0
# nice ./build.sh
#./mach mochitest-remote dom/camera/test/test_bug975472.html

Expected: test runs.

Observed:

From _tests: Kept 12572 existing; Added/updated 0; Removed 0 files and 0 directories.
waiting for system-message-listener-ready...
...done
Usage: mach [options]

mach: error: --xre-path '/home/mikeh/dev/mozilla/b2g/051_emulator/gaia/xulrunner-sdk-30/xulrunner-sdk/b2g' is not a directory

  ...

# pwd
/home/mikeh/dev/mozilla/b2g/051_emulator/gaia/xulrunner-sdk-30/xulrunner-sdk

# xulrunner-sdk  ll
total 168
drwxr-xr-x  6 mikeh mikeh  4096 Mar  8  2014 bin
drwxr-xr-x  3 mikeh mikeh  4096 Mar  8  2014 host
drwxr-xr-x  2 mikeh mikeh 57344 Mar  8  2014 idl
drwxr-xr-x 27 mikeh mikeh 90112 Mar  8  2014 include
drwxr-xr-x  3 mikeh mikeh  4096 Mar  8  2014 lib
drwxr-xr-x  4 mikeh mikeh  4096 Mar  8  2014 sdk
My xulrunner-sdk-33 subfolder also does not have a 'b2g' subfolder. Nor does the 'obj-x86_64-unknown-linux-gnu' subfolder under my b2g32_v2_0 hg tree.
Component: Simulator → Emulator
Doing this in xulrunner-sdk:

# ln -s bin b2g

...lets the mochitest runner progress to here:

From _tests: Kept 12572 existing; Added/updated 0; Removed 0 files and 0 directories.
waiting for system-message-listener-ready...
...done
MochitestServer : launching [u'/home/mikeh/dev/mozilla/b2g/051_emulator/gaia/xulrunner-sdk-30/xulrunner-sdk/b2g/xpcshell', '-g', u'/home/mikeh/dev/mozilla/b2g/051_emulator/gaia/xulrunner-sdk-30/xulrunner-sdk/b2g', '-v', '170', '-f', u'/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/httpd.js', '-e', "const _PROFILE_PATH = '/tmp/tmpQh_M0i'; const _SERVER_PORT = '8888'; const _SERVER_ADDR = '192.168.230.153'; const _TEST_PREFIX = undefined; const _DISPLAY_RESULTS = false;", '-f', '/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/server.js']
runtests.py | Server pid: 9856
runtests.py | Websocket server pid: 9859
INFO | runtests.py | expected to find ssltunnel at /home/mikeh/dev/mozilla/b2g/051_emulator/gaia/xulrunner-sdk-30/xulrunner-sdk/b2g/ssltunnel
Automation Error: Exception caught while running tests
Traceback (most recent call last):
  File "/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/runtestsb2g.py", line 332, in run_remote_mochitests
    retVal = mochitest.run_tests(options)
  File "/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/runtestsb2g.py", line 117, in run_tests
    self.startServers(options, None)
  File "/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/runtestsb2g.py", line 209, in startServers
    MochitestUtilsMixin.startServers(self, options, debuggerInfo)
  File "/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/runtests.py", line 550, in startServers
    self.sslTunnel.start()
  File "/home/mikeh/dev/mozilla/b2g/051_emulator/objdir-gecko-b2g32_v2_0/_tests/testing/mochitest/runtests.py", line 737, in start
    exit(1)
  File "/usr/lib/python2.7/site.py", line 375, in __call__
    raise SystemExit(code)
SystemExit: 1
Stopping web server
Stopping web socket server
Stopping ssltunnel
So here's what does work (thanks to a tip from bug 1066042):

# hg clone http://hg.mozilla.org/releases/mozilla-b2g32_v2_0/ $MC/b2g32_v2_0
# cd b2g30_v2_0
# ./mach build
# cd obj-x86_64-unknown-linux-gnu/dist
# ln -s bin b2g
# cd $B2G
# export XULRUNNER_DIRECTORY=$MC/b2g32_v2_0/obj-x86_64-unknown-linux-gnu/dist
# ./mach mochitest-remote $PATH_TO_TEST_SCRIPT
Flags: needinfo?(ahalberstadt)
The code that finds the --xre-path lives here:
https://github.com/mozilla-b2g/B2G/blob/master/tools/mach_b2g_bootstrap.py#L101

It used to be the case that it returned those xulrunner-sdk dirs, but ever since bug 1002545 it was changed to download the files from a recent b2g_desktop build instead. On trunk, it should find a dir in '$B2G/gaia/b2g_sdk'. I think what's happening here is that you're building on an older branch and are running into bug 1002545 (no ssltunnel). I just tested on trunk and things work.

You could probably simplify your workaround by just setting XULRUNNER_DIRECTORY=$B2G/gaia/b2g_sdk/<ver>/b2g and USE_LOCAL_XULRUNNER=1 in your .userconfig. I don't think there's any easy fixes here without backporting a whole bunch of stuff. I'd propose WONTFIX'ing and just sticking to the workaround for now, but I'll leave that up to you.
Flags: needinfo?(ahalberstadt)
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.