Originally landed as changeset 8793e332890e via bug 1433905 the
patch caused a regression because GetExitCodeProcess() returns
0 for an inside of Firefox restarted process.
It can be relanded once the process id of the job object can
successfully be tracked.
Differential Revision: https://phabricator.services.mozilla.com/D9020
--HG--
extra : moz-landing-system : lando
The current implementation waits for fennec to stop before trying to stop it - easy enough
to address. At the same time, I am updating the runner stop implementation to try
stop_application before kill: stop_application shuts down the application more
cleanly; kill should only be used as a backup.
--HG--
extra : source : d95463150a6fccfc51fe190693d2528cbeec49a4
Add the property lsan-max-stack-depth to enable configuring how many
stack frames we allow LSANLeaks to record.
Differential Revision: https://phabricator.services.mozilla.com/D8192
--HG--
extra : moz-landing-system : lando
[mozfile] Bump version to 2.0.0, update classifiers and add setup.cfg (Bug 1471622)
Differential Revision: https://phabricator.services.mozilla.com/D6905
--HG--
extra : moz-landing-system : lando
Changes:
- changed the directory checked by the `/system/bin/ls` or `/system/xbin/ls` to be `/system`.
- factor out the directory to a single variable.
Checks:
- mozregression continues to function, checked with emulator
- try runs for all platforms look acceptable
Thoughts:
- error message slightly altered to address comment 10 on bugzilla, however this may not be enough.
Differential Revision: https://phabricator.services.mozilla.com/D7737
--HG--
extra : moz-landing-system : lando
This is designed to produce minimal output; just show which tests are
running and then provide details at the end for tests that gave an
unexpected result.
This is designed to produce minimal output; just show which tests are
running and then provide details at the end for tests that gave an
unexpected result.
Behavior changes:
- added method for ADBDevice class called chown
- when initializing ADBDevice class, check if recursive flag is supported (similar to chmod -R)
Other changes:
- handling for situation where recursive is desired but -R flag is not supported is in place
- changed behavior above situation to mirror chmod (creation of temporary file based on `self.ls` output, then executing script on device using adb
Unit Tests:
- unit tests to exercise attributes and common paths created. Would need further expansion of tests at some point.
- additional mocking fixtures created.
Differential Revision: https://phabricator.services.mozilla.com/D8128
--HG--
extra : moz-landing-system : lando
If the process quits externally (shutdown by itself or via kill),
the poll method still returns None, even with the process not
existent anymore.
To fix that, the poll method should at least try to join the reader
thread once before checking if it is still alive. Otherwise it will
continue to run, and never stop.
Also the attribute existence check for "returncode" on the process
instance has to be removed because this property always exists.
Instead a check for the "returncode" property of the ProcessHandler
class is necessary.
Depends on D7396
Differential Revision: https://phabricator.services.mozilla.com/D7398
--HG--
extra : moz-landing-system : lando
The assumption that when a handle is present for the process handler
on Windows doesn't mean that the process is still alive. It could
have already been externally killed, crashed, or closed itself.
The patch makes sure to check the process exit code, and run
clean-up steps if the process is already gone.
Depends on D7395
Differential Revision: https://phabricator.services.mozilla.com/D7396
--HG--
extra : moz-landing-system : lando
Calling "check_for_detached()" doesn't make sense if the process
hasn't been started yet, and as such has to raise a RuntimeError.
Depends on D7393
Differential Revision: https://phabricator.services.mozilla.com/D7394
--HG--
extra : moz-landing-system : lando
Instead of an AttributeError a RuntimeError has to be thrown if
the underlying process hasn't been created yet.
Depends on D7392
Differential Revision: https://phabricator.services.mozilla.com/D7393
--HG--
extra : moz-landing-system : lando
Behavior changes:
- ADBAndroidMixin.is_app_installed() will now perform a strict check on `app_name` provided. Previously, the behavior was to do a fuzzy match, where as long as the provided `app_name` matched some item on the list it would return True. Now, the exact string as shown when user calls `adb shell > pm list packages` will be required in order to generate a True return value.
Other changes:
- bumped mozdevice version to 1.1.2 reflecting minor behavior change.
- addition of unit tests for ADBAndroidMixin.is_app_installed() method call and surrounding helper methods such as mocked fixtures, manifest changes.
Differential Revision: https://phabricator.services.mozilla.com/D7322
--HG--
extra : moz-landing-system : lando
The previous code split a lot of logic between the update and download
parts, and exposed two different mach commands. In order to simplify
things it's better to have a single entry point for manifest download
and update, and ensure that's called consistently.
Differential Revision: https://phabricator.services.mozilla.com/D7497
--HG--
extra : moz-landing-system : lando
The previous code split a lot of logic between the update and download
parts, and exposed two different mach commands. In order to simplify
things it's better to have a single entry point for manifest download
and update, and ensure that's called consistently.
Differential Revision: https://phabricator.services.mozilla.com/D7497
Otherwise it doesn't work with multiprocessing, which breaks debugging wpt on Windows.
Differential Revision: https://phabricator.services.mozilla.com/D7173
--HG--
extra : moz-landing-system : lando
These regexes are used for things like determining which tasks to run given a
"path" int |mach try|. Previously, we used patterns like:
mochitest-chrome-(?:e10s)?(?:-1)?$
This would match both e10s and non-e10s versions of a task with either no
chunks, or only selecting chunk 1. But we keep adding other configurations, e.g
-gpu, -no-accel, -sw, etc. Each time we create a new possibility we need to
remember to update these task regexes (or else lose test coverage when using
paths with |mach try|).
Instead of individually listing every possibility, let's use a pattern like
this:
mochitest-chrome($|.*(-1|[^0-9])$)
This also selects tasks that are either chunk 1 or don't have any chunks. But
it allows for arbitrary strings in-between. This regex doesn't need to be
updated when we add configurations like -sw.
Depends on D7119
Differential Revision: https://phabricator.services.mozilla.com/D7120
--HG--
extra : moz-landing-system : lando
I almost forgot to update the regexes in moztest.resolve when creating the -sw
variant of task. This adds a test to make sure we don't forget more things in
the future.
Differential Revision: https://phabricator.services.mozilla.com/D7119
--HG--
extra : moz-landing-system : lando
- changed argument parser to use ArgumentParser in compliance with Python 2.7.
Differential Revision: https://phabricator.services.mozilla.com/D6438
--HG--
extra : moz-landing-system : lando
- moved placement of the raise_exception computation to be after the initial objdir path computation.
- original implementation was missing detection for cases where user may pass in a False flag to explicitly suppress errors.
- added unit tests to check for scenarios where raise_exception flag is passed in as part of positional argument.
- changed argument to include a **kwargs argument for caller to modify default exception behavior.
- default behavior is to raise exceptions if mozinfo.json cannot be found.
- disabled TreeMetadataEmitter from calling mozinfo.find_and_update_from_json and setting the self.info variable since it was not referenced anywhere else after the initial setup.
Depends on D6859
Differential Revision: https://phabricator.services.mozilla.com/D6860
--HG--
extra : moz-landing-system : lando
mach try fuzzy has some stronger requirements compared to mach test.
Depends on D6673
Differential Revision: https://phabricator.services.mozilla.com/D6674
--HG--
extra : moz-landing-system : lando
Allow mozprocess to track and kill processes on Windows,
even when they got restarted.
Such processes are still part of the job object, but unless
the "JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE" flag is set, they
aren't getting closed.
Since our sandbox also creates jobs, we preferably want to
nest the sandbox's job inside the job as created by mozprocess.
Specifying "JOB_OBJECT_LIMIT_BREAKAWAY_OK" would allow
sandboxed processes within the job to break off and form their
own, separate job. This is actually necessary for sandboxing
to work on older versions of Windows without nested job support,
but on newer versions, we don't want them breaking away.
--HG--
extra : rebase_source : a485adc370127dfec86329f775df089b3b71eb47