Closed Bug 1248916 Opened 4 years ago Closed 4 years ago

|mach mochitest --debugger=lldb sometest| doesn't work

Categories

(Testing :: Mochitest, defect)

defect
Not set

Tracking

(firefox46 fixed, firefox47 fixed)

RESOLVED FIXED
mozilla47
Tracking Status
firefox46 --- fixed
firefox47 --- fixed

People

(Reporter: peterv, Assigned: ahal)

Details

Attachments

(1 file)

Not sure when this started happening, |mach mochitest --debugger=lldb sometest| used to work for me but lately I just end up with a browser window containing:

[Exception... "Component returned failure code: 0x80520012 (NS_ERROR_FILE_NOT_FOUND) [nsIFileInputStream.init]" nsresult: "0x80520012 (NS_ERROR_FILE_NOT_FOUND)" location: "JS frame :: _tests/testing/mochitest/server.js :: convertManifestToTestLinks :: line 600" data: no]

Looking at the url we're trying to load I see 'http://mochi.test:8888/tests?autorun=1\&consoleLevel=INFO\&manifestFile=tests.json\&dumpOutputDirectory=%2Fvar%2Ffolders%2F1x%2Fy2hzfy2d35q4lghdwqq0bjdh0000gp%2FT\&interactiveDebugger=true'. Note a backslash before every ampersand, and it looks like we're trying to load a file named tests.json\

Removing requiresEscapedArgs from http://hg.mozilla.org/mozilla-central/annotate/6ea654cad929/testing/mozbase/mozdebug/mozdebug/mozdebug.py#l40 makes things work again.

Please set the right component if I picked the wrong one, I wasn't sure whether this should go under mach, mochitest or mozdebug :-).
This dates to bug 943734. Perhaps newer lldb doesn't require this workaround anymore and so things are broken now?
Component: mach → Mozbase
Product: Core → Testing
Yeah, I was seeing that issue back then. But I don't think the change is on the lldb side, but rather in how we pass the URL to the browser. target.run-args certainly doesn't contain the url anymore.
This is more fallout from the mochitest refactor. Rather than appending the testUrl to the firefox commandline, it gets passed into a marionette chrome script and loaded via window.loadURI. If this was the only case that needed escaped args, we can likely just remove that feature from mozdebug entirely.
Nvm, wpt still passes debugger args over the command line, so we'll need to keep that information in mozdebug. I think the fix here is specifically for mochitest to ignore requiresEscapedArgs.
Assignee: nobody → ahalberstadt
Status: NEW → ASSIGNED
Component: Mozbase → Mochitest
Mochitest no longer passes in debug_args in via the commandline. Instead, it passes
them in via a marionette chrome script, meaning they no longer need to be escaped.
Since web-platform-tests still passes debug_args on the commandline, we can't simply
remove the feature entirely. Instead, just make mochitest ignore requiresEscapedArgs.

Review commit: https://reviewboard.mozilla.org/r/35295/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/35295/
Attachment #8720410 - Flags: review?(ted)
Comment on attachment 8720410 [details]
MozReview Request: Bug 1248916 - Ignore mozdebug.requiresEscapedArgs in mochitest, r?ted

https://reviewboard.mozilla.org/r/35295/#review31975

Thanks!
Attachment #8720410 - Flags: review?(ted) → review+
https://hg.mozilla.org/mozilla-central/rev/0deb3ffa57bb
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla47
You need to log in before you can comment on or make changes to this bug.