Commit Graph

540 Commits

Author SHA1 Message Date
Andrew Halberstadt
d9a14a4c35 Bug 1137339 - [manifestparser] implement a chunk_by_runtime filter, r=jmaher
With this chunking strategy, the runtimes of tests are taken into account, such that each chunk
takes roughly the same amount of time to finish. Tests belonging to the same manifest will not get
split up.

The algorithm works by sorting every manifest from slowest to fastest. Each manifest is popped off
and its tests are added to the fastest chunk to date until no manifests are left. Total runtimes of
the chunks are re-calculated after every addition.
2015-03-05 09:12:55 -05:00
Chris Manchester
c24261f79e Bug 1139722 - Allow use of nested job objects in mozprocess on windows versions that support them.;r=ahal
This patch detects when breaking away from the parent job isn't strictly necessary to manage processses in a new job to allow using nested job objects to manage processes and their children. Loss of job object functionality is handled in mozprocess as non-fatal, however mozrunner and others doing things like restarting firefox require it.
2015-03-05 18:02:38 -08:00
Ryan VanderMeulen
ca595f93e4 Backed out changeset 99c2fcc61cc2 (bug 958147) for B2G Desktop and Mulet checktest failures.
CLOSED TREE
2015-03-05 10:02:07 -05:00
Anish
887b353331 Bug 958147 - Choose one of run-if or skip-if and get rid of the other. r = jmaher,mwargers,ahal 2015-03-05 09:14:04 -05:00
Carsten "Tomcat" Book
58e65f8d9e Backed out changeset b3fe7a6a4939 (bug 958147) for m4 test failures on a CLOSED TREE 2015-03-05 14:00:33 +01:00
Anish
8d1a140350 Bug 958147 - Remove run_if filter from manifestparser, r=ahal 2015-03-04 15:46:58 -05:00
Andrew Halberstadt
3fdd385841 Bug 1134395 - mozbuild should pass in rootdir to manifestparser to properly calculate test relpaths, r=gps 2015-02-18 17:07:55 -05:00
Anish
9b39f2745a Bug 958147 - Choose one of run-if or skip-if and get rid of the other.r=jmaher, mwargers 2015-03-03 08:46:37 -05:00
Geoff Brown
f593db34cd Bug 1134245 - Improve formatting of devicemanager getInfo() data; r=bc 2015-02-27 13:15:00 -07:00
Julien Pagès
55d6dd8e08 Bug 1066643 - [mozlog] Allow users of mozlog's command line options to exclude inappropriate log types. r=jgraham 2015-02-24 14:01:00 -05:00
Geoff Brown
bb46b897ca Bug 1137289 - Guard against dumpsys failure in DroidADB; r=jmaher 2015-02-26 14:56:48 -07:00
Ted Mielczarek
37724e9711 bug 1137228 - use readline instead of iterator for reading mozprocess output. r=ahal 2015-02-26 15:16:59 -05:00
Julien Pagès
ba2f92d51d Bug 794984 - [mozprocess] Add ability to separate stderr from stdout. r=ahal
A new parameter called 'processStderrLine' is added. When specified, stdout gets processed by the
'processOutputLine' callbacks and stderr is processed by the 'processStderrLine' callbacks. When
not specified, stderr is redirected to stdout which is the same default behaviour.

A side effect of this is that mozprocess now uses three threads to process output. One thread each
for stdout and stderr that reads output lines and stores them in a Queue as fast as possible, this
makes sure there is no blocking in stdout.write(). A third thread executes the callbacks.
2015-02-23 07:39:00 -05:00
William Lachance
88833b6c0c Bug 1135255 - Fix mozdevice tempfile handling on Windows. r=gbrown 2015-02-23 10:56:50 -05:00
William Lachance
8124befa7d Bug 1133076 - Add documentation for mozinstall. r=ahal 2015-02-17 13:48:17 -05:00
Andrew Halberstadt
0c8a3e32f1 Bug 1132154 - [manifestparser] Implement basic chunking algorithms in manifestparser, r=jmaher
The algorithms are chunk_by_slice and chunk_by_dir and were largely copied from:
http://hg.mozilla.org/mozilla-central/file/fd12875a8a48/testing/mochitest/chunkifyTests.js
2015-02-13 16:23:45 -05:00
William Lachance
f7f87f9165 Bug 1132716 - Release mozversion 1.2. r=davehunt
CLOSED TREE
2015-02-12 18:09:53 -05:00
Julien Pagès
34dcbeeec1 Bug 1132415 - [mozversion] Expose the package name for local fennec APK file. r=wlach 2015-02-12 04:36:00 +01:00
Julien Pagès
5983cf8103 Bug 1132076 - [mozlog] Incorrect skip count in HTML log summary. r=davehunt 2015-02-11 09:19:00 -05:00
Henrik Skupin
8775f87142 Bug 1131980 - Release mozinstall 1.11 to pypi. r=ahal DONTBUILD 2015-02-11 20:54:23 +01:00
Andrew Halberstadt
e55738f586 Bug 1129495 - [mozlog] Add optional 'path' attribute to test_start, r=jgraham 2015-02-10 17:11:35 -05:00
Andrew Halberstadt
0c069fd2ef Bug 1123763 - [manifestparser] Implement filter system for manifest.active_tests(), r=ted
A filter is a callable that accepts an iterable of tests and a dictionary of values (e.g mozinfo.info) and returns an iterable of tests. Note filtering can mean modifying tests in addition to removing them. For example, this implements a "timeout-if" tag in the manifest:

    from manifestparser import expression
    import mozinfo

    def timeout_if(tests, values):
        for test in tests:
            if 'timeout-if' in test:
                timeout, condition = test['timeout-if'].split(',', 1)
                if expression.parse(condition, **values):
                    test['timeout'] = timeout
        yield test

    tests = mp.active_tests(filters=[timeout_if], **mozinfo.info)
2015-02-10 09:38:29 -05:00
Dave Hunt
67519972ab Bug 1130358 - [mozlog] Bump version to 2.10. r=jgraham 2015-02-06 04:47:00 -05:00
Wes Kocher
bc02c6b8e1 Backed out changeset ea625e85c72a (bug 1123763) for checktest orange on a CLOSED TREE 2015-02-09 14:00:13 -08:00
Andrew Halberstadt
9dd4f82c1d Bug 1123763 - [manifestparser] Implement filter system for manifest.active_tests(), r=ted
A filter is a callable that accepts an iterable of tests and a dictionary of values (e.g mozinfo.info) and returns an iterable of tests. Note filtering can mean modifying tests in addition to removing them. For example, this implements a "timeout-if" tag in the manifest:

    from manifestparser import expression
    import mozinfo

    def timeout_if(tests, values):
        for test in tests:
            if 'timeout-if' in test:
                timeout, condition = test['timeout-if'].split(',', 1)
                if expression.parse(condition, **values):
                    test['timeout'] = timeout
            yield test

    tests = mp.active_tests(filters=[timeout_if], **mozinfo.info)
2015-02-09 16:13:00 -05:00
Henrik Skupin
5763839fac Bug 1130905 - [mozinstall] Fix re-raising of exception in case of failing install or uninstall. r=ahal 2015-02-09 19:03:27 +01:00
Julien Pagès
b8e55efee0 Bug 1016929 - [mozlog] html formatter imports py.xml, doesn't declare it as a dependency. r=jgraham 2015-02-04 09:54:00 +01:00
Maciek
7da02914d3 Bug 1103945 - Add command line tool to merge multiple raw structured logs, r=jgraham 2015-02-02 20:13:50 +01:00
Geoff Brown
3ee5171ca3 Bug 1127928 - Increase pushDir timeout for xpcshell tests directory to 600 seconds; r=wlach 2015-01-30 15:23:41 -07:00
Geoff Brown
a2e1094131 Bug 1127457 - Fix check for zip in devicemanagerADB.py; r=armenzg 2015-01-30 15:23:40 -07:00
Armen Zambrano Gasparnian
df9f693caf Bug 1040079 - Change logging level for chmod operations for mozdevice. DONTBUILD. r=wlach 2015-01-27 15:20:09 -05:00
Dan Minor
689078fc6c Bug 1003408 - increase timeout for test_start_with_outputTimeout to avoid failures on test machines; r=wlach 2015-01-23 12:51:34 -05:00
Ting-Yu Chou
adbc8b93d0 Bug 989048 - Clean up emulator temporary files and do not overwrite userdata image. r=ahal 2015-01-23 21:55:43 +08:00
Ryan VanderMeulen
124d0c1a84 Backed out changeset 0ee76a98f2c3 (bug 989048) because it didn't work. 2015-01-22 10:25:18 -05:00
Julien Pagès
70a76df81c Bug 1119838 - Raise exception early when there is no adb command available; r=bclary 2015-01-19 11:15:53 -05:00
Andrew Halberstadt
970f12f598 Bug 1120983 - [manifestparser] Split manifestparser.py into several smaller files, r=wlach
Simple refactor that moves logic out of manifestparser.py and into cli.py, expression.py and ini.py.
2015-01-15 09:37:51 -05:00
Ujjwal Wahi
f0681fab9b Bug 1121037 - Release mozprofile 0.23. r=whimboo 2015-01-13 23:56:57 +05:30
Geoff Brown
da7f60057e Bug 1099475 - Backout 4386c2d95db3 for bug 1119962; r=backout 2015-01-12 14:33:45 -07:00
Ujjwal Wahi
57c50e4c5a Bug 1005856 - [mozinstall] Include original error message when re-throw an exception. r=whimboo
--HG--
extra : rebase_source : 87e8adc5865f1a2f665c6ae83a1d934efcd3fed5
2015-01-08 20:45:07 +05:30
Dave Hunt
2098f967b4 Bug 1118738 - Fix HTML report colours for expected skips and unexpected errors. r=jgraham 2015-01-07 06:36:00 -05:00
Ujjwal Wahi
452fac44eb Bug 1100363 - Maintain preference case. r=whimboo 2015-01-07 14:30:51 +01:00
Gregory Szorc
bda7f00f83 Bug 1116194 - Catch errors calling psutil; r=ted
The build system / mach currently has a very hacky virtualenv setup.
Essentially, it resorts to sys.path munging instead of a proper,
isolated environment.

During initialization, mach installs python/psutil in sys.path. Later
on, some code does an |import psutil|. This fails iff the psutil C
extension can't be found.

If there is a psutil C extension installed outside of mach and
python/psutil, |import psutil| may load it. The version mismatch isn't
detected until an extension-using psutil API is called. This has
manifested inside |mach build| via the resource monitor as an
|AttributeError: 'module' object has no attribute 'linux_sysinfo'|
exception during psutil.virtual_memory().

The proper fix for this is for the Python environment to ensure the
psutil C extension is built before attempting to import and use psutil.
Arguably, psutil itself should perform some kind of version check when
it imports the C extension to ensure things are in sync and fail at
import time.

Fixing mach and the build system Python environment to build psutil
earlier/properly is a long outstanding bug. It needs to be addressed.
But it is considerable effort. This patch continues the long history of
wallpapering over psutil import/run failures because using a proper
virutalenv from mach/build system is a lot of work. Sad panda.

--HG--
extra : rebase_source : 5c449d69c0fd907ea8359ac721ef6287baa4f10e
2014-12-29 12:06:21 -08:00
Julien Pagès
22eba78d7e Bug 1065406 - [mozlog] Split test class and name for XUnit formatter. r=jgraham 2014-12-16 16:02:00 +01:00
Ms2ger
a24ee90772 No bug - Bump the mozlog package version; rs=jgraham 2014-12-19 11:27:28 +01:00
Ms2ger
0b455d3c02 Bug 1113095 - Handle failing reftests in machformatter's summarizing code; r=jgraham 2014-12-19 11:25:51 +01:00
Ryan VanderMeulen
20228a773d Backed out changeset 88a15054f99f (bug 794984) for suspicion of "causing" Mulet mochitest crashes (and possible Linux32 mochitest-e10s-dt as well). 2014-12-18 18:11:13 -05:00
Henrik Skupin
f7d6afcd3d Bug 1113284 - Bump manifestparser to 0.9. r=ahal
--HG--
extra : rebase_source : aaf0d817aab50e25a2f45c2f3c5e386c366ea056
2014-12-18 21:00:35 +01:00
Henrik Skupin
4e6cd3d36f Bug 1110837 - [manifestparser] If parents are used, the first include in the master manifest is always used to determine defaults. r=jmaher
--HG--
extra : rebase_source : a28ecbd99906a54df76a5b74a45af9feac120488
2014-12-18 20:55:44 +01:00
Julien Pagès
8d6eecf040 Bug 794984 - [mozprocess] Add ability to separate stderr from stdout, r=ahal
A new parameter called 'processStderrLine' is added. When specified, stdout gets processed by the
'processOutputLine' callbacks and stderr is processed by the 'processStderrLine' callbacks. When
not specified, stderr is redirected to stdout which is the same default behaviour.

A side effect of this is that mozprocess now uses three threads to process output. One thread each
for stdout and stderr that reads output lines and stores them in a Queue as fast as possible, this
makes sure there is no blocking in stdout.write(). A third thread executes the callbacks.

--HG--
extra : rebase_source : d4601a6ae21ca61bfdca308c68155ce2c2e09e43
2014-12-18 11:53:14 -05:00
Andrew Halberstadt
9b51cfc77a Bug 1111727 - Bump mozrunner to version 6.7, r=whimboo
--HG--
extra : rebase_source : 34854203ebbc8b2339de54f83d29e381f718208a
2014-12-16 09:31:06 -05:00