Index: build/gyp_chromium_test.py |
diff --git a/build/gyp_chromium_test.py b/build/gyp_chromium_test.py |
new file mode 100755 |
index 0000000000000000000000000000000000000000..0c0e479d1c3132366a7cb49d413ed4b02490d79f |
--- /dev/null |
+++ b/build/gyp_chromium_test.py |
@@ -0,0 +1,66 @@ |
+#!/usr/bin/env python |
+# Copyright 2015 The Chromium Authors. All rights reserved. |
+# Use of this source code is governed by a BSD-style license that can be |
+# found in the LICENSE file. |
+ |
+import os |
+import sys |
+import unittest |
+ |
+SCRIPT_DIR = os.path.abspath(os.path.dirname(__file__)) |
+SRC_DIR = os.path.dirname(SCRIPT_DIR) |
+ |
+sys.path.append(os.path.join(SRC_DIR, 'third_party', 'pymock')) |
+ |
+import mock |
+ |
+# TODO(sbc): Make gyp_chromium more testable by putting the code in |
+# a .py file. |
+gyp_chromium = __import__('gyp_chromium') |
+ |
+ |
+class TestGetOutputDirectory(unittest.TestCase): |
+ @mock.patch('os.environ', {}) |
+ @mock.patch('sys.argv', [__file__]) |
+ def testDefaultValue(self): |
+ self.assertEqual(gyp_chromium.GetOutputDirectory(), 'out') |
+ |
+ @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'}) |
+ @mock.patch('sys.argv', [__file__]) |
+ def testEnvironment(self): |
+ self.assertEqual(gyp_chromium.GetOutputDirectory(), 'envfoo') |
+ |
+ @mock.patch('os.environ', {'GYP_GENERATOR_FLAGS': 'output_dir=envfoo'}) |
+ @mock.patch('sys.argv', [__file__, '-Goutput_dir=cmdfoo']) |
+ def testGFlagOverridesEnv(self): |
+ self.assertEqual(gyp_chromium.GetOutputDirectory(), 'cmdfoo') |
+ |
+ @mock.patch('os.environ', {}) |
+ @mock.patch('sys.argv', [__file__, '-G', 'output_dir=foo']) |
+ def testGFlagWithSpace(self): |
+ self.assertEqual(gyp_chromium.GetOutputDirectory(), 'foo') |
+ |
+ |
+class TestGetGypVars(unittest.TestCase): |
+ @mock.patch('os.environ', {}) |
+ def testDefault(self): |
+ self.assertEqual(gyp_chromium.GetGypVars([]), {}) |
+ |
+ @mock.patch('os.environ', {}) |
+ @mock.patch('sys.argv', [__file__, '-D', 'foo=bar']) |
+ def testDFlags(self): |
+ self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar'}) |
+ |
+ @mock.patch('os.environ', {}) |
+ @mock.patch('sys.argv', [__file__, '-D', 'foo']) |
+ def testDFlagsNoValue(self): |
+ self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': '1'}) |
+ |
+ @mock.patch('os.environ', {}) |
+ @mock.patch('sys.argv', [__file__, '-D', 'foo=bar', '-Dbaz']) |
+ def testDFlagMulti(self): |
+ self.assertEqual(gyp_chromium.GetGypVars([]), {'foo': 'bar', 'baz': '1'}) |
+ |
+ |
+if __name__ == '__main__': |
+ unittest.main() |