Closed
Bug 917999
Opened 11 years ago
Closed 9 years ago
Split test package into per-suite packages
Categories
(Testing :: General, defect)
Testing
General
Tracking
(firefox39 fixed, firefox40 fixed, firefox41 fixed, firefox42 fixed, firefox-esr38 fixed)
RESOLVED
FIXED
mozilla42
People
(Reporter: ted, Assigned: chmanchester)
References
(Blocks 4 open bugs)
Details
Attachments
(8 files, 4 obsolete files)
1.96 KB,
patch
|
jlund
:
review+
|
Details | Diff | Splinter Review |
3.42 KB,
patch
|
jlund
:
review+
|
Details | Diff | Splinter Review |
39 bytes,
text/x-review-board-request
|
ted
:
review+
|
Details |
39 bytes,
text/x-review-board-request
|
jlund
:
review+
|
Details |
40 bytes,
text/x-review-board-request
|
jlal
:
review+
|
Details |
2.96 KB,
patch
|
jlund
:
review+
|
Details | Diff | Splinter Review |
9.39 KB,
patch
|
jlund
:
review+
|
Details | Diff | Splinter Review |
1.49 KB,
patch
|
gbrown
:
review+
|
Details | Diff | Splinter Review |
The test package is pretty ridiculously big. From latest-trunk today:
[ ] firefox-26.0a1.en-US.linux-i686.tests.zip 17-Sep-2013 12:53 119M
[ ] firefox-26.0a1.en-US.mac.tests.zip 17-Sep-2013 12:04 124M
[ ] firefox-26.0a1.en-US.win32.tests.zip 17-Sep-2013 13:36 83M
I think we should split the test package into per-suite packages, along with perhaps a common package (for mozbase and whatever else is needed by all suites).
This should help out a little bit with test setup time, since we won't have to download quite as much data. (Mostly I'm implementing a new harness and I wish I didn't have to put my handful of tests in the giant test package.)
Comment 1•11 years ago
|
||
Does this finally give us the ability to move away from zip? IIRC the main reason we like it is because we can easily extract file subsets without significant penalty. But the compression ratio is crap. We should just give mozharness a generic uncompress() API that can recognize archives by file extension or by sniffing file headers and we can upload whatever archive format is current in style.
Comment 2•11 years ago
|
||
Split up by dir, the compressed sizes are:
cppunittests: 181 381 318
mochitest: 28 116 450
reftest: 21 073 335
xpcshell: 15 885 186
jsreftest: 4 846 268
jit-test: 1 846 856
bin: 1 672 486
jetpack: 911 380
marionette: 414 355
mozbase: 348 612
tps: 165 769
peptest: 107 338
modules: 71 641
certs: 59 298
steeplechase: 47 185
config: 822
so it's probably worth splitting cppunittests out even before splitting it entirely.
Reporter | ||
Comment 3•11 years ago
|
||
Are the cppunittests not stripped? I thought we fixed that.
Comment 4•11 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #3)
> Are the cppunittests not stripped? I thought we fixed that.
They were stripped everywhere in bug 889078, but this behaviour was changed in bug 920055 to support ASAN.
Comment 5•11 years ago
|
||
http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-linux64-debug/1390395367/firefox-29.0a1.en-US.linux-x86_64.tests.zip is 259MB.
This definitely can't be helping things like bug 957502, which we think are caused by high network load.
Comment 6•11 years ago
|
||
Another benefit of splitting is we can move away from zip. IIRC we use zip to facilitate extraction of specific directories. If the entire archive is relevant, we redundantly compress some contents among multiple archives, but we should get better overall compression since zip doesn't reuse compression contexts across files (like other formats do).
Take mochitests for an example:
zip: 27 842 706
gzip: 21 460 639
bzip: 19 514 083
Archives with a larger proportion of binary (not very compressible) content will see a lesser size reduction.
Comment 7•11 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #6)
> Another benefit of splitting is we can move away from zip. IIRC we use zip
> to facilitate extraction of specific directories. If the entire archive is
> relevant, we redundantly compress some contents among multiple archives, but
> we should get better overall compression since zip doesn't reuse compression
> contexts across files (like other formats do).
>
> Take mochitests for an example:
>
> zip: 27 842 706
> gzip: 21 460 639
> bzip: 19 514 083
bzip is slow to compress. That would add to build times. The difference between gzip and zip is interesting, since zip uses the same compression. Did you gzip -9? If you did, then a fair comparison would be with zip -9.
Comment 8•11 years ago
|
||
> IIRC we use zip to facilitate extraction of specific directories.
Note that sounds like a bad reason, because it's possible with tar, too (albeit less efficient, since there is no index).
Comment 9•11 years ago
|
||
(and since it's the entire archive that's compressed, instead of individual files)
Comment 10•11 years ago
|
||
gzip w/ 9 produces 21 368 356 for mochitests.
I used -9 with zip.
gzip is probably the right balance between size and speed.
Also, the way we create test archives is bat shit insane. We stage files as part of the build to objdir/_tests. Then, we stage them again (often using tar | tar) as part of |make package-tests|. Then, we zip that "unified" directory and then delete it. Clownshoes. If we got our act together, we could probably create the archive straight from files in the source directory using data within manifests, mozpack, and Python's stdlib routines for creating archives: no excessive file copying necessary. This is tracked in another bug somewhere.
Comment 11•11 years ago
|
||
xz is faster than bzip2 generally, and gets better compression than gz, I'd be open to looking at it as a possibility.
IIRC we chose .zip because some windows platform ages ago couldn't unpack .tar.gz reliably.
Comment 12•11 years ago
|
||
> Also, the way we create test archives is bat shit insane. We stage files as
> part of the build to objdir/_tests. Then, we stage them again (often using
> tar | tar) as part of |make package-tests|. Then, we zip that "unified"
> directory and then delete it. Clownshoes. If we got our act together, we
> could probably create the archive straight from files in the source
> directory using data within manifests, mozpack, and Python's stdlib routines
> for creating archives: no excessive file copying necessary. This is tracked
> in another bug somewhere.
These extra directories/files are also left on disk afterwards, bloating the space required for each build on the machine.
Comment 13•11 years ago
|
||
So, splitting should be relatively easy: we just replace our |make package-tests| logic. If we want to go a step further and minimize I/O during packaging, we can start by replacing the package-tests logic with Python. If we want to stop the staging to objdir/_tests, that requires a bit more effort, especially when you consider that some test files are preprocessed. Not sure if we'll ever get there. But if we wanted to try, xpcshell would be a good place to start!
Reporter | ||
Comment 14•11 years ago
|
||
I had thought about putting the test package contents definitions into moz.build, which would make it much easier for us to make the packaging less stupid.
Comment 15•11 years ago
|
||
Note that objdir/_tests is used to run tests locally. Getting rid of that would need more smarts from the test harnesses.
Comment 16•11 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #15)
> Note that objdir/_tests is used to run tests locally. Getting rid of that
> would need more smarts from the test harnesses.
Indeed. xpcshell is *almost* there. Preprocessed and otherwise build-system-installed files are the big hurdle here. Unless we want to invent some VPATH like solution, we may just have to always stage to a common location. Boo.
Reporter | ||
Comment 17•10 years ago
|
||
I filed bug 1059943 for an alternate idea that catlee and I have been kicking about: uploading all the files from the test package to s3 keyed by a hash.
Reporter | ||
Comment 18•10 years ago
|
||
catlee and I decided bug 1059943 was unworkable, but we talked about a variant of this bug that would be useful. Here's what I propose for this bug:
* Make each test suite package its files into a separate archive (don't care if it's zip or what)
* Put common files into a common archive
* Each test suite should produce a JSON manifest that describes which archive files it needs and what subdirectory they should be unpacked into.
Then mozharness instead of downloading the entire tests.zip would download the per-suite manifest and download the archives it references, which is nicer than what we do now.
There's a follow-on (that I will file shortly) that we talked about which is even cooler--once we start checking out the source tree on the test machines we can stop packaging files that come verbatim from the source (most of our tests), and the manifest file would list them as "from the source tree" so mozharness would simply copy them from the source tree into the unpacked test archive directory.
Assignee | ||
Comment 19•10 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #18)
> catlee and I decided bug 1059943 was unworkable, but we talked about a
> variant of this bug that would be useful. Here's what I propose for this bug:
> * Make each test suite package its files into a separate archive (don't care
> if it's zip or what)
> * Put common files into a common archive
> * Each test suite should produce a JSON manifest that describes which
> archive files it needs and what subdirectory they should be unpacked into.
Funny, this manifest sounds like just what I would want to help set up an environment to help people run tests downloaded from automation.
>
> Then mozharness instead of downloading the entire tests.zip would download
> the per-suite manifest and download the archives it references, which is
> nicer than what we do now.
>
> There's a follow-on (that I will file shortly) that we talked about which is
> even cooler--once we start checking out the source tree on the test machines
> we can stop packaging files that come verbatim from the source (most of our
> tests), and the manifest file would list them as "from the source tree" so
> mozharness would simply copy them from the source tree into the unpacked
> test archive directory.
Assignee | ||
Comment 20•10 years ago
|
||
Relatedly, is anyone planning to take this bug soon?
Reporter | ||
Comment 21•10 years ago
|
||
I'd like to but I'm not sure I have time. Here's what I'd do if you're interested:
Phase 1: Write and upload manifests that describe the current state of affairs. Everything requires the full tests.zip, js tests also require the jsshell zip.
Phase 2: Revamp mozharness to use the manifests for downloading instead of just fetching the tests zip.
Phase 3: Split the tests zip up, make the manifests refer to the proper split zip, mozharness should do the right thing.
Assignee | ||
Comment 23•10 years ago
|
||
I have this working on android and desktop as far as splitting out the cpp unittest binaries. I'm a bit concerned about various tools that might live out of tree expecting to find a monolithic tests.zip to consume.
Reporter | ||
Comment 24•10 years ago
|
||
Eh, if it's not in mozharness it'll have to adapt.
Comment 25•10 years ago
|
||
I agree but we should make a post to dev.platform explaining the change before we actually push the big red button.
Assignee | ||
Comment 26•10 years ago
|
||
done: most B2G jobs, univeral binaries
todo: taskcluster
Assignee | ||
Comment 27•10 years ago
|
||
Taskcluster encodes the idea that a test job needs a build and a tests.zip in a lot of places that will need replacing, but makes this even a bit harder by re-naming things as it uploads them (all its tests.zips are called "target.tests.zip" rather than $(PKG_BASENAME).tests.zip).
Comment 28•10 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #24)
> Eh, if it's not in mozharness it'll have to adapt.
I guess it's a good thing I moved TB's mozmill tests to mozharness a few weeks ago?
I guess this also means I should look at moving TB builds to mozharness-based, since I'm not really able to maintain buildbot code at all... Oh well, that was already on my "consider doing this" list.
Comment 29•10 years ago
|
||
We currently trigger test jobs in buildbot by passing testsUrl as a property; mozci follows this model.
Once we are close to stop passing the URL and instead use the uploaded manifests, I will need to know what will be expected so I can adjust how mozci triggers jobs on buildbot.
Thanks for the dev.platform post!
Assignee | ||
Comment 30•10 years ago
|
||
(In reply to Armen Zambrano G. (:armenzg - Toronto) from comment #29)
> We currently trigger test jobs in buildbot by passing testsUrl as a
> property; mozci follows this model.
>
> Once we are close to stop passing the URL and instead use the uploaded
> manifests, I will need to know what will be expected so I can adjust how
> mozci triggers jobs on buildbot.
>
> Thanks for the dev.platform post!
This will mean something like passing a testPackagesUrl that is a JSON mapping from harness names to file names in the upload directory that are the required packages. Getting mozharness to do the right thing is part of this bug (Ted's phase 2 from comment 21), once that's done we can make that change in mozCI and things should go ok after the actual split. I'll file a bug for mozCI so I can keep track.
Comment 31•10 years ago
|
||
Adding some TaskCluster people to CC...
Assignee | ||
Comment 32•10 years ago
|
||
Try for phase 1: https://treeherder.mozilla.org/#/jobs?repo=try&revision=cccda81fedd5
Assignee | ||
Comment 33•10 years ago
|
||
/r/8051 - Bug 917999 - Part 1 - Write out and upload a manifest of uploaded test archives and the harnesses that depend on them.
Pull down this commit:
hg pull -r ecfbe966840d5e7ffc7d72d04dea89c26b17e58d https://reviewboard-hg.mozilla.org/gecko/
Attachment #8600417 -
Flags: review?(ted)
Comment 34•10 years ago
|
||
https://reviewboard.mozilla.org/r/8051/#review6891
::: build/gen_test_packages_manifest.py:57
(Diff revision 1)
> + return harness_requirements
Can we write out this file as part of backend generation? That's where we produce all-tests.json.
Assignee | ||
Comment 35•10 years ago
|
||
https://reviewboard.mozilla.org/r/8051/#review7207
> Can we write out this file as part of backend generation? That's where we produce all-tests.json.
Possibly, can I get the package name stuff from the python side?
Reporter | ||
Comment 36•10 years ago
|
||
https://reviewboard.mozilla.org/r/8051/#review7423
For some reason I had envisioned writing a separate per-suite manifest, but I guess that doesn't really make anything better or easier. The manifest files might get a little bloaty if we go all-in and list files to fetch from the source repo, but it's probably not going to be that bad.
Reporter | ||
Comment 37•10 years ago
|
||
https://reviewboard.mozilla.org/r/8051/#review7421
> Possibly, can I get the package name stuff from the python side?
Unfortunately I don't think there's any straightforward way to do that right now. File a followup and we'll sort it out, it would be nice to do this in backend generation. We could probably eviscerate most of package-name.mk, move it into Python, and just generate the bits we need into a makefile for inclusion there:
https://dxr.mozilla.org/mozilla-central/source/toolkit/mozapps/installer/package-name.mk
Reporter | ||
Comment 38•10 years ago
|
||
Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed,
leave-open
Assignee | ||
Updated•10 years ago
|
Keywords: checkin-needed
Comment 39•10 years ago
|
||
Assignee | ||
Comment 40•10 years ago
|
||
Try with mozharness changes:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=b77715353148
Assignee | ||
Comment 41•10 years ago
|
||
/r/8855 - Bug 917999 - Part 2 - Make mozharness read an uploaded manifest if available to determine which test archives to download before running tests.;r=jlund
Pull down this commit:
hg pull -r 3e45e2b27885f9ec4bbef09bd0315f276dab5419 https://reviewboard-hg.mozilla.org/build-mozharness
Attachment #8606439 -
Flags: review?(jlund)
Comment 42•10 years ago
|
||
Reporter | ||
Comment 43•10 years ago
|
||
Comment on attachment 8600417 [details]
MozReview Request: bz://917999/chmanchester
Reviewboard didn't move my r+ here for some reason.
Attachment #8600417 -
Flags: review?(ted) → review+
Comment 44•10 years ago
|
||
https://reviewboard.mozilla.org/r/8855/#review7849
overall, this looks fantastic. a few in line comments/questions.
bear with me, we are essentially going for a no-op perf change as the test_packages.json manifest will just be pointing to the same test zip for every suite for now right?
::: mozharness/mozilla/testing/testbase.py:13
(Diff revision 1)
> -import getpass
> +import json
<3 for getting rid of rogue imports :)
::: mozharness/mozilla/testing/testbase.py:153
(Diff revision 1)
> - last_slash = self.installer_url.rfind('/')
> + self.fatal("Can't figure out build directory urls without an installer_url!")
I suppose we can derive the base url from the test_package_url too so this fatal msg may be misleading
::: mozharness/mozilla/testing/testbase.py:397
(Diff revision 1)
> + if "jsshell-" in file_name:
it's too bad this is still a special snowflake
::: mozharness/mozilla/testing/testbase.py:208
(Diff revision 1)
> + raise AssertionError("You must use --test-url or --test-packages-url with developer_config.py")
if we specify both, --test-packages-url will be ignored correct? should we bother checking for that?
::: scripts/android_emulator_unittest.py:670
(Diff revision 1)
> + suite_categories = ['mochitest' if s == 'mochitest-gl' else s for s in suite_categories]
rather than hardcoding this in the script, what do you think about having the manifest support this? As in, have a 'mochitest-gl' key that points to the same thing as 'mochitest'
::: scripts/android_panda.py:216
(Diff revision 1)
> + target_categories = [cat for cat in SUITE_CATEGORIES
I've noticed that you have interchangably used tuples and lists for suite_categories type. I suppose if we are just iterating over the items, any container will do but thought I'd sanity check if there was a particular reason for you doing so.
::: mozharness/mozilla/testing/testbase.py:363
(Diff revision 1)
> - def _download_unzip(self, url, parent_dir):
> + def _read_packages_manifest(self):
do you think there is any use in logging the manifest contents here?
Assignee | ||
Comment 45•9 years ago
|
||
https://reviewboard.mozilla.org/r/8855/#review8123
Exactly, this a no op until we actually split the test package (part 3 of this bug).
> if we specify both, --test-packages-url will be ignored correct? should we bother checking for that?
I guess we should print a warning in this case, I'll update.
> do you think there is any use in logging the manifest contents here?
I think it has potential value for debugging, I'll add it.
> it's too bad this is still a special snowflake
Yeah, I don't think going as far as having an install destination in the manifest is quite worth it.
> rather than hardcoding this in the script, what do you think about having the manifest support this? As in, have a 'mochitest-gl' key that points to the same thing as 'mochitest'
I don't have a lot of background for this, but the presence of this suite category just for emulator tests seems like a inconsistency we shouldn't spread around (on desktop web gl tests have "mochitest" as a suite_category and "mochitest-gl" as a suite).
Assignee | ||
Comment 46•9 years ago
|
||
https://reviewboard.mozilla.org/r/8855/#review8129
> I've noticed that you have interchangably used tuples and lists for suite_categories type. I suppose if we are just iterating over the items, any container will do but thought I'd sanity check if there was a particular reason for you doing so.
I guess I got in the habit of writing down a tuple when I know beforehand what the elements are, but it doesn't really matter in this case and consistency is probably better so I changed them all to be lists.
Assignee | ||
Comment 47•9 years ago
|
||
Comment on attachment 8606439 [details]
MozReview Request: bz://917999/chmanchester
/r/8855 - Bug 917999 - Part 2 - Make mozharness read an uploaded manifest if available to determine which test archives to download before running tests.;r=jlund
Pull down this commit:
hg pull -r 618469840a094715273c8755a70a364149f5b74f https://reviewboard-hg.mozilla.org/build-mozharness
Assignee | ||
Comment 48•9 years ago
|
||
Comment 49•9 years ago
|
||
https://reviewboard.mozilla.org/r/8855/#review8343
::: mozharness/mozilla/building/buildbase.py:1395
(Diff revisions 1 - 2)
> - # packageUrl must be last!
> + ('packageUrl', lambda m: m.endswith(packageName)),
who would have thought we would add a json file while you were on PTO ;)
::: scripts/android_emulator_unittest.py:573
(Diff revisions 1 - 2)
> + suite_category = self.test_suite_definitions[self.test_suite]['category']
does this mean we would only support doing one test suite per script run?
Originally I desktop_unittest.py was able to do more than one test suite and run them sequentially but it seems like sometimes we define self.test_suite and other times self.test_suites depending on the script: http://mxr.mozilla.org/build/search?string=self.test_suite&find=mozharness&findi=&filter=%5E%5B%5E%5C0%5D*%24&hitlimit=&tree=build
or am I groking this wrong?
Assignee | ||
Comment 50•9 years ago
|
||
https://reviewboard.mozilla.org/r/8855/#review8351
> does this mean we would only support doing one test suite per script run?
>
> Originally I desktop_unittest.py was able to do more than one test suite and run them sequentially but it seems like sometimes we define self.test_suite and other times self.test_suites depending on the script: http://mxr.mozilla.org/build/search?string=self.test_suite&find=mozharness&findi=&filter=%5E%5B%5E%5C0%5D*%24&hitlimit=&tree=build
>
> or am I groking this wrong?
No, that's correct. It looks like the multiple test suite invocation feature was dropped for the android emulator tests in a recent patch in https://bugzilla.mozilla.org/show_bug.cgi?id=1164866 I don't think we use the feature very much in automation, if at all.
Comment 51•9 years ago
|
||
Comment 52•9 years ago
|
||
Comment 53•9 years ago
|
||
Comment on attachment 8606439 [details]
MozReview Request: bz://917999/chmanchester
not sure how to make this an r+ via reviewboard, I thought 'ship it' button did that
Attachment #8606439 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 54•9 years ago
|
||
Assignee | ||
Comment 55•9 years ago
|
||
I'm trying to figure out the best way to accommodate comment 27, I'm thinking for now we can just write out two package manifests and only upload one based on whether we're running in taskcluster.
Assignee | ||
Comment 56•9 years ago
|
||
Short follow up for b2g desktop (I think I missed this because mulet reftests use the script, but not mulet mochitests!). Not using rb for this because it gives a diff from the last patch that's fairly confusing.
Attachment #8614778 -
Flags: review?(jlund)
Comment 57•9 years ago
|
||
Comment on attachment 8614778 [details] [diff] [review]
Follow up for b2g desktop script.
Review of attachment 8614778 [details] [diff] [review]:
-----------------------------------------------------------------
so many scripts/mixins. I'm surprised we only missed one!
Attachment #8614778 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 58•9 years ago
|
||
Assignee | ||
Comment 59•9 years ago
|
||
Sorry about the churn on this. I'm sort of lost in a mess of per-platform configuration differences.
Attachment #8615492 -
Flags: review?(jlund)
Assignee | ||
Comment 60•9 years ago
|
||
Comment on attachment 8615492 [details] [diff] [review]
Add aliases for test package requirements for plaforms/scripts referring to more suite_categories than are known on desktop
Sorry, didn't mean to request review on this yet.
Attachment #8615492 -
Flags: review?(jlund)
Assignee | ||
Comment 61•9 years ago
|
||
Comment on attachment 8615492 [details] [diff] [review]
Add aliases for test package requirements for plaforms/scripts referring to more suite_categories than are known on desktop
Ok, confirmed reasonably effective in https://treeherder.mozilla.org/#/jobs?repo=try&revision=e6d9c4061da7
Attachment #8615492 -
Flags: review?(jlund)
Comment 62•9 years ago
|
||
Comment on attachment 8615492 [details] [diff] [review]
Add aliases for test package requirements for plaforms/scripts referring to more suite_categories than are known on desktop
Review of attachment 8615492 [details] [diff] [review]:
-----------------------------------------------------------------
::: mozharness/mozilla/testing/testbase.py
@@ +382,5 @@
> def _download_test_packages(self, suite_categories, target_unzip_dirs):
> + # Some platforms define more suite categories/names than others.
> + # This is a difference in the convention of the configs more than
> + # to how these tests are run, so we pave over these differences here.
> + aliases = {
especially now that this is n>1 for these aliases, my gut tells me these should be in a config or the newly created in-tree manifest you did. but I don't want to block on a nit :)
Attachment #8615492 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 63•9 years ago
|
||
Assignee | ||
Comment 65•9 years ago
|
||
(In reply to Armen Zambrano G. (:armenzg - Toronto) from comment #64)
> NI myself in order to get back to chmanchester.
We sorted this out on GH.
Flags: needinfo?(armenzg)
Assignee | ||
Comment 66•9 years ago
|
||
Another set of straggler scripts.
Attachment #8617647 -
Flags: review?(jlund)
Assignee | ||
Comment 67•9 years ago
|
||
I'd like to start with cppunittests, reftest, xpcshell, and mochitest. Those 4 account for 70-80% of the zip. Here it is on try:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=ddbc32104dd1
Reporter | ||
Comment 68•9 years ago
|
||
cppunittests are the single biggest offender in the zip, so if you can get those out that'd be fantastic. This also unblocks fixing bug 992983, which would get a big set of tests out of `make check`, which would also be great.
Reporter | ||
Comment 69•9 years ago
|
||
From your try push:
https://hg.mozilla.org/try/rev/e9de8b55d5df#l2.21
2.21 +# For now, "cppunitests" vs. "cppunitest" is the only difference between a
2.22 +# subdir and a package name.
2.23 +DIR_FOR_PKG = $(subst cppunittest,cppunittests,$(1))
Just rename the directory to make it match, I don't think it should hurt anything (as long as you fix all the references to it).
Reporter | ||
Comment 70•9 years ago
|
||
From the test package in your try push, here's a summary of bytes by top-level directory for what's left:
mach: 5886
luciddream: 21314
config: 41975
tools: 127468
certs: 208790
steeplechase: 276936
modules: 317798
tps: 621237
mozbase: 1431768
jetpack: 4340294
marionette: 10321362
bin: 10470539
jit-test: 18671062
jsreftest: 19500557
web-platform: 36540813
Working your way up from the bottom of that list would seem to be a reasonable thing to do. :)
Also: I wondered why bin/ was so big, turns out we're putting a bunch of binaries in there without stripping them... I'll file a bug to fix that.
Reporter | ||
Comment 71•9 years ago
|
||
Filed bug 1173323 on the unstripped bin/ dir.
Assignee | ||
Comment 72•9 years ago
|
||
Attachment #8600417 -
Attachment is obsolete: true
Attachment #8606439 -
Attachment is obsolete: true
Attachment #8618043 -
Flags: review+
Attachment #8618044 -
Flags: review+
Assignee | ||
Comment 73•9 years ago
|
||
Assignee | ||
Comment 74•9 years ago
|
||
Assignee | ||
Comment 75•9 years ago
|
||
Assignee | ||
Comment 76•9 years ago
|
||
(In reply to Ted Mielczarek [:ted.mielczarek] from comment #70)
> From the test package in your try push, here's a summary of bytes by
> top-level directory for what's left:
> mach: 5886
> luciddream: 21314
> config: 41975
> tools: 127468
> certs: 208790
> steeplechase: 276936
> modules: 317798
> tps: 621237
> mozbase: 1431768
> jetpack: 4340294
> marionette: 10321362
> bin: 10470539
> jit-test: 18671062
> jsreftest: 19500557
> web-platform: 36540813
>
> Working your way up from the bottom of that list would seem to be a
> reasonable thing to do. :)
>
> Also: I wondered why bin/ was so big, turns out we're putting a bunch of
> binaries in there without stripping them... I'll file a bug to fix that.
web-platform should be no problem... some of the others might require non-trivial mozharness changes, I might leave them to a follow up.
Assignee | ||
Comment 77•9 years ago
|
||
Comment on attachment 8617647 [details] [diff] [review]
Set test_packages_url for gaia tests.
Review of attachment 8617647 [details] [diff] [review]:
-----------------------------------------------------------------
I can tell this isn't going to be the last mozharness patch, so let's hold off on review until I know what we're up against.
Attachment #8617647 -
Flags: review?(jlund)
Assignee | ||
Comment 78•9 years ago
|
||
Try splitting another zip out and implementing some of Ted's feedback: https://treeherder.mozilla.org/#/jobs?repo=try&revision=dfeaa184de1c
I'll request the rest of the review when that comes back green.
Assignee | ||
Comment 79•9 years ago
|
||
Comment on attachment 8618043 [details]
MozReview Request: Bug 917999 - Part 3 - Split tests into harness specific zips.
Bug 917999 - Part 3 - Split tests into harness specific zips.
Attachment #8618043 -
Attachment description: MozReview Request: Bug 917999 - Part 1 - Write out and upload a manifest of uploaded test archives and the harnesses that depend on them. → MozReview Request: Bug 917999 - Part 3 - Split tests into harness specific zips.
Attachment #8618043 -
Flags: review+ → review?(ted)
Assignee | ||
Comment 80•9 years ago
|
||
Bug 917999 - Part 3.1 - Fixes for taskcluster.
Attachment #8621105 -
Flags: review?(jlal)
Assignee | ||
Comment 81•9 years ago
|
||
Attachment #8621106 -
Flags: review?(jlund)
Assignee | ||
Updated•9 years ago
|
Attachment #8617647 -
Attachment is obsolete: true
Assignee | ||
Comment 82•9 years ago
|
||
Attachment #8621107 -
Flags: review?(jlund)
Updated•9 years ago
|
Attachment #8621105 -
Flags: review?(jlal) → review+
Comment 83•9 years ago
|
||
Comment on attachment 8621105 [details]
MozReview Request: Bug 917999 - Part 3.1 - Fixes for taskcluster.
https://reviewboard.mozilla.org/r/10877/#review9559
Ship It!
Comment 84•9 years ago
|
||
Comment on attachment 8621106 [details] [diff] [review]
Follow up to set test_packages_url for gaia tests and specify a suite category in wpt.
Review of attachment 8621106 [details] [diff] [review]:
-----------------------------------------------------------------
lgtm :)
Attachment #8621106 -
Flags: review?(jlund) → review+
Updated•9 years ago
|
Attachment #8621107 -
Flags: review?(jlund) → review+
Assignee | ||
Comment 85•9 years ago
|
||
(In reply to Chris Manchester [:chmanchester] from comment #82)
> Created attachment 8621107 [details] [diff] [review]
> Accommodate directory rename for cppunittests -> cppunittest
This needs to land and then get enabled with a mozharness.json bump when comment 79 does.
Assignee | ||
Comment 86•9 years ago
|
||
(In reply to Jordan Lund (:jlund) from comment #84)
> Comment on attachment 8621106 [details] [diff] [review]
> Follow up to set test_packages_url for gaia tests and specify a suite
> category in wpt.
>
> Review of attachment 8621106 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> lgtm :)
https://hg.mozilla.org/build/mozharness/rev/38b99a593e4b
Comment 87•9 years ago
|
||
status-firefox40:
--- → fixed
Reporter | ||
Updated•9 years ago
|
Attachment #8618043 -
Flags: review?(ted)
Reporter | ||
Comment 88•9 years ago
|
||
Comment on attachment 8618043 [details]
MozReview Request: Bug 917999 - Part 3 - Split tests into harness specific zips.
https://reviewboard.mozilla.org/r/8051/#review10137
::: build/gen_test_packages_manifest.py:20
(Diff revision 2)
> + 'web-platform',
Sorry, I didn't mean that you *had* to split web-platform out in this patch series, I was just looking at what the best things to do next would be!
::: testing/testsuite-targets.mk:420
(Diff revision 2)
> +TEST_PKGS = \
nit: use := for Makefile vars with static content
::: testing/testsuite-targets.mk:439
(Diff revision 2)
> - @rm -f '$(DIST)/$(PKG_PATH)$(TEST_PACKAGE)'
> + rm -f '$(DIST)/$(PKG_PATH)$(PKG_BASENAME).common.tests.zip'
You changed the value of $(TEST_PACKAGE) in package-name.mk, so I don't think you need this change (or the one below).
::: testing/testsuite-targets.mk:447
(Diff revision 2)
> - * -x \*/.mkdir.done \*.pyc
> + * -x \*/.mkdir.done \*.pyc $(foreach name,$(TEST_PKGS),$(name)\*) && \
This is a little gross, can you file a followup on making this less gross? Maybe we can just stage things that aren't going into the common test package into different dirs for now. Eventually I'd like to use the packager code to copy files directly into the archives and avoid the staging completely, but that's more work.
::: toolkit/mozapps/installer/package-name.mk:135
(Diff revision 2)
> +MOCHI_TEST_PACKAGE = $(PKG_BASENAME).mochitest.tests.zip
The underscores in these names are weird. Can you just take them out for the things where we commonly call them by one word, like _Mochitest_?
Reporter | ||
Comment 89•9 years ago
|
||
Comment on attachment 8618043 [details]
MozReview Request: Bug 917999 - Part 3 - Split tests into harness specific zips.
https://reviewboard.mozilla.org/r/8051/#review10139
Ship It!
Attachment #8618043 -
Flags: review+
Assignee | ||
Comment 90•9 years ago
|
||
https://reviewboard.mozilla.org/r/8051/#review10143
> Sorry, I didn't mean that you *had* to split web-platform out in this patch series, I was just looking at what the best things to do next would be!
No problem, was trivial in this case :)
> This is a little gross, can you file a followup on making this less gross? Maybe we can just stage things that aren't going into the common test package into different dirs for now. Eventually I'd like to use the packager code to copy files directly into the archives and avoid the staging completely, but that's more work.
I had an earlier version that staged each suite in a separate dir, but that required changes to every makefile, and some ugly stuff to deal with unified builds correctly for the same effect (https://hg.mozilla.org/try/rev/7bc008456cec for reference). At any rate, we can discuss in bug 1176036 .
Assignee | ||
Comment 91•9 years ago
|
||
Comment 92•9 years ago
|
||
Comment 93•9 years ago
|
||
mozharness production tag moved to: https://hg.mozilla.org/build/mozharness/rev/production
Comment 94•9 years ago
|
||
Backed out for Android x86 test bustage.
https://treeherder.mozilla.org/logviewer.html#?job_id=11182814&repo=mozilla-inbound
https://hg.mozilla.org/integration/mozilla-inbound/rev/7332cca1c329
Assignee | ||
Comment 95•9 years ago
|
||
Assignee | ||
Comment 97•9 years ago
|
||
Try with android-x86: https://treeherder.mozilla.org/#/jobs?repo=try&revision=f3ff0ec25a6f
Assignee | ||
Updated•9 years ago
|
Attachment #8627378 -
Flags: review?(gbrown)
Comment 98•9 years ago
|
||
Comment on attachment 8627378 [details] [diff] [review]
Follow up to specify a suite category for android x86
Review of attachment 8627378 [details] [diff] [review]:
-----------------------------------------------------------------
Other tests - mochitest, reftests - are run on Android x86 on the ash repo only. Those are kind-of broken, with no current plans to fix them, so I'm not very concerned about breaking them further. Of course, if it wouldn't be too hard, I would prefer a more generic solution, originating in the config. Is the issue that we download_and_extract for a set, while the configs are per suite?
Attachment #8627378 -
Flags: review?(gbrown) → review+
Assignee | ||
Updated•9 years ago
|
Attachment #8627378 -
Flags: review?(jlund)
Assignee | ||
Comment 99•9 years ago
|
||
(In reply to Geoff Brown [:gbrown] from comment #98)
> Comment on attachment 8627378 [details] [diff] [review]
> Follow up to specify a suite category for android x86
>
> Review of attachment 8627378 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> Other tests - mochitest, reftests - are run on Android x86 on the ash repo
> only. Those are kind-of broken, with no current plans to fix them, so I'm
> not very concerned about breaking them further. Of course, if it wouldn't be
> too hard, I would prefer a more generic solution, originating in the config.
> Is the issue that we download_and_extract for a set, while the configs are
> per suite?
Ok, I think I see a better way to do this!
Assignee | ||
Comment 100•9 years ago
|
||
Attachment #8627432 -
Flags: review?(gbrown)
Assignee | ||
Updated•9 years ago
|
Attachment #8627378 -
Attachment is obsolete: true
Comment 101•9 years ago
|
||
Comment on attachment 8627432 [details] [diff] [review]
Follow up to specify a suite category for android x86
Review of attachment 8627432 [details] [diff] [review]:
-----------------------------------------------------------------
That's great!
Attachment #8627432 -
Flags: review?(gbrown) → review+
Assignee | ||
Comment 102•9 years ago
|
||
Comment 103•9 years ago
|
||
Assignee | ||
Updated•9 years ago
|
Keywords: leave-open
https://hg.mozilla.org/mozilla-central/rev/7656864dc35b
https://hg.mozilla.org/mozilla-central/rev/a7a6d91116ab
https://hg.mozilla.org/mozilla-central/rev/4c47d54f05bf
Status: NEW → RESOLVED
Closed: 9 years ago
status-firefox42:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Comment 105•9 years ago
|
||
hey Chris,
in the effort to put mozharness into the gecko tree, it looks like using the latest production version of mozharness is busted because of our efforts in this bug. Will it just be a matter of uplifting the above m-c patches across trees?
context: https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta&revision=c06de6062d0e
Flags: needinfo?(cmanchester)
Comment 106•9 years ago
|
||
https://hg.mozilla.org/releases/mozilla-aurora/rev/4de8800850d9
https://hg.mozilla.org/releases/mozilla-aurora/rev/438ba46e2a2a
status-firefox41:
--- → fixed
Assignee | ||
Comment 107•9 years ago
|
||
(In reply to Jordan Lund (:jlund) from comment #105)
> hey Chris,
>
> in the effort to put mozharness into the gecko tree, it looks like using the
> latest production version of mozharness is busted because of our efforts in
> this bug. Will it just be a matter of uplifting the above m-c patches across
> trees?
>
> context:
> https://treeherder.mozilla.org/#/jobs?repo=mozilla-beta&revision=c06de6062d0e
Yep, that should do it! I also need to backport the fixes from bug 1179945, but that just needs to happen before the next merge.
Assignee | ||
Comment 108•9 years ago
|
||
My attempt at rebasing everything on try: https://treeherder.mozilla.org/#/jobs?repo=try&revision=e87ec1cf304b
Comment 109•9 years ago
|
||
status-firefox39:
--- → fixed
Assignee | ||
Comment 110•9 years ago
|
||
Assignee | ||
Comment 111•9 years ago
|
||
Assignee | ||
Comment 112•9 years ago
|
||
remote: https://hg.mozilla.org/releases/mozilla-esr38/rev/e38d077eabad
remote: https://hg.mozilla.org/releases/mozilla-esr38/rev/4037e606818b
remote: https://hg.mozilla.org/releases/mozilla-esr38/rev/1ea402686474
status-firefox-esr38:
--- → fixed
Comment 113•9 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #1)
> Does this finally give us the ability to move away from zip? IIRC the main
> reason we like it is because we can easily extract file subsets without
> significant penalty. But the compression ratio is crap. We should just give
> mozharness a generic uncompress() API that can recognize archives by file
> extension or by sniffing file headers and we can upload whatever archive
> format is current in style.
That's what I'm actually working on in bug 1237706. For the beginning it will support zip, gzip, bz2.
You need to log in
before you can comment on or make changes to this bug.
Description
•