summaryrefslogtreecommitdiffstats
path: root/python/mozbuild/mozbuild/test/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/mozbuild/mozbuild/test/common.py')
-rw-r--r--python/mozbuild/mozbuild/test/common.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/python/mozbuild/mozbuild/test/common.py b/python/mozbuild/mozbuild/test/common.py
new file mode 100644
index 0000000000..47f04a8dd3
--- /dev/null
+++ b/python/mozbuild/mozbuild/test/common.py
@@ -0,0 +1,69 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+import errno
+import os
+import shutil
+
+import mozpack.path as mozpath
+from buildconfig import topsrcdir
+from mach.logging import LoggingManager
+
+from mozbuild.util import ReadOnlyDict
+
+# By including this module, tests get structured logging.
+log_manager = LoggingManager()
+log_manager.add_terminal_logging()
+
+
+def prepare_tmp_topsrcdir(path):
+ for p in (
+ "build/autoconf/config.guess",
+ "build/autoconf/config.sub",
+ "build/moz.configure/checks.configure",
+ "build/moz.configure/init.configure",
+ "build/moz.configure/util.configure",
+ ):
+ file_path = os.path.join(path, p)
+ try:
+ os.makedirs(os.path.dirname(file_path))
+ except OSError as e:
+ if e.errno != errno.EEXIST:
+ raise
+ shutil.copy(os.path.join(topsrcdir, p), file_path)
+
+
+# mozconfig is not a reusable type (it's actually a module) so, we
+# have to mock it.
+class MockConfig(object):
+ def __init__(
+ self,
+ topsrcdir="/path/to/topsrcdir",
+ extra_substs={},
+ error_is_fatal=True,
+ ):
+ self.topsrcdir = mozpath.abspath(topsrcdir)
+ self.topobjdir = mozpath.abspath("/path/to/topobjdir")
+
+ self.substs = ReadOnlyDict(
+ {
+ "MOZ_FOO": "foo",
+ "MOZ_BAR": "bar",
+ "MOZ_TRUE": "1",
+ "MOZ_FALSE": "",
+ "DLL_PREFIX": "lib",
+ "DLL_SUFFIX": ".so",
+ },
+ **extra_substs
+ )
+
+ self.defines = self.substs
+
+ self.lib_prefix = "lib"
+ self.lib_suffix = ".a"
+ self.import_prefix = "lib"
+ self.import_suffix = ".so"
+ self.dll_prefix = "lib"
+ self.dll_suffix = ".so"
+ self.error_is_fatal = error_is_fatal