Closed Bug 1278900 Opened 4 years ago Closed 4 years ago

Fix mach environment/bootstrap in the tests.zip

Categories

(Testing :: General, defect)

defect
Not set

Tracking

(firefox50 fixed)

RESOLVED FIXED
mozilla50
Tracking Status
firefox50 --- fixed

People

(Reporter: ahal, Assigned: ahal)

References

Details

Attachments

(3 files)

A year or so ago I added a mach binary/bootstrap/package to the tests.zip. The idea was to make it easier to run test harnesses without a srcdir (i.e in a test machine). The effort kind of petered out, and changes like the multiple tests.zips broke it.

But now we have a solid workflow for debugging on remote instances, and the mach in the tests.zip work is once again important. This bug will just fix it up back to a working state.
Currently the mach binary will look for 'mozinfo.json' and if it finds it assume
we are in an objdir. But now, 'mozinfo.json' can also be found in an extracted
tests.zip (depending which zips were used). This trips up the tests.zip mach
environment and causes some problems.

This works around the issue by looking for both 'mozinfo.json' and 'config.status'

Review commit: https://reviewboard.mozilla.org/r/58534/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/58534/
Attachment #8761246 - Flags: review?(gps)
Attachment #8761247 - Flags: review?(armenzg)
Attachment #8761248 - Flags: review?(armenzg)
This makes sure mozharness will always extract the mach binary and it will
be available when debugging interactive loaners.

Review commit: https://reviewboard.mozilla.org/r/58536/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/58536/
This is a bit of a hodge podge of small fixes that I needed to run |mach mochitest|
on an interactive worker. Included:

1) Add some packages to SEARCH_PATHS that mochitest needs
2) Always add SEARCH_PATHS even if mach package is found
3) Don't try to register commands that don't exist (i.e it was in an unused test zip)

Review commit: https://reviewboard.mozilla.org/r/58538/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/58538/
Comment on attachment 8761246 [details]
Bug 1278900 - [mach] Also look for config.status when detecting an objdir,

https://reviewboard.mozilla.org/r/58534/#review55408

::: mach:50
(Diff revision 1)
>  
>  def get_mach():
>      # Check whether the current directory is within a mach src or obj dir.
>      for dir_path in ancestors(os.getcwd()):
> -        # If we find a "mozinfo.json" file, we are in the objdir.
> +        # If we find a "config.status" and "mozinfo.json" file, we are in the objdir.
> +        config_status_path =  os.path.join(dir_path, 'config.status')

Nit: there is a double space in here.
Attachment #8761246 - Flags: review?(gps) → review+
Attachment #8761248 - Flags: review?(armenzg) → review+
Comment on attachment 8761248 [details]
Bug 1278900 - Fix up the test package mach bootstrap script,

https://reviewboard.mozilla.org/r/58538/#review55644

I don't exactly understand the changes but I don't see anything obviously wrong.
Comment on attachment 8761247 [details]
Bug 1278900 - Always extract 'mach' binary from test package,

https://reviewboard.mozilla.org/r/58536/#review55642

Are any changes for mobile required?
Attachment #8761247 - Flags: review?(armenzg) → review+
https://reviewboard.mozilla.org/r/58536/#review55642

Possibly, but those would be out of scope for this bug. This patch is basically about getting |mach --help| to work (none of the actual test commands will work after this lands). I need to file follow-up bugs (one per test harness) to get each test harness working individually. Even then I'm not sure I'll want to tackle mobile+desktop at the same time, I'm not really sure how much extra work (if any) mobile will be at this time.
Comment on attachment 8761246 [details]
Bug 1278900 - [mach] Also look for config.status when detecting an objdir,

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/58534/diff/1-2/
Comment on attachment 8761247 [details]
Bug 1278900 - Always extract 'mach' binary from test package,

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/58536/diff/1-2/
Comment on attachment 8761248 [details]
Bug 1278900 - Fix up the test package mach bootstrap script,

Review request updated; see interdiff: https://reviewboard.mozilla.org/r/58538/diff/1-2/
Pushed by ahalberstadt@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/9e6cbeb45a5c
[mach] Also look for config.status when detecting an objdir, r=gps
https://hg.mozilla.org/integration/mozilla-inbound/rev/5da4159b46b9
Always extract 'mach' binary from test package, r=armenzg
https://hg.mozilla.org/integration/mozilla-inbound/rev/74de882e1ddb
Fix up the test package mach bootstrap script, r=armenzg
https://hg.mozilla.org/mozilla-central/rev/9e6cbeb45a5c
https://hg.mozilla.org/mozilla-central/rev/5da4159b46b9
https://hg.mozilla.org/mozilla-central/rev/74de882e1ddb
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
You need to log in before you can comment on or make changes to this bug.