summaryrefslogtreecommitdiffstats
path: root/third_party/python/gyp/test/determinism/gyptest-solibs.py
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/python/gyp/test/determinism/gyptest-solibs.py')
-rw-r--r--third_party/python/gyp/test/determinism/gyptest-solibs.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/third_party/python/gyp/test/determinism/gyptest-solibs.py b/third_party/python/gyp/test/determinism/gyptest-solibs.py
new file mode 100644
index 0000000000..a9c312573b
--- /dev/null
+++ b/third_party/python/gyp/test/determinism/gyptest-solibs.py
@@ -0,0 +1,37 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2015 Google Inc. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""
+Verifies builds are the same even with different PYTHONHASHSEEDs.
+Tests all_targets, implicit_deps and solibs.
+"""
+
+from __future__ import print_function
+
+import os
+import sys
+import TestGyp
+
+test = TestGyp.TestGyp()
+if test.format == 'ninja':
+ os.environ["PYTHONHASHSEED"] = "1"
+ test.run_gyp('solibs.gyp')
+ base1 = open(test.built_file_path('c.ninja', subdir='obj')).read()
+ base2 = open(test.built_file_path('build.ninja')).read()
+
+ for i in range(1,5):
+ os.environ["PYTHONHASHSEED"] = str(i)
+ test.run_gyp('solibs.gyp')
+ contents1 = open(test.built_file_path('c.ninja', subdir='obj')).read()
+ contents2 = open(test.built_file_path('build.ninja')).read()
+ if base1 != contents1:
+ test.fail_test()
+ if base2 != contents2:
+ print(base2)
+ test.fail_test()
+
+ del os.environ["PYTHONHASHSEED"]
+ test.pass_test()