Commit Graph

2787 Commits

Author SHA1 Message Date
Andrew Halberstadt
74619f9fa8 Bug 1340162 - Add task for running mozlint unitttests on Linux (and pull old tests out of make check), r=smacleod
MozReview-Commit-ID: 3XCWMJtQMvZ
2017-02-02 11:08:41 -05:00
Jan Beich
257a1d60fc Bug 1320940 - rustup is N/A on Tier3 platforms, so prefer downstream Rust packages. r=rillian
MozReview-Commit-ID: NsRGdweHuF
2016-11-29 14:27:46 +00:00
Sebastian Hengst
26ea5b9d14 Backed out changeset 3c0a7527608a (bug 1335873) 2017-03-01 17:35:06 +01:00
Andrew Halberstadt
d08b8a2c05 Bug 1335873 - Convert marionette harness unittests to standard python unittests, r=maja_zf
This formats the marionette-harness python tests to be a regular |mach python-test| suite. Though
we add subsuite=marionette, this is just for automation purposes. The new preferred way to run the
marionette harness tests locally is:
./mach python-test testing/marionette

They will also run if running the full suite.

The mozbase packages.txt file modifies mozlog to use 'setup.py' instead of 'pth'. The reason for
this is that the marionette-harness tests use the pytest_mozlog pytest plugin for formatting
their results (converts pytest format into something resembling the standard tbpl logging format).
In order for this plugin to get picked up however, mozlog's setup.py file needs to be processed.

MozReview-Commit-ID: Ata99evHxbd
2017-02-15 16:38:45 -05:00
Ting-Yu Lin
5c8cc6e696 Bug 1341962 - Update ccache stats parser for version 3.3.3. r=glandium
The "unsupported code directive" is added to the 'ccache -s' output in
b6d7cf5502

We need to teach our parser for it.

MozReview-Commit-ID: IrrJv7I7BVa
2017-02-23 11:35:39 +08:00
Iris Hsiao
a6a04a6365 Backed out changeset 2a15e34e2d22 (bug 1341962) for build bustage 2017-03-01 11:54:27 +08:00
Ting-Yu Lin
8598589114 Bug 1341962 - Update ccache stats parser for version 3.3.3. r=glandium
The "unsupported code directive" is added to the 'ccache -s' output in
b6d7cf5502

We need to teach our parser for it.

MozReview-Commit-ID: IrrJv7I7BVa
2017-02-23 11:35:39 +08:00
Mike Shal
ce0cb4746c Bug 1339182 - Remove OSX universal support in the build system; r=glandium
This removes the UNIFY_DIST and UNIFIED_BUILD variables, as well as the
--unify flag from the packager and UnifiedBuildFinder from mozpack. As a
result the STAGEPATH variable is never defined anymore, so its uses can
be removed as well.

test_unify.py is currently the only mozbuild/mozpack test that fails
without running configure first, and there isn't much point in fixing
tests for things that we don't actually use anymore.

MozReview-Commit-ID: F5q1FPW3Did
2017-02-10 16:52:17 -05:00
Mike Shal
2433844258 Bug 1338559 - Use the tier system to recurse for 'make check'; r=glandium
This helps us avoid recursing over every directory when we only need to
run 'make check' in a select few.

MozReview-Commit-ID: BJ3hJBOneIz
2017-02-03 16:47:28 -05:00
Andrew Halberstadt
873ca61ce2 Bug 1003417 - Add ability to run subsuites to |mach python-test|, r=ted
This adds the ability to use manifestparser subsuites to |mach python-test|.
Subsuites are based on the premise of a "default" set that gets run when no
subsuites are explicitly specified. When a test is labelled with a subsuite,
that test is removed from the default set and will only run if that subsuite
is explicitly specified. This will allow us to chunk python unittests out of
'make check' piecemeal. The default set will run in 'make check', and
individual tasks (e.g mozbase), will specify a subsuite explicitly.

The |mach python-test| implementation is slightly different. By default,
subsuites are not considered if developers do not pass in --subsuite. This
means running |mach python-test| without arguments will still run the full set
of tests, and similarly, passing in test paths will *just work*.

If for some reason a developer needs to actually run the default set, a special
"default" subsuite has been create, so they can use
|mach python-test --subsuite default|. This default subsuite is also what 'make
check' will explicitly invoke.

MozReview-Commit-ID: FaHb4nvuoK9
2016-11-17 16:30:33 -05:00
Andrew Halberstadt
af4668e060 Bug 1320194 - Generate all-tests.pkl and related files when resolving tests r=mshal
This replaces the 'run-tests-deps' make target with a python function that will directly
read moz.build files, emit them with TestManifestEmitter, then consume them with
TestManifestBackend. Because the TestResolver is the only place that actually reads the
test metadata files, we can remove this logic from the CommonBackend as well.

MozReview-Commit-ID: DXgMoeH5dKf



MozReview-Commit-ID: HstZ57qkqf2
2017-02-01 09:56:09 -05:00
Andrew Halberstadt
d1ef84c3ff Bug 1320194 - Add ability to specify custom emitter function in TreeMetadataEmitter r=gps
Currently, the only way to emit objects after reading moz.build, is to emit everything. Though, sometimes
it may be desirable to only emit certain types of objects. This adds a new argument that allows consumers
to specify a custom emitter function. This gives them the flexibility to do whatever they want.

This will be used when resolving tests, so only TestManifest objects are emitted.

MozReview-Commit-ID: DPGgNmn2JvE
2017-01-27 11:54:09 -05:00
Andrew Halberstadt
d4d246d256 Bug 1320194 - Fix bug preventing more than two backends in a HybridBackend r=gps
This is a drive by fix that is not relevant to the rest of the commit series.

MozReview-Commit-ID: Bwrb74o3Qh8
2017-01-27 16:31:15 -05:00
Andrew Halberstadt
741670d9c4 Bug 1320194 - Refactor test metadata related backend code into a partial TestManifestBackend r=gps
Currently the CommonBackend is responsible for processing TestManifest objects and using them to generate
the test metadata files (e.g all-tests.pkl et al). This patch pulls that logic out into a partial backend
specifically for test manifests.

This patch is solely a refactoring and shouldn't change any build behaviour. CommonBackend has a
TestManifestBackend instance and calls consume_object directly on it. However, this is just a temporary
measure to avoid checking in a broken commit.

This commit also adds a test for the 'test-defaults.pkl' file which was previously missing.

MozReview-Commit-ID: HOr2QVT8CJ1
2017-01-27 11:47:34 -05:00
Carsten "Tomcat" Book
242fd05a22 merge mozilla-inbound to mozilla-central a=merge 2017-02-15 12:21:44 +01:00
Nathan Froyd
79390906ae Bug 1306078 - part 3 - make mach vendor rust check for overly-large files; r=ted.mielczarek
When vendoring third-party files, we'd like an explicit notice/review
when said files contain a "large file".  This commit adds such checks
for files vendored via `mach vendor rust`.

As we don't yet have a server-side hook in place to prevent large files
from being added, we just have a command-line flag that people are
expected to use, on the honor system, to permit large files to be added
when vendoring.
2017-02-14 16:12:19 -05:00
Nathan Froyd
af232b9b9b Bug 1306078 - part 2 - add Repository.get_added_files; r=ted.mielczarek
Figuring out the files that have been added is also something that you
want to do with a source code repository.
2017-02-14 16:12:19 -05:00
Nathan Froyd
0745ffc417 Bug 1306078 - part 1 - add forget_add_remove_files to mozversioncontrol Repository objects; r=gps
This command is useful for users who wish to perform something like the
following:

1. Add/remove a bunch of files;
2. Examine the additions/removals/modifications for interesting changes;
3. Reject the add/remove if it doesn't meet some set of conditions.
2017-02-14 16:12:19 -05:00
Wes Kocher
815ada97eb Merge m-c to autoland, a=merge
MozReview-Commit-ID: KkIFx9ndC8y
2017-02-14 14:46:45 -08:00
Ralph Giles
a7b565233b Bug 1339409 - mozboot: Fix undefined FileNotFoundError. r=froydnj
The FileNotFoundError built-in exception is only present in
python 3. Emulate its behaviour in python 2 with a conditional
OSError.

MozReview-Commit-ID: 4b8THPG7jph
2017-02-14 11:41:04 -08:00
Gabriele Svelto
13e3767437 Bug 1310703 - Introduce the pingsender executable; r=ted
MozReview-Commit-ID: 2SEwwGywahQ
2017-01-16 17:39:22 +01:00
Ralph Giles
7fba88636d Bug 1337153 - Require rust 1.15.1. r=Ehsan
Bump the minimum version of the rust toolchain we require to
build. The 1.15 release includes support for custom #[derive]
directives, letting us use the serde serialization crate without
checking in a lot of generated code.

This is primarily motivated by webrender and the audio remoting
work, and lets us drop the heavy syntex dependency.

MozReview-Commit-ID: 6IObHhouPAn
2017-02-09 09:38:48 -08:00
Wes Kocher
dd70933f86 Merge m-c to autoland, a=merge
MozReview-Commit-ID: D76dMYwFRUQ
2017-02-09 17:06:59 -08:00
Ehsan Akhgari
fe55a520a0 Bug 1337874 - Include files that participate in unified builds in the compilation database; r=glandium
Without this, clang-tidy cannot check any diffs including such files.
In the future, when checking the entire tree using clang-tidy, we will
ignore these entries in the compilation database.
2017-02-09 10:14:47 -05:00
Justin Wood
e3dec2cbe6 Bug 1197325 - Remove now unused genisoimage. r=ted
MozReview-Commit-ID: AO3RgE4SdsH
2017-02-02 10:10:27 -05:00
Justin Wood
3380628ed9 Bug 1197325 -- Set volume icon for DMG in Linux->Mac cross compiles. r=ted
MozReview-Commit-ID: C4LFZB6msmL
2017-01-30 17:32:32 -05:00
Mike Hommey
b0d3e8e64c Bug 1337391 - Don't skip all directories that aren't traversed with a DIRS in a moz.build file. r=chmanchester
The way directory traversal is computed relies on the
RecursiveMakeTraversal class, which is used to reproduce the old
traversal order from the old entirely-in-make traversal with DIRS,
PARALLEL_DIRS, etc. because of the undeclared intra-directory
dependencies that are looming here and there.

It's fed through DirectoryTraversal objects emitted by the frontend.
Normally, DirectoryTraversal objects are emitted for a directory,
possibly giving the subdirectories defined in DIRS/TEST_DIRS its
moz.build. But in the case of gyp processing, nothing places the gyp
objdirs in some virtual DIRS of some parent moz.build since bug 1308982.

As a consequence, the corresponding entries in the
RecursiveMakeTraversal instance attached to the backend are not attached
to any parent directory. When subsequently traversing the tree from the
root, they are never found, and end up being skipped, irregarding of
their actual _no_skip status.

It would probably be possible to revert the changes from bug 1308992,
but we might as well not rely on remains from the old ways. So instead,
we make the RecursiveMakeTraversal consider directories without a
declared parent attached directly to the root directory. They don't need
to depend on any other directory anyways.
2017-02-09 15:22:34 +09:00
Phil Ringnalda
dc6ead507c Backed out 3 changesets (bug 1197325) for adding a burning Cc(hfsplus) job
CLOSED TREE

Backed out changeset 158233bce738 (bug 1197325)
Backed out changeset b5ac3fa0bbe7 (bug 1197325)
Backed out changeset 55a8ad127517 (bug 1197325)
2017-02-06 20:04:55 -08:00
Justin Wood
051de8616a Bug 1197325 - Remove now unused genisoimage. r=ted
MozReview-Commit-ID: AO3RgE4SdsH
2017-02-02 10:10:27 -05:00
Justin Wood
a740e99cc5 Bug 1197325 -- Set volume icon for DMG in Linux->Mac cross compiles. r=ted
MozReview-Commit-ID: C4LFZB6msmL
2017-01-30 17:32:32 -05:00
Chris Manchester
e2baaec963 Bug 1336231 - Install the gmp plugins to the correct directory during artifact builds. r=mshal
We had been installing them to dist/plugins with the rest of the test plugins,
but tests are actually expecting them to be in dist/bin.

MozReview-Commit-ID: 9qYFgZA4Fni
2017-02-03 10:59:06 -08:00
Michael Kaply
77f642c391 Bug 1328713 - Allow region specific overrides of search engines. r=florian 2017-02-03 16:48:44 -06:00
Ralph Giles
821879e565 Bug 1284816 - Remove --disable-rust. r=ted
Remove the option to build without rust code. We are not testing
this configuration and expect to land non-optional rust code in
the near future, so it doesn't make sense to maintain this option.

MozReview-Commit-ID: CwTlMXGvr5n
2017-02-01 15:38:49 -08:00
Chris Manchester
9ff38a6819 Bug 1330421 - Update artifact code to populate generated test support files from the tests archive. r=gps
This updates the client artifact code to locate test support files in the
common test archive and populate the objdir with these files appropriately.

MozReview-Commit-ID: GuXjwUtsl
2017-01-12 15:30:51 -08:00
Chris Manchester
d86a938133 Bug 1330421 - Change the structure of test archives include generated test support files in common.tests.zip for the benefit of artifact builds. r=gps
Generated support files for specific tests generally end up in a harness specific
test archive, but artifact builds, which might not want to generate these files
themselves, get all of their test related files from the common.tests.zip. This
effectively moves a small number of these support files from harness specific
archives to the common test archive, making it possible to run tests that
depend on these files against artifact builds.


MozReview-Commit-ID: BvEj1ot1OTw
2017-01-12 15:29:48 -08:00
Chris Manchester
1c4477994d Bug 1333135 - Ensure test support binaries are tracked by install manifests in the build backend. r=mshal
Install manifests influence test packaging, allowing artifact builds to consume
generated test support files and run tests that depend on them. This commit
tracks binaries with an install target under "_tests" so they will be correctly
installed in artifact builds.

This could similarly be achieved by installing the binaries via TEST_HARNESS_FILES
rather than setting FINAL_TARGET, however, PGO builds will fail attempting to install
the files during the profile generation step, because SIMPLE_PROGRAMS are not built
for this step.

MozReview-Commit-ID: ES4bTxOoqMN
2017-01-27 14:21:29 -08:00
Mike Hommey
ac9b21f74d Bug 1335309 - Change the default for find_executables to False. r=mshal
Back when the class was written, for the packaging code, it made sense
that the default was True. But now that it's used all over the place,
and that the vast majority of uses are with find_executables=False, it
makes more sense for that to be the default.
2017-01-31 14:06:15 +09:00
Mike Hommey
ab4e2a0d39 Bug 1335309 - Add explicit find_executables arguments to every use of FileFinder. r=mshal
And make it an error not to give it. While the default is True, we do
pass a value of False wherever it makes sense, which happens to be, in
most places.

This is an intermediate step to flip the default from True to False,
ensuring that we don't unwantedly switch some calls to False.
2017-01-31 13:01:34 +09:00
Benjamin Smedberg
3a243797b4 Bug 1333826 - Remove SDK_FILES, SDK_LIBRARY, and related is_sdk support in the build goop, r=mshal
MozReview-Commit-ID: 52vPyDXdFte
2017-01-30 11:24:10 -05:00
Wes Kocher
3681d04852 Merge m-c to inbound, a=merge
MozReview-Commit-ID: EfMOcZbAiSe
2017-01-27 16:39:29 -08:00
Francesco Pischedda
2d56a8615d Bug 1313194 - Add --outgoing argument to mozlint. r=ahal
Was: Replace mozlint's --rev with a --outgoing argument

MozReview-Commit-ID: 5YcRWbc1dR4
2017-01-26 17:50:34 +01:00
Nathan Froyd
cbfb241a58 Bug 1334556 - make GitRepository.get_modified_files slightly more idiomatic; r=gps
Having to munge the output of `git status --porcelain` is unseemly when
there are approaches that will give us what we want directly.
2017-01-27 13:51:58 -05:00
Mike Hommey
72f3e3f969 Bug 1322025 - Provide variants of host and target that depend on --help. r=chmanchester
We want to avoid giving --help dependencies to host and target, so that
they we don't spawn config.guess and config.sub when running configure
--help, and don't need to reach out to the which module to find a
suitable shell to execute them.

So, when --help is given, we return a fake host/target namespace, and
avoid the config.guess/config.sub-invoking code being executed.

Then, by giving the --help option to the linter, it can properly find
that the config.guess/config.sub-invoking code doesn't need the
dependency on --help.

This effectively unbreaks configure --help after bug 1313306.
2017-01-25 17:54:16 +09:00
Mike Hommey
e48de62fa9 Bug 1322025 - Allow to combine two DependsFunctions with "|". r=chmanchester
Ideally, it would have been better if it were "or", but it's not
possible to override "or" in python ; __or__ is for "|".

This does feel magic, but it's also shorter than adding something like
@depends_any(), and while we're only adding "|" as of this change, we
can add other operations such as "&" in the future, or __getattr__ for
things like milestone.is_nightly.

An alternative form in moz.configure could require the @depends function
to be called, e.g. "a() | b()" instead of "a | b", but I'm not
particularly convinced that one is less magic than the other.

This feature is hooked up such that b is not resolved if a is true,
although in practice, it will still be resolved in Sandbox.run... but
not when --help is passed. In the long run, the forced resolution of
@depends functions will be removed from Sandbox.run.
2017-01-25 17:42:33 +09:00
Mike Hommey
90cd8a2e88 Bug 1322025 - Don't automatically add --help dependencies to CombinedDependsFunctions. r=chmanchester
Adding those dependencies, retrospectively, only worked around the poor
handling of --help requirements by the linter, that we fixed a few
commits ago. This is now not necessary anymore.
2017-01-25 17:10:03 +09:00
Mike Hommey
77d96bf284 Bug 1322025 - Don't wrap the combination function in CombinedDependsFunction. r=chmanchester
Several things were wrong with the wrapping:
- the equality test on functions was actually comparing the memoized
  functions, which have a type memoize, which inherits from dict. So
  they weren't comparing actual functions, but the dict used to store
  the cache of their invocation.
- each CombinedDependsFunction created for the same combination function
  used a different wrapped function, so even if the dict problem wasn't
  there, the equality test still wouldn't work, except if the function
  wrapping itself was memoized.
- the memoization was not particularly useful.

Also, for upcoming changes, we'd actually like the combination function to
take an iterable instead of a variable argument list, so that items of
the iterable can be skipped.
2017-01-25 16:50:29 +09:00
Mike Hommey
6d1ee706cc Bug 1322025 - Make DependsFunction.func less public. r=chmanchester
We're going to change the function signature for CombinedDependsFunction,
so make it visible in the API that the function member is not meant to
be used directly. The linter still does, though, because it needs to
look in their guts.

At the same time, avoid setting DependsFunction names via the function
name itself, because in upcoming changes, it will not be modifiable in
some cases.
2017-01-25 16:32:03 +09:00
Mike Hommey
15a3a4a8e1 Bug 1322025 - Enforce --help requirement on option's when argument. r=chmanchester
Options with a `when` argument (either directly, or inherited through
only_when() or an include) require --help per _value_for_option, but
that code path is not exercised during a lint pass.

With this change, along the previous one, we now correctly detect that
bug 1316957 was not supposed to work as is.
2017-01-25 14:37:34 +09:00
Mike Hommey
e3edee3674 Bug 1322025 - Enforce --help requirement on indirect dependencies. r=chmanchester
Bug 1313306 relaxed the --help dependency requirement in some cases, but
while doing so, the requirement was also removed in other, unexpected
cases. Specifically, the --help dependency ended up not being required
on indirect dependencies that should have had it, had the --help
dependency been explicit on the direct dependency.
2017-01-25 14:25:58 +09:00
Chris Manchester
388e4f9b98 Bug 1332517 - Add an 'artifact' key to mozinfo. r=mshal
MozReview-Commit-ID: GPq52LMg23Q
2017-01-19 17:05:02 -08:00