Commit Graph

56 Commits

Author SHA1 Message Date
Andrew Halberstadt
64e33c7c26 Bug 1003417 - Add a 'mozbase' subsuite to python unittests on linux, r=ted
The subsuite is added conditionally because we only have the capability of
running source-check tasks on linux at the moment. Once taskcluster support
for windows and mac has matured a bit and the taskcluster configs support
source-check there, we should apply the subuite unconditionally.

MozReview-Commit-ID: Kk9Irz3fn14
2016-11-16 16:43:42 -05:00
Andrew Halberstadt
d25071760a Bug 1334488 - [manifestparser] Improve error message when using an invalid comment character at the start of a manifest, r=jmaher
This refactors some of the error logic into a new IniParseError exception. In addition to checking for a 'name' property, we also
check for a 'path' property. This is because some file-like objects coming out of the build system use a 'path' attribute instead
of the standard 'name'.

MozReview-Commit-ID: EXXl9gt1MQk
2017-01-27 10:28:58 -05:00
Andrew Halberstadt
8217f86b87 Bug 1333564 - [manifestparser] Include manifest path when raising exceptions from the ini parser, r=jmaher
MozReview-Commit-ID: 3Ns9PxVnvy5
2017-01-25 15:51:06 -05:00
Andrew Halberstadt
c69928b065 Bug 1333564 - [manifestparser] Add support for inline comments, r=jmaher
Previously manifestparser only supported inline comments on conditional keys, such as
skip-if, fails-if, subsuite-if, etc. But on any other key name, inline comments weren't
supported. This was a bad situation because people saw these skip-if comments, and
naturally assumed inline comments worked everywhere. Then they were surprised when things
broke in mysterious ways.

This patch removes the special-casing for skip-if and friends and allows inline comments
everywhere. A caveat to this, is that ' #' is no longer a valid substring in a value.

MozReview-Commit-ID: Hr0BIwzTgaJ
2017-01-25 12:21:31 -05:00
Andrew Halberstadt
3f9cbf87a1 Bug 1333564 - [manifestparser] Stop supporting ';' as a valid comment character, r=jmaher
It turns out there are shockingly few cases of manifestparser manifests that actually use the ';'
character as a comment. Because we will soon allow inline comments, deprecating the use of ';' will
ensure that values are allowed to have semicolons in them.

Even without inline comments, might as well enforce consistency across manifests.

MozReview-Commit-ID: AEPPQFdNXG0
2017-01-25 14:38:37 -05:00
Andrew Halberstadt
7a36b4a276 Bug 1333564 - [manifestparser] Allow multi-character comment tokens, r=jmaher
MozReview-Commit-ID: 8RDgAkBVmcK
2017-01-25 09:41:10 -05:00
Kris Maglione
870d184924 Bug 994255: Add included and parent test manifest files to backend inputs list. r=gps
MozReview-Commit-ID: EvMt0ojZGFr
2016-11-18 14:52:54 -08:00
Andrew Halberstadt
e7efd21c97 Bug 1317970 - Make mozbase tests use mozunit for consistent formatting, r=chmanchester
The mozbase unittests don't use mozunit, so their output is confusing in the log.
This makes mozbase output consistent with the rest of the python unittests.

MozReview-Commit-ID: AIs5mza8Rn6
2016-11-17 16:36:18 -05:00
Chris Manchester
8a7e61e6ba Bug 1313716 - Don't provide a blank subsuite as a default in the manifestparser. r=ahal
This causes consumers managing defaults themselves to fail to find a default
subsuite for tests, because the manifestparser will have provided a blank
default value by the time they incorporate defaults into a test definition.
This patch removes the provided defaults and updates a number of places assuming
the 'subsuite' field is always present.

MozReview-Commit-ID: 1jPy52VmEPr
2016-10-31 10:04:42 -07:00
Kris Maglione
247e5c5860 Backed out changeset 425c0602ccb4 (bug 1313716) for breaking mach mochitest. r=backout
MozReview-Commit-ID: pTW1acQYLV
2016-10-30 19:17:13 -07:00
Chris Manchester
168be1651b Bug 1313716 - Don't provide a blank subsuite as a default in the manifestparser. r=ahal
This causes consumers managing defaults themselves to fail to find a default
subsuite for tests, because the manifestparser will have provided a blank
default value by the time they incorporate defaults into a test definition.
This patch removes the provided defaults and updates a number of places assuming
the 'subsuite' field is always present.

MozReview-Commit-ID: 1jPy52VmEPr
2016-10-28 11:07:21 -07:00
Chris Manchester
2ad0a35d64 Bug 1312520 - Extract the logic for combining defaults and individual section defnitions in the manifestparser to a standalone function. r=ahal
MozReview-Commit-ID: CQNFboRhsOs
2016-10-25 12:23:39 -07:00
Chris Manchester
5d49aba228 Bug 1312520 - Add an option to the manifestparser to prevent defaults from propagating to individual section definitions. r=ahal
Consumers will be expected to process defaults themselves through the
"manifest_defaults" member variable instead.

MozReview-Commit-ID: IGnOj3zEJfE
2016-10-25 12:23:39 -07:00
Francesco Pischedda
46c0d4af68 Bug 1280573 - Add testing/mozbase to flake8 linter: r=ahal
added testing/mozbase to tools/lint/flake8.lint
fixed a first batch of PEP8 errors/warnings

at first the commad autopep8 -i --max-line-length 99 -r -j 8 .
has been used to fix simpler problems, run from testing/mozbase

some of the issues can not easily fixed :
- undefined 'names' in code for example isLinux - isLinux and isBsd "fixed" with # noqa
- undefined 'message' resolved with return fmt.format(...
- undefined 'structured' resolved replacing those with mozlog
- long comments - some remaining - addressed with # noqa
- package level import everything - addressed with # flake8: noqa

restored testing/mozbase/mozdevice/mozdevice/Zeroconf.py
fixed issues reported on mozreview
fixed ')' in testing/mozbase/mozprocess/mozprocess/qijo.py imports
finally fixed multiline string at testing/mozbase/manifestparser/tests/test_manifestparser.py:114
^^^ and again, but now with ./mach python-test --path-only testing/mozbase/manifestparser/tests/test_manifestparser.py passing
fixed testing/mozbase/manifestparser/tests/test_convert_directory.py assert

fixed this error:
10:15:21     INFO -      return lambda line: stack_fixer_module.fixSymbols(line)
10:15:21     INFO -  TypeError: fixSymbols() takes exactly 2 arguments (1 given)

fixed two spaces lint error even of #  noqa comments
restored assignement to lambda with #  noqa to silence the lint error
global noqa for testing/mozbase/manifestparser/tests/test_filters.py
stupid is/is not error...

MozReview-Commit-ID: 1FpJF54GqIi
2016-09-30 16:08:37 +02:00
Andrew Halberstadt
0b932ec201 Bug 1296735 - [manifestparser] pathprefix filter should use absolute paths if the filter is also absolute, r=jmaher
This fixes an error when attempting to run xpcshell-test with a test path from an interactive loaner.

MozReview-Commit-ID: 20kg5zKplhT
2016-08-22 13:31:56 -04:00
Chris Manchester
a2b0af9dfa Bug 1261456 - Combine support-files listed in [DEFAULT] with any listed per-test rather than overriding. r=gps
This requires a change to how we process test manifests in the build system:
now, whenever we see a support file mentioned in a manifest, we require that
file isn't already in that test's support files, but if we see a support file
that was already seen in some other test, the entry is ignored, but it is not
an error. As a result of this change, several duplicate support-files entries
needed to be removed.

MozReview-Commit-ID: G0juyxzcaB8
2016-04-11 11:21:20 -07:00
Tooru Fujisawa
c20b8b7290 Bug 1221139 - Report actual exception string and traceback in ParseError. r=ahal 2015-11-07 20:45:07 +09:00
Chris Manchester
cf94b65b09 Bug 1203266 - Optionally read manifestparser manifests with a Finder class. r=ahal
We need to go through an abstraction layer when manifestparser manifests
are read as a part of reading moz.build files in case moz.build reading
is using mercurial as its filesystem. This adds an optional finder member,
which will be used if present for IO that happens when reading manifests,
This needs to be optional, because the manifestparser can be used as a
standalone package that isn't distributed with mozpack.
2015-10-16 15:31:20 -07:00
Chris Manchester
ccc1686914 Bug 1203266 - Don't call normpath in the manifestparser on paths that don't contain '..'. r=ahal
Profiling the manifestparser revealed that 25% of its total time is spent in a single
call to os.path.normpath, called on each test path in each manifest. For the manifests
in mozilla-central, these calls almost always return their input. To save time, this
patch modifies the manifestparser to not call normpath on paths that don't contain
'..'. This will change the parsed result of manifests containing no-op path
components ('//' or '/./') to include those components in their output.
2015-10-16 15:31:20 -07:00
Julien Pagès
a1a292eeeb Bug 980788 - [manifestparser] Add greater-than/less-than (equal) support. r=ahal 2015-07-15 04:42:00 -04:00
Andrew Halberstadt
5db09115ca Bug 1182817 - [manifestparser] Fix exception in chunk_by_slice when there are two times more chunks than tests, r=chmanchester 2015-07-13 14:38:34 -04:00
Andrew Halberstadt
2651e9f398 Bug 1171971 - Move test_paths argument out of mach and into mochitest; remove --test-path, r=chmanchester 2015-06-05 13:28:29 -04:00
Andrew Halberstadt
77a48ef779 Bug 1150497 - Make manifestparser tags whitespace (instead of comma) delimited to conform to other attributes, r=chmanchester 2015-04-02 09:50:30 -04:00
Andrew Halberstadt
a65f07101e Bug 1150050 - Bump manifestparser to v1.1 and marionette-client to v0.9.3 to pick up tagging feature, r=AutomatedTester 2015-04-01 11:22:48 -04:00
Andrew Halberstadt
baf7554392 Bug 987360 - Add ability to tag tests with arbitrary strings and run them, r=chmanchester
Add a `tags` attribute to a test or DEFAULT section in a manifest:

[test_foo]
tags = foo

Then run all tests with a given tag by passing in `--tag foo` to a supported test harness. So far mochitest, xpcshell and marionette are supported.
2015-03-19 16:15:33 -04:00
Andrew Halberstadt
2e8d5ebe71 Bug 1142050 - Add --chunk-by-runtime option to mochitest, r=jmaher
With --chunk-by-runtime enabled, test runtime data collected from automation is used to try and make all chunks take the same amount of time. So far only data for mochitest browser-chrome is added.
2015-03-26 15:21:45 -04:00
Ryan VanderMeulen
beab04f3c0 Backed out changesets acbab9e22691 and 3c34fd480729 (bug 987360) for Android/B2G xpcshell bustage.
CLOSED TREE
2015-03-27 13:12:19 -04:00
Andrew Halberstadt
90da2d6c5b Bug 987360 - Add ability to tag tests with arbitrary strings and run them, r=chmanchester
Add a `tags` attribute to a test or DEFAULT section in a manifest:

[test_foo]
tags = foo

Then run all tests with a given tag by passing in `--tag foo` to a supported test harness. So far mochitest, xpcshell and marionette are supported.
2015-03-19 16:15:33 -04:00
Andrew Halberstadt
37afafc1a3 Bug 1131098 - Make mochitest use manifestparser's chunking algorithms and remove JS based ones, r=jmaher 2015-03-10 09:55:30 -04:00
Andrew Halberstadt
14a0f74989 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
Ryan VanderMeulen
c12a19ebdd Backed out changeset 99c2fcc61cc2 (bug 958147) for B2G Desktop and Mulet checktest failures.
CLOSED TREE
2015-03-05 10:02:07 -05:00
Anish
01e1fde139 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
f06008f019 Backed out changeset b3fe7a6a4939 (bug 958147) for m4 test failures on a CLOSED TREE 2015-03-05 14:00:33 +01:00
Anish
d979428618 Bug 958147 - Remove run_if filter from manifestparser, r=ahal 2015-03-04 15:46:58 -05:00
Andrew Halberstadt
bbd1d50b1a 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
fe58834cf9 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
Andrew Halberstadt
589afea234 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
Andrew Halberstadt
a74852785a 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
Andrew Halberstadt
2acbd7c0f3 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
Henrik Skupin
8177b06649 Bug 1113284 - Bump manifestparser to 0.9. r=ahal 2014-12-18 21:00:35 +01:00
Henrik Skupin
58db3c66c8 Bug 1110837 - [manifestparser] If parents are used, the first include in the master manifest is always used to determine defaults. r=jmaher 2014-12-18 20:55:44 +01:00
Julien Pagès
1d96fc828a Bug 920938 - [manifestparser] handle symlinks in populate_directory and from directories; r=jmaher 2014-12-05 09:59:00 +01:00
Pankaj Malhotra(:bitgeeky)
22588a5bfe Bug 1087682 - Add a manifestparser test for the case where there is no manifest. r=jgriffin 2014-11-04 04:16:00 +01:00
Jonathan Griffin
b7e090459f Bug 1087711 - Bump manifestparser to 0.8, r=jmaher 2014-10-22 16:04:15 -07:00
Chris Manchester
4b928de0a1 Bug 1068923 - Provide the including manifest name to uniquely identify tests in case of a dupe manifest. r=ahal
The path of the including manifest is included in test objects whenever possible to aide identification of tests in cases the same test file is included by multiple manifests.
2014-10-22 16:04:51 -04:00
Jonathan Griffin
00006fa30c Bug 1086678 - Provide a default value for subsuite, r=jmaher 2014-10-21 13:12:35 -07:00
Wes Kocher
0ab4d50ee2 Backed out changeset 325d41a714e3 (bug 1086678) for bustage on a CLOSED TREE 2014-10-21 13:51:26 -07:00
Jonathan Griffin
34886a0059 Bug 1086678 - Provide a default value for subsuite, r=jmaher 2014-10-21 13:12:35 -07:00
Andrei Eftimie
2c35bc3a53 Bug 1056037 - Bump manifestparser version to 0.7. r=hskupin 2014-10-07 10:41:59 +02:00
Andrei Eftimie
79e3148e4a Bug 1023790 - [manifestparser] Add support for parent link. r=hskupin, r=jmaher 2014-10-02 14:23:21 +02:00