Closed Bug 1229233 Opened 4 years ago Closed 4 years ago

Add a close-to-end-to-end test of the build system

Categories

(Firefox Build System :: General, defect)

defect
Not set

Tracking

(firefox45 fixed)

RESOLVED FIXED
mozilla45
Tracking Status
firefox45 --- fixed

People

(Reporter: glandium, Assigned: glandium)

References

Details

Attachments

(5 files, 1 obsolete file)

We have many unit tests in the tree for some small parts of the build system pipeline, but we don't have anything that resembles an end to end test, and we kind of rely on the resulting Firefox not being broken by our changes.

With the Faster make backend growing, I want to ensure it produces the same thing as the recursive make backend, at least for the parts it supports. As a consequence, I want to add some kind of test that allows to check that.

It will start incomplete, but will grow with time.
Attachment #8693897 - Attachment is obsolete: true
Attachment #8693897 - Flags: review?(gps)
Attachment #8693904 - Flags: review?(gps)
The test I'm about to add doesn't have XPIDL files, and that currently avoids
the FasterMake backend to run properly. Also, in the future, when the FasterMake
grows the ability to build C++ files, it should be possible to build Spidermonkey
with the FasterMake backend, but it doesn't have XPIDL files either.
Attachment #8693905 - Flags: review?(gps)
We have many unit tests in the tree for some small parts of the build system
pipeline, but we don't have anything that resembles an end to end test, and we
kind of rely on the resulting Firefox not being broken by our changes.

With the Faster make backend growing, I want to ensure it produces the same
thing as the recursive make backend, at least for the parts it supports.

This adds some kind of test that allows to check that.
Attachment #8693908 - Flags: review?(gps)
FWIW, this test already allowed me to find a subtle regression in the patch queue I'm going to attach to a new, separate, bug.
Attachment #8693904 - Flags: review?(gps) → review+
Attachment #8693905 - Flags: review?(gps) → review+
Comment on attachment 8693906 [details] [diff] [review]
Ensure the target directory for copies exists in the FasterMake backend

Review of attachment 8693906 [details] [diff] [review]:
-----------------------------------------------------------------

Wish you had a better commit message for why this is required - I figured our install manifests had comprehensive enough coverage that this type of thing wasn't required any more.
Attachment #8693906 - Flags: review?(gps) → review+
Attachment #8693907 - Flags: review?(gps) → review+
Comment on attachment 8693908 [details] [diff] [review]
Add a (incomplete) end-to-end build test

Review of attachment 8693908 [details] [diff] [review]:
-----------------------------------------------------------------

Niiiice. I didn't look at the low-level test inputs and outputs too much, as changes are what we care about. Obviously there's more things we could test here. But you have to start somewhere.
Attachment #8693908 - Flags: review?(gps) → review+
Comment on attachment 8693908 [details] [diff] [review]
Add a (incomplete) end-to-end build test

Review of attachment 8693908 [details] [diff] [review]:
-----------------------------------------------------------------

::: python/mozbuild/mozbuild/test/backend/test_build.py
@@ +109,5 @@
> +
> +    def validate(self, config):
> +        self.maxDiff = None
> +        test_path = mozpath.join(mozpath.dirname(mozpath.abspath(__file__)),
> +                                 'data', 'build')

I folded a change here and in the corresponding format strings below to account for Windows when landing.
And a couple fixups:
https://hg.mozilla.org/integration/mozilla-inbound/rev/cf71b87eafcf
  for bustage on Windows because of the backslashes in the PYTHON variable
https://hg.mozilla.org/integration/mozilla-inbound/rev/958e2652c301
  for bustage on OSX Universal builds because of the objdir discrepancy. I copied bits from TestMozbuildObject.
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.