コード例 #1
0
ファイル: host_test.py プロジェクト: kernel-my/fuchsia
 def test_find_build_dir(self):
     host = Host()
     fuchsia_dir = os.getenv('FUCHSIA_DIR')
     os.unsetenv('FUCHSIA_DIR')
     del os.environ['FUCHSIA_DIR']
     with self.assertRaises(Host.ConfigError):
         host.find_build_dir()
     if not fuchsia_dir:
         return
     os.environ['FUCHSIA_DIR'] = fuchsia_dir
     print(host.find_build_dir())
     self.assertTrue(os.path.isdir(host.find_build_dir()))
コード例 #2
0
ファイル: host_test.py プロジェクト: kernel-my/fuchsia
 def test_set_fuzzers_json(self):
     host = Host()
     with self.assertRaises(Host.ConfigError):
         host.set_fuzzers_json('no_such_json')
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     json_file = Host.join(build_dir, 'fuzzers.json')
     # No guarantee of contents; just ensure it parses without crashing.
     if os.path.exists(json_file):
         host.set_fuzzers_json(json_file)
     # Construct and parse both fuchisa and zircon style fuzzer metadata.
     data = [
         {
             'fuzz_host': False,
             'fuzzers': ['foo_fuzzer'],
             'fuzzers_package': 'foo_fuzzers'
         },
         {
             'fuzz_host': False,
             'fuzzers': ['zx_fuzzer.asan', 'zx_fuzzer.ubsan'],
             'fuzzers_package': 'zircon_fuzzers'
         },
     ]
     with tempfile.NamedTemporaryFile() as f:
         f.write(json.dumps(data))
         f.seek(0)
         host.set_fuzzers_json(f.name)
         self.assertIn(('foo_fuzzers', 'foo_fuzzer'), host.fuzzers)
         self.assertIn(('zircon_fuzzers', 'zx_fuzzer.asan'), host.fuzzers)
         self.assertIn(('zircon_fuzzers', 'zx_fuzzer.ubsan'), host.fuzzers)
コード例 #3
0
ファイル: host_test.py プロジェクト: kernel-my/fuchsia
 def test_notify_user(self):
     host = Host()
     try:
         host.set_build_dir(host.find_build_dir())
     except Host.ConfigError:
         return
     host.notify_user('This is a test', 'This is only a test.')
コード例 #4
0
ファイル: host_test.py プロジェクト: xyuan/fuchsia
 def test_set_build_dir(self):
     host = Host()
     with self.assertRaises(Host.ConfigError):
         host.set_fuzzers_json('no_such_build_dir')
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     ssh_config = Host.join(build_dir, 'ssh-keys', 'ssh_config')
     zxtools = Host.join(build_dir + '.zircon', 'tools')
     platform = 'mac-x64' if os.uname()[0] == 'Darwin' else 'linux-x64'
     executable = Host.join(host.get_host_out_dir(), 'symbolize')
     symbolizer = Host.join(
         'prebuilt',
         'third_party',
         'clang',
         platform,
         'bin',
         'llvm-symbolizer',
     )
     host.set_build_dir(build_dir)
     self.assertNotEqual(len(host._ids), 0)
     for id in host._ids:
         self.assertTrue(os.path.exists(id))
     self.assertIsNotNone(host._zxtools)
     self.assertTrue(os.path.exists(host._symbolizer_exec))
     self.assertTrue(os.path.exists(host._llvm_symbolizer))
コード例 #5
0
ファイル: host_test.py プロジェクト: kernel-my/fuchsia
 def test_set_zxtools(self):
     host = Host()
     with self.assertRaises(Host.ConfigError):
         host.set_zxtools('no_such_zxtools')
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     zxtools = Host.join(build_dir + '.zircon', 'tools')
     if not os.path.isdir(zxtools):
         return
     host.set_zxtools(zxtools)
     self.assertEqual(host._zxtools, zxtools)
コード例 #6
0
ファイル: host_test.py プロジェクト: kernel-my/fuchsia
 def test_add_build_ids(self):
     host = Host()
     host.add_build_ids('no_such_ids')
     self.assertNotIn('no_such_ids', host._ids)
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     build_ids = Host.join(build_dir, '.build-id')
     if not os.path.exists(build_ids):
         return
     host.add_build_ids(build_ids)
     self.assertIn(build_ids, host._ids)
コード例 #7
0
ファイル: host_test.py プロジェクト: kernel-my/fuchsia
 def test_zircon_tool(self):
     # If a build tree is available, try using a zircon tool for "real".
     host = Host()
     try:
         host.set_build_dir(host.find_build_dir())
     except Host.ConfigError:
         return
     with self.assertRaises(Host.ConfigError):
         host.zircon_tool(['no_such_tool'])
     path = os.path.abspath(__file__)
     line = host.zircon_tool(['merkleroot', path])
     self.assertRegexpMatches(line, r'[0-9a-f]* - ' + path)
コード例 #8
0
 def test_set_build_ids(self):
     host = Host()
     with self.assertRaises(Host.ConfigError):
         host.set_build_ids('no_such_ids')
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     build_ids = Host.join(build_dir, 'ids.txt')
     if not os.path.exists(build_ids):
         return
     host.set_build_ids(build_ids)
     self.assertEqual(host._ids, build_ids)
コード例 #9
0
 def test_set_fuzzers_json(self):
     host = Host()
     with self.assertRaises(Host.ConfigError):
         host.set_fuzzers_json('no_such_json')
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     json_file = Host.join(build_dir, 'fuzzers.json')
     if not os.path.exists(json_file):
         return
     # No guarantee of contents; just ensure it parses without crashing
     host.set_fuzzers_json(json_file)
コード例 #10
0
 def test_symbolize(self):
     mock = MockHost()
     mock.symbolize('mock_in', 'mock_out')
     self.assertIn(
         'mock/symbolize-ids-rel -ids mock/ids.txt -llvm-symbolizer mock/llvm_symbolizer',
         mock.history)
     # If a build tree is available, try doing symbolize for "real".
     host = Host()
     try:
         host.set_build_dir(host.find_build_dir())
     except Host.ConfigError:
         return
     tmp_in = tempfile.TemporaryFile()
     tmp_out = tempfile.TemporaryFile()
     host.symbolize(tmp_in, tmp_out)
コード例 #11
0
 def test_zircon_tool(self):
     mock = MockHost()
     mock.zircon_tool(['mock_tool', 'mock_arg'])
     self.assertIn('mock/out/default.zircon/tools/mock_tool mock_arg',
                   mock.history)
     # If a build tree is available, try using a zircon tool for "real".
     host = Host()
     try:
         host.set_build_dir(host.find_build_dir())
     except Host.ConfigError:
         return
     with self.assertRaises(Host.ConfigError):
         host.zircon_tool(['no_such_tool'])
     path = os.path.abspath(__file__)
     line = host.zircon_tool(['merkleroot', path])
     self.assertRegexpMatches(line, r'[0-9a-f]* - ' + path)
コード例 #12
0
 def test_set_build_dir(self):
     host = Host()
     with self.assertRaises(Host.ConfigError):
         host.set_fuzzers_json('no_such_build_dir')
     if not os.getenv('FUCHSIA_DIR'):
         return
     build_dir = host.find_build_dir()
     ssh_config = Host.join(build_dir, 'ssh-keys', 'ssh_config')
     build_ids = Host.join(build_dir, 'ids.txt')
     zxtools = Host.join(build_dir + '.zircon', 'tools')
     platform = 'mac-x64' if os.uname()[0] == 'Darwin' else 'linux-x64'
     executable = Host.join('zircon', 'prebuilt', 'downloads', 'symbolize')
     symbolizer = Host.join('buildtools', platform, 'clang', 'bin',
                            'llvm-symbolizer')
     if not os.path.exists(ssh_config) or not os.path.exists(
             build_ids) or not os.path.isdir(zxtools):
         return
     host.set_build_dir(build_dir)
     self.assertEqual(host._ids, build_ids)
     self.assertEqual(host._zxtools, zxtools)
     self.assertEqual(host._platform, platform)
     self.assertEqual(host._symbolizer_exec, executable)
     self.assertEqual(host._llvm_symbolizer, symbolizer)