mozilla / r2d2b2g

Firefox OS Simulator is a test environment for Firefox OS. Use it to test your apps in a Firefox OS-like environment that looks and feels like a mobile phone.
https://addons.mozilla.org/en-US/firefox/addon/firefox-os-simulator/
Other
392 stars 139 forks source link

Better error message if ADB is already running #763

Closed bkase closed 11 years ago

bkase commented 11 years ago

Simple change to give a better message if you try to run make test if another Simulator has started up ADB. See #760

mykmelez commented 11 years ago

Other than the minor quibbles about the content of the message, this seems ok, but it seems like it just papers over the issue, which is deeper than the test code, given that the test just calls a public method (ADB.close()).

Also, I see a similar exception when running only the "main" test script, whether or not libadb is open in another process:

08-05 15:50 > make test TEST=main
…
info: r2d2b2g: Closing ADB
info: r2d2b2g: mac64/B2G.app/Contents/MacOS/b2g terminated with 15
info: r2d2b2g: [JavaScript Error: "TypeError: socket is undefined" {file: "resource://gre/modules/XPIProvider.jsm -> file:///var/folders/lp/8t_7y24119720_hjp5wc_4cr0000gn/T/tmp6kbnDY.mozrunner/extensions/r2d2b2g@mozilla.org/bootstrap.js -> resource://gre/modules/commonjs/toolkit/loader.js -> resource://r2d2b2g-at-mozilla-dot-org/r2d2b2g/lib/adb/adb-device-tracker.js" line: 115}]
info: r2d2b2g: Simulator.onMessage toggle
!!! error running onStopped callback: TypeError: callback is not a function
Traceback (most recent call last):
  File "/Users/myk/Mozilla/r2d2b2g/addon-sdk/bin/cfx", line 33, in <module>
    cuddlefish.run()
  File "/Users/myk/Mozilla/r2d2b2g/addon-sdk/python-lib/cuddlefish/__init__.py", line 928, in run
    bundle_sdk=options.bundle_sdk)
  File "/Users/myk/Mozilla/r2d2b2g/addon-sdk/python-lib/cuddlefish/runner.py", line 743, in run_app
    OUTPUT_TIMEOUT, test_name, parseable)
Exception: Test output exceeded timeout (60s).
make: *** [test] Error 1

But perhaps this is a different issue?

bkase commented 11 years ago

hmm, I'll fix the other problems with the tests first and see if I can narrow the scope of this try-catch

bkase commented 11 years ago

I think that exception that you found before was fixed with #775

mykmelez commented 11 years ago

Indeed, I no longer get that exception, but I'm having trouble figuring out how to test this change. If I run tests with libadb already loaded in another process I get:

info: r2d2b2g: adb: Found ADB process running, not restarting
info: r2d2b2g: pass: Started
info: r2d2b2g: executing 'r2d2b2g/tests/test-main.test ab list devices'
…
info: r2d2b2g: adb: listDevices
info: r2d2b2g: adb: runCommand host:devices
info: r2d2b2g: adb: runCommand onopen
info: r2d2b2g: adb: len=16 30303043686f73743a64657669636573 000Chost:devices
info: r2d2b2g: adb: runCommand ondata
info: r2d2b2g: pass: Devices: ["full_unagi"]

Perhaps because of #765?

bkase commented 11 years ago

Can you try make package on this branch and load that XPI in another profile? I modified some of the native code to aid in detection, so it won't actually detect any libadb compiled before this change.

mykmelez commented 11 years ago

I modified some of the native code to aid in detection, so it won't actually detect any libadb compiled before this change.

Ah, indeed! I still see #784, but that isn't as much of a problem now that this test fails. In fact perhaps it's the right behavior. So I'll merge this and close that issue.