1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 from mozbuild
.backend
.test_manifest
import TestManifestBackend
8 from mozbuild
.base
import BuildEnvironmentNotFoundException
, MozbuildObject
9 from mozbuild
.frontend
.emitter
import TreeMetadataEmitter
10 from mozbuild
.frontend
.reader
import BuildReader
, EmptyConfig
13 def gen_test_backend():
14 build_obj
= MozbuildObject
.from_environment()
16 config
= build_obj
.config_environment
17 except BuildEnvironmentNotFoundException
:
18 print("No build detected, test metadata may be incomplete.")
20 # If 'JS_STANDALONE' is set, tests that don't require an objdir won't
21 # be picked up due to bug 1345209.
22 substs
= EmptyConfig
.default_substs
23 if 'JS_STANDALONE' in substs
:
24 del substs
['JS_STANDALONE']
26 config
= EmptyConfig(build_obj
.topsrcdir
, substs
)
27 config
.topobjdir
= build_obj
.topobjdir
29 reader
= BuildReader(config
)
30 emitter
= TreeMetadataEmitter(config
)
31 backend
= TestManifestBackend(config
)
33 context
= reader
.read_topsrcdir()
34 data
= emitter
.emit(context
, emitfn
=emitter
._process
_test
_manifests
)
38 if __name__
== '__main__':
39 sys
.exit(gen_test_backend())