Remove reference to //base in mb_unittest.py
Also remove tests in //tools_webrtc/mb/mb_unittest.py that are testing exclusively code in //tools/mb/mb.py. Bug: webrtc:13662 Change-Id: Ifdfbe26c11f7c315e307856b1d3ab06483d57641 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/260041 Reviewed-by: Björn Terelius <terelius@webrtc.org> Commit-Queue: Jeremy Leconte <jleconte@google.com> Cr-Commit-Position: refs/heads/main@{#36651}
This commit is contained in:

committed by
WebRTC LUCI CQ

parent
cf01838790
commit
7c94291c58
@ -11,8 +11,6 @@
|
||||
"""Tests for mb.py."""
|
||||
|
||||
import ast
|
||||
import json
|
||||
from io import StringIO # for Python3
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
@ -275,92 +273,17 @@ class UnitTest(unittest.TestCase):
|
||||
self.assertEqual(mbw.err, err)
|
||||
return mbw
|
||||
|
||||
def test_analyze(self):
|
||||
files = {
|
||||
'/tmp/in.json':
|
||||
'''{\
|
||||
"files": ["foo/foo_unittest.cc"],
|
||||
"test_targets": ["foo_unittests"],
|
||||
"additional_compile_targets": ["all"]
|
||||
}''',
|
||||
'/tmp/out.json.gn':
|
||||
'''{\
|
||||
"status": "Found dependency",
|
||||
"compile_targets": ["//foo:foo_unittests"],
|
||||
"test_targets": ["//foo:foo_unittests"]
|
||||
}'''
|
||||
}
|
||||
|
||||
mbw = CreateFakeMBW(files)
|
||||
mbw.Call = lambda cmd, env=None, buffer_output=True: (0, '', '')
|
||||
|
||||
self.check([
|
||||
'analyze', '-c', 'debug_goma', '//out/Default', '/tmp/in.json',
|
||||
'/tmp/out.json'
|
||||
],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
out = json.loads(mbw.files['/tmp/out.json'])
|
||||
self.assertEqual(
|
||||
out, {
|
||||
'status': 'Found dependency',
|
||||
'compile_targets': ['foo:foo_unittests'],
|
||||
'test_targets': ['foo_unittests']
|
||||
})
|
||||
|
||||
def test_gen(self):
|
||||
mbw = CreateFakeMBW()
|
||||
self.check(['gen', '-c', 'debug_goma', '//out/Default', '-g', '/goma'],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
self.assertMultiLineEqual(mbw.files['/fake_src/out/Default/args.gn'],
|
||||
('goma_dir = "/goma"\n'
|
||||
'is_debug = true\n'
|
||||
'use_goma = true\n'))
|
||||
|
||||
# Make sure we log both what is written to args.gn and the command line.
|
||||
self.assertIn('Writing """', mbw.out)
|
||||
self.assertIn('/fake_src/buildtools/linux64/gn gen //out/Default --check',
|
||||
mbw.out)
|
||||
|
||||
mbw = CreateFakeMBW(win32=True)
|
||||
self.check(['gen', '-c', 'debug_goma', '-g', 'c:\\goma', '//out/Debug'],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
self.assertMultiLineEqual(mbw.files['c:\\fake_src\\out\\Debug\\args.gn'],
|
||||
('goma_dir = "c:\\\\goma"\n'
|
||||
'is_debug = true\n'
|
||||
'use_goma = true\n'))
|
||||
self.assertIn(
|
||||
'c:\\fake_src\\buildtools\\win\\gn.exe gen //out/Debug '
|
||||
'--check\n', mbw.out)
|
||||
|
||||
mbw = CreateFakeMBW()
|
||||
self.check(
|
||||
['gen', '-m', 'fake_group', '-b', 'fake_args_bot', '//out/Debug'],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
self.assertEqual(
|
||||
mbw.files['/fake_src/out/Debug/args.gn'],
|
||||
'import("//build/args/bots/fake_group/fake_args_bot.gn")\n\n')
|
||||
|
||||
def test_gen_fails(self):
|
||||
mbw = CreateFakeMBW()
|
||||
mbw.Call = lambda cmd, env=None, buffer_output=True: (1, '', '')
|
||||
self.check(['gen', '-c', 'debug_goma', '//out/Default'], mbw=mbw, ret=1)
|
||||
|
||||
def test_gen_swarming(self):
|
||||
files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'raw',"
|
||||
" 'args': [],"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = CreateFakeMBW(files)
|
||||
self.check([
|
||||
@ -369,21 +292,20 @@ class UnitTest(unittest.TestCase):
|
||||
],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
self.assertIn('/fake_src/out/Default/base_unittests.isolate', mbw.files)
|
||||
self.assertIn('/fake_src/out/Default/base_unittests.isolated.gen.json',
|
||||
self.assertIn('/fake_src/out/Default/foo_unittests.isolate', mbw.files)
|
||||
self.assertIn('/fake_src/out/Default/foo_unittests.isolated.gen.json',
|
||||
mbw.files)
|
||||
|
||||
def test_gen_swarming_android(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'console_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'android_bot', '//out/Default', '--swarming-targets-file',
|
||||
@ -393,18 +315,19 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
|
||||
self.assertEqual(files, ['../../.vpython3', '../../testing/test_env.py',
|
||||
'base_unittests'])
|
||||
self.assertEqual(
|
||||
files,
|
||||
['../../.vpython3', '../../testing/test_env.py', 'foo_unittests'])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
'../../build/android/test_wrapper/logdog_wrapper.py',
|
||||
'--target',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
'--logdog-bin-cmd',
|
||||
'../../bin/logdog_butler',
|
||||
'--logcat-output-file',
|
||||
@ -415,14 +338,13 @@ class UnitTest(unittest.TestCase):
|
||||
def test_gen_swarming_android_junit_test(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'junit_test',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'android_bot', '//out/Default', '--swarming-targets-file',
|
||||
@ -432,18 +354,19 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
|
||||
self.assertEqual(files, ['../../.vpython3', '../../testing/test_env.py',
|
||||
'base_unittests'])
|
||||
self.assertEqual(
|
||||
files,
|
||||
['../../.vpython3', '../../testing/test_env.py', 'foo_unittests'])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
'../../build/android/test_wrapper/logdog_wrapper.py',
|
||||
'--target',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
'--logdog-bin-cmd',
|
||||
'../../bin/logdog_butler',
|
||||
'--logcat-output-file',
|
||||
@ -454,15 +377,14 @@ class UnitTest(unittest.TestCase):
|
||||
def test_gen_timeout(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'non_parallel_console_test_launcher',"
|
||||
" 'timeout': 500,"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'debug_goma', '//out/Default', '--swarming-targets-file',
|
||||
@ -472,7 +394,7 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
@ -483,7 +405,7 @@ class UnitTest(unittest.TestCase):
|
||||
'../../third_party/gtest-parallel/gtest-parallel',
|
||||
'../../third_party/gtest-parallel/gtest_parallel.py',
|
||||
'../../tools_webrtc/gtest-parallel-wrapper.py',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
@ -494,7 +416,7 @@ class UnitTest(unittest.TestCase):
|
||||
'--timeout=500',
|
||||
'--workers=1',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'./foo_unittests',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
'--msan=0',
|
||||
@ -504,16 +426,16 @@ class UnitTest(unittest.TestCase):
|
||||
def test_gen_script(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests_script\n',
|
||||
'foo_unittests_script\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests_script': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests_script': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'script',"
|
||||
" 'script': '//base/base_unittests_script.py',"
|
||||
" 'script': '//foo/foo_unittests_script.py',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests_script.runtime_deps':
|
||||
("base_unittests\n"
|
||||
"base_unittests_script.py\n"),
|
||||
'/fake_src/out/Default/foo_unittests_script.runtime_deps':
|
||||
("foo_unittests\n"
|
||||
"foo_unittests_script.py\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'debug_goma', '//out/Default', '--swarming-targets-file',
|
||||
@ -524,31 +446,32 @@ class UnitTest(unittest.TestCase):
|
||||
ret=0)
|
||||
|
||||
isolate_file = (
|
||||
mbw.files['/fake_src/out/Default/base_unittests_script.isolate'])
|
||||
mbw.files['/fake_src/out/Default/foo_unittests_script.isolate'])
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
|
||||
self.assertEqual(files, [
|
||||
'../../.vpython3', '../../testing/test_env.py',
|
||||
'base_unittests', 'base_unittests_script.py',
|
||||
'../../.vpython3',
|
||||
'../../testing/test_env.py',
|
||||
'foo_unittests',
|
||||
'foo_unittests_script.py',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
'../../base/base_unittests_script.py',
|
||||
'../../foo/foo_unittests_script.py',
|
||||
])
|
||||
|
||||
def test_gen_raw(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'raw',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'debug_goma', '//out/Default', '--swarming-targets-file',
|
||||
@ -558,7 +481,7 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
@ -567,25 +490,24 @@ class UnitTest(unittest.TestCase):
|
||||
'../../.vpython3',
|
||||
'../../testing/test_env.py',
|
||||
'../../tools_webrtc/flags_compatibility.py',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
'../../tools_webrtc/flags_compatibility.py',
|
||||
'./base_unittests',
|
||||
'./foo_unittests',
|
||||
])
|
||||
|
||||
def test_gen_non_parallel_console_test_launcher(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'non_parallel_console_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'debug_goma', '//out/Default', '--swarming-targets-file',
|
||||
@ -595,7 +517,7 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
@ -606,7 +528,7 @@ class UnitTest(unittest.TestCase):
|
||||
'../../third_party/gtest-parallel/gtest-parallel',
|
||||
'../../third_party/gtest-parallel/gtest_parallel.py',
|
||||
'../../tools_webrtc/gtest-parallel-wrapper.py',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
@ -617,7 +539,7 @@ class UnitTest(unittest.TestCase):
|
||||
'--timeout=900',
|
||||
'--workers=1',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'./foo_unittests',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
'--msan=0',
|
||||
@ -627,14 +549,14 @@ class UnitTest(unittest.TestCase):
|
||||
def test_isolate_windowed_test_launcher_linux(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'windowed_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps':
|
||||
("foo_unittests\n"
|
||||
"some_resource_file\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
@ -645,7 +567,7 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
@ -657,7 +579,7 @@ class UnitTest(unittest.TestCase):
|
||||
'../../third_party/gtest-parallel/gtest-parallel',
|
||||
'../../third_party/gtest-parallel/gtest_parallel.py',
|
||||
'../../tools_webrtc/gtest-parallel-wrapper.py',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
'some_resource_file',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
@ -668,7 +590,7 @@ class UnitTest(unittest.TestCase):
|
||||
'--gtest_color=no',
|
||||
'--timeout=900',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'./foo_unittests',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
'--msan=0',
|
||||
@ -730,14 +652,13 @@ class UnitTest(unittest.TestCase):
|
||||
def test_gen_console_test_launcher(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'console_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
'gen', '-c', 'debug_goma', '//out/Default', '--swarming-targets-file',
|
||||
@ -747,7 +668,7 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
@ -758,7 +679,7 @@ class UnitTest(unittest.TestCase):
|
||||
'../../third_party/gtest-parallel/gtest-parallel',
|
||||
'../../third_party/gtest-parallel/gtest_parallel.py',
|
||||
'../../tools_webrtc/gtest-parallel-wrapper.py',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
'vpython3',
|
||||
@ -768,7 +689,7 @@ class UnitTest(unittest.TestCase):
|
||||
'--gtest_color=no',
|
||||
'--timeout=900',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'./foo_unittests',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
'--msan=0',
|
||||
@ -778,15 +699,15 @@ class UnitTest(unittest.TestCase):
|
||||
def test_isolate_test_launcher_with_webcam(self):
|
||||
test_files = {
|
||||
'/tmp/swarming_targets':
|
||||
'base_unittests\n',
|
||||
'foo_unittests\n',
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'console_test_launcher',"
|
||||
" 'use_webcam': True,"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps':
|
||||
("foo_unittests\n"
|
||||
"some_resource_file\n"),
|
||||
}
|
||||
mbw = self.check([
|
||||
@ -797,7 +718,7 @@ class UnitTest(unittest.TestCase):
|
||||
files=test_files,
|
||||
ret=0)
|
||||
|
||||
isolate_file = mbw.files['/fake_src/out/Default/base_unittests.isolate']
|
||||
isolate_file = mbw.files['/fake_src/out/Default/foo_unittests.isolate']
|
||||
isolate_file_contents = ast.literal_eval(isolate_file)
|
||||
files = isolate_file_contents['variables']['files']
|
||||
command = isolate_file_contents['variables']['command']
|
||||
@ -809,7 +730,7 @@ class UnitTest(unittest.TestCase):
|
||||
'../../third_party/gtest-parallel/gtest_parallel.py',
|
||||
'../../tools_webrtc/ensure_webcam_is_running.py',
|
||||
'../../tools_webrtc/gtest-parallel-wrapper.py',
|
||||
'base_unittests',
|
||||
'foo_unittests',
|
||||
'some_resource_file',
|
||||
])
|
||||
self.assertEqual(command, [
|
||||
@ -822,7 +743,7 @@ class UnitTest(unittest.TestCase):
|
||||
'--gtest_color=no',
|
||||
'--timeout=900',
|
||||
'--retry_failed=3',
|
||||
'./base_unittests',
|
||||
'./foo_unittests',
|
||||
'--asan=0',
|
||||
'--lsan=0',
|
||||
'--msan=0',
|
||||
@ -834,160 +755,26 @@ class UnitTest(unittest.TestCase):
|
||||
'/fake_src/out/Default/toolchain.ninja':
|
||||
"",
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
("{'foo_unittests': {"
|
||||
" 'label': '//foo:foo_unittests',"
|
||||
" 'type': 'non_parallel_console_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/foo_unittests.runtime_deps': ("foo_unittests\n"),
|
||||
}
|
||||
self.check(
|
||||
['isolate', '-c', 'debug_goma', '//out/Default', 'base_unittests'],
|
||||
['isolate', '-c', 'debug_goma', '//out/Default', 'foo_unittests'],
|
||||
files=files,
|
||||
ret=0)
|
||||
|
||||
# test running isolate on an existing build_dir
|
||||
files['/fake_src/out/Default/args.gn'] = 'is_debug = true\n'
|
||||
self.check(['isolate', '//out/Default', 'base_unittests'],
|
||||
self.check(['isolate', '//out/Default', 'foo_unittests'],
|
||||
files=files,
|
||||
ret=0)
|
||||
files['/fake_src/out/Default/mb_type'] = 'gn\n'
|
||||
self.check(['isolate', '//out/Default', 'base_unittests'],
|
||||
self.check(['isolate', '//out/Default', 'foo_unittests'],
|
||||
files=files,
|
||||
ret=0)
|
||||
|
||||
def test_run(self):
|
||||
files = {
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
" 'type': 'windowed_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
}
|
||||
self.check(['run', '-c', 'debug_goma', '//out/Default', 'base_unittests'],
|
||||
files=files,
|
||||
ret=0)
|
||||
|
||||
def test_run_swarmed(self):
|
||||
# pylint: disable=attribute-defined-outside-init
|
||||
files = {
|
||||
'/fake_src/testing/buildbot/gn_isolate_map.pyl':
|
||||
("{'base_unittests': {"
|
||||
" 'label': '//base:base_unittests',"
|
||||
" 'type': 'console_test_launcher',"
|
||||
"}}\n"),
|
||||
'/fake_src/out/Default/base_unittests.runtime_deps':
|
||||
("base_unittests\n"),
|
||||
'/fake_src/out/Default/base_unittests.archive.json':
|
||||
("{\"base_unittests\":\"fake_hash\"}"),
|
||||
'/fake_src/third_party/depot_tools/cipd_manifest.txt':
|
||||
("# vpython3\n"
|
||||
"/some/vpython3/pkg git_revision:deadbeef\n"),
|
||||
}
|
||||
task_json = json.dumps({'tasks': [{'task_id': '00000'}]})
|
||||
collect_json = json.dumps({'00000': {'results': {}}})
|
||||
|
||||
mbw = CreateFakeMBW(files=files)
|
||||
mbw.files[mbw.PathJoin(mbw.TempDir(), 'task.json')] = task_json
|
||||
mbw.files[mbw.PathJoin(mbw.TempDir(), 'collect_output.json')] = collect_json
|
||||
original_impl = mbw.ToSrcRelPath
|
||||
|
||||
def to_src_rel_path_stub(path):
|
||||
if path.endswith('base_unittests.archive.json'):
|
||||
return 'base_unittests.archive.json'
|
||||
return original_impl(path)
|
||||
|
||||
mbw.ToSrcRelPath = to_src_rel_path_stub
|
||||
|
||||
self.check(
|
||||
['run', '-s', '-c', 'debug_goma', '//out/Default', 'base_unittests'],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
mbw = CreateFakeMBW(files=files)
|
||||
mbw.files[mbw.PathJoin(mbw.TempDir(), 'task.json')] = task_json
|
||||
mbw.files[mbw.PathJoin(mbw.TempDir(), 'collect_output.json')] = collect_json
|
||||
mbw.ToSrcRelPath = to_src_rel_path_stub
|
||||
self.check([
|
||||
'run', '-s', '-c', 'debug_goma', '-d', 'os', 'Win7', '//out/Default',
|
||||
'base_unittests'
|
||||
],
|
||||
mbw=mbw,
|
||||
ret=0)
|
||||
|
||||
def test_lookup(self):
|
||||
self.check(['lookup', '-c', 'debug_goma'], ret=0)
|
||||
|
||||
def test_quiet_lookup(self):
|
||||
self.check(['lookup', '-c', 'debug_goma', '--quiet'],
|
||||
ret=0,
|
||||
out=('is_debug = true\n'
|
||||
'use_goma = true\n'))
|
||||
|
||||
def test_lookup_goma_dir_expansion(self):
|
||||
self.check(['lookup', '-c', 'rel_bot', '-g', '/foo'],
|
||||
ret=0,
|
||||
out=('\n'
|
||||
'Writing """\\\n'
|
||||
'dcheck_always_on = false\n'
|
||||
'enable_doom_melon = true\n'
|
||||
'goma_dir = "/foo"\n'
|
||||
'is_debug = false\n'
|
||||
'use_goma = true\n'
|
||||
'""" to _path_/args.gn.\n\n'
|
||||
'/fake_src/buildtools/linux64/gn gen _path_\n'))
|
||||
|
||||
def test_help(self):
|
||||
orig_stdout = sys.stdout
|
||||
try:
|
||||
sys.stdout = StringIO()
|
||||
self.assertRaises(SystemExit, self.check, ['-h'])
|
||||
self.assertRaises(SystemExit, self.check, ['help'])
|
||||
self.assertRaises(SystemExit, self.check, ['help', 'gen'])
|
||||
finally:
|
||||
sys.stdout = orig_stdout
|
||||
|
||||
def test_multiple_phases(self):
|
||||
# Check that not passing a --phase to a multi-phase builder fails.
|
||||
mbw = self.check(['lookup', '-m', 'fake_group', '-b', 'fake_multi_phase'],
|
||||
ret=1)
|
||||
self.assertIn('Must specify a build --phase', mbw.out)
|
||||
|
||||
# Check that passing a --phase to a single-phase builder fails.
|
||||
mbw = self.check([
|
||||
'lookup', '-m', 'fake_group', '-b', 'fake_builder', '--phase', 'phase_1'
|
||||
],
|
||||
ret=1)
|
||||
self.assertIn('Must not specify a build --phase', mbw.out)
|
||||
|
||||
# Check that passing a wrong phase key to a multi-phase builder fails.
|
||||
mbw = self.check([
|
||||
'lookup', '-m', 'fake_group', '-b', 'fake_multi_phase', '--phase',
|
||||
'wrong_phase'
|
||||
],
|
||||
ret=1)
|
||||
self.assertIn('Phase wrong_phase doesn\'t exist', mbw.out)
|
||||
|
||||
# Check that passing a correct phase key to a multi-phase builder passes.
|
||||
mbw = self.check([
|
||||
'lookup', '-m', 'fake_group', '-b', 'fake_multi_phase', '--phase',
|
||||
'phase_1'
|
||||
],
|
||||
ret=0)
|
||||
self.assertIn('phase = 1', mbw.out)
|
||||
|
||||
mbw = self.check([
|
||||
'lookup', '-m', 'fake_group', '-b', 'fake_multi_phase', '--phase',
|
||||
'phase_2'
|
||||
],
|
||||
ret=0)
|
||||
self.assertIn('phase = 2', mbw.out)
|
||||
|
||||
def test_validate(self):
|
||||
mbw = CreateFakeMBW()
|
||||
self.check(['validate'], mbw=mbw, ret=0)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Reference in New Issue
Block a user