Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1231)

Unified Diff: v8_snapshot_test.py

Issue 2173343002: Attempt #4 to land "Fix double-building of v8 in GN builds." (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: patch for review w/ tests included for illustration Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « snapshot_toolchain.gni ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: v8_snapshot_test.py
diff --git a/v8_snapshot_test.py b/v8_snapshot_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..0375533b30f9de4c92ea4ec0fd48cf8070f2a1da
--- /dev/null
+++ b/v8_snapshot_test.py
@@ -0,0 +1,214 @@
+#!/usr/bin/python
+
+import os
+import shutil
+import subprocess
+import sys
+import unittest
+
+ROOT_BUILD_DIR = 'out/test'
+
+FILES = {
+ 'BUILD.gn' : '''
+import("snapshot_toolchain.gni")
+
+if (current_toolchain == default_toolchain || (current_os == "android")) {
+ group("v8") {
+ print("v8", current_toolchain)
+ deps = [ ":v8_snapshot($v8_snapshot_toolchain)" ]
+ if (target_os == "android" && target_cpu == "arm64" &&
+ current_cpu == "arm64") {
+ deps += [ ":v8(//build/toolchain/android:arm)" ]
+ }
+ }
+}
+if (current_toolchain == v8_snapshot_toolchain) {
+ group("v8_snapshot") {
+ print("v8_snapshot", current_toolchain, v8_target_cpu)
+ }
+}
+''',
+
+ 'build/toolchain/win/setup_toolchain.py': '''
Michael Achenbach 2016/07/25 08:24:05 Is there no way to use the original files as they
+print 'vc_bin_dir = ""'
+print 'include_flags = ""'
+''',
+
+ 'build/vs_toolchain.py': '''
+print 'vs_path = ""'
+print 'sdk_path = ""'
+print 'vs_version = "2015"'
+print 'wdk_dir = ""'
+print 'runtime_dirs = ""'
+'''
+}
+
+
+class SnapshotToolchainTest(unittest.TestCase):
+ maxDiff = 1024
+
+ @classmethod
+ def setUpClass(cls):
+ for path, contents in FILES.items():
+ os.rename(path, path + '.bak')
+ with open(path, "w") as fp:
+ fp.write(contents)
+
+ @classmethod
+ def tearDownClass(cls):
+ for path in FILES:
+ os.rename(path + '.bak', path)
+
+ def setUp(self):
+ shutil.rmtree(ROOT_BUILD_DIR, ignore_errors=True)
+ os.makedirs(ROOT_BUILD_DIR)
+
+ def tearDown(self):
+ shutil.rmtree(ROOT_BUILD_DIR)
+
+ def run_one_test(self, args, expected_out):
+ with open('%s/args.gn' % ROOT_BUILD_DIR, 'w') as fp:
+ fp.write(args + "\n")
+
+ if sys.platform == "win32":
+ gn = "buildtools/win/gn.exe"
+ elif sys.platform == "darwin":
+ gn = "buildtools/mac/gn"
+ else:
+ gn = "buildtools/linux64/gn"
+
+ p = subprocess.Popen([gn, 'gen', ROOT_BUILD_DIR],
+ stdout=subprocess.PIPE)
+ got, _ = p.communicate()
+ exp_lines = expected_out.strip().splitlines()
+ got_lines = got.splitlines()[:-1]
+
+ self.assertEqual(p.returncode, 0)
+ self.assertEqual(set(got_lines), set(exp_lines))
Michael Achenbach 2016/07/25 08:24:05 Just a thought: The approach is maybe a bit sensit
+
+ def test_android_arm(self):
+ self.run_one_test('''
+host_os = "linux"
+target_os = "android"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/android:arm
+v8_snapshot //build/toolchain/linux:clang_x86_v8_arm arm
+''')
+
+ def test_android_arm64_fat_binary(self):
+ self.run_one_test('''
+host_os = "linux"
+target_os = "android"
+target_cpu = "arm64"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/android:arm64
+v8 //build/toolchain/android:arm
+v8_snapshot //build/toolchain/linux:clang_x64_v8_arm64 arm64
+v8_snapshot //build/toolchain/linux:clang_x86_v8_arm arm
+''')
+
+ def test_android_mips64el(self):
+ self.run_one_test('''
+host_os = "linux"
+target_os = "android"
+target_cpu = "mips64el"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/android:mips64el
+v8_snapshot //build/toolchain/linux:clang_x64_v8_mips64el mips64el
+''')
+
+ def test_android_x64(self):
+ self.run_one_test('''
+host_os = "linux"
+target_os = "android"
+target_cpu = "x64"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/android:x64
+v8_snapshot //build/toolchain/linux:clang_x64 x64
+''')
+
+ def test_android_x86(self):
+ self.run_one_test('''
+host_os = "linux"
+target_os = "android"
+target_cpu = "x86"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/android:x86
+v8_snapshot //build/toolchain/linux:clang_x86 x86
+''')
+
+ def test_linux_x64(self):
+ self.run_one_test('''
+host_os = "linux"
+use_sysroot = false
+
+''', '''
+v8 //build/toolchain/linux:clang_x64
+v8_snapshot //build/toolchain/linux:clang_x64 x64
+''')
+
+ def test_linux_x86(self):
+ self.run_one_test('''
+host_os = "linux"
+target_cpu = "x86"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/linux:clang_x86
+v8_snapshot //build/toolchain/linux:clang_x86 x86
+''')
+
+ def test_linux_gcc_arm64(self):
+ self.run_one_test('''
+host_os = "linux"
+v8_target_cpu = "arm64"
+is_clang = false
+use_sysroot = false
+''', '''
+v8 //build/toolchain/linux:x64
+v8_snapshot //build/toolchain/linux:x64 arm64
+''')
+
+ def test_linux_x86_v8_arm(self):
+ self.run_one_test('''
+host_os = "linux"
+target_cpu = "x86"
+v8_target_cpu = "arm"
+use_sysroot = false
+''', '''
+v8 //build/toolchain/linux:clang_x86
+v8_snapshot //build/toolchain/linux:clang_x86 arm
+''')
+
+ def test_mac(self):
+ self.run_one_test('''
+host_os = "mac"
+''', '''
+v8 //build/toolchain/mac:clang_x64
+v8_snapshot //build/toolchain/mac:clang_x64 x64
+''')
+
+ def test_win_x64(self):
+ self.run_one_test('''
+host_os = "win"
+''', '''
+v8 //build/toolchain/win:x64
+v8_snapshot //build/toolchain/win:x64 x64
+''')
+
+ def test_win_x86(self):
+ self.run_one_test('''
+host_os = "win"
+target_cpu = "x86"
+''', '''
+v8 //build/toolchain/win:x86
+v8_snapshot //build/toolchain/win:x86 x86
+''')
+
+
+if __name__ == '__main__':
+ unittest.main()
« no previous file with comments | « snapshot_toolchain.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698