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

--HG--
extra : rebase_source : 3560efee22533f60be1e7394fa0841005991cca6
This commit is contained in:
Chris Manchester 2017-01-12 15:30:51 -08:00
parent 6cdb181b11
commit 752fd5e1ef
2 changed files with 18 additions and 0 deletions

View File

@ -164,6 +164,12 @@ ifdef JS_STANDALONE
NO_REMOVE=1
endif
# For an artifact build, _tests will already be partly populated, so run
# this install manifest with NO_REMOVE set in this case.
ifdef MOZ_ARTIFACT_BUILDS
install-_tests: NO_REMOVE=1
endif
.PHONY: $(addprefix install-,$(subst /,_,$(install_manifests)))
$(addprefix install-,$(install_manifests)): install-%: $(install_manifest_depends)
ifneq (,$(filter FasterMake+RecursiveMake,$(BUILD_BACKENDS)))

View File

@ -63,6 +63,7 @@ import zipfile
import pylru
import taskcluster
from mozbuild.action.test_archive import OBJDIR_TEST_FILES
from mozbuild.util import (
ensureParentDir,
FileAvoidWrite,
@ -196,6 +197,17 @@ class ArtifactJob(object):
mode = entry['external_attr'] >> 16
writer.add(destpath.encode('utf-8'), reader[filename], mode=mode)
added_entry = True
for files_entry in OBJDIR_TEST_FILES.values():
origin_pattern = files_entry['pattern']
leaf_filename = filename
if 'dest' in files_entry:
dest = files_entry['dest']
origin_pattern = mozpath.join(dest, origin_pattern)
leaf_filename = filename[len(dest) + 1:]
if mozpath.match(filename, origin_pattern):
destpath = mozpath.join('..', files_entry['base'], leaf_filename)
mode = entry['external_attr'] >> 16
writer.add(destpath.encode('utf-8'), reader[filename], mode=mode)
if not added_entry:
raise ValueError('Archive format changed! No pattern from "{patterns}"'