1 # -*- python -*- 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 Import('env') 7 8 # test source is copied from tests/nameservice/ -- we don't actually 9 # care to run the test here, just to cause it to fall over. we do, 10 # however, run it without any fault injection to ensure that we don't 11 # have any false injection, to ensure the test hasn't bitrotted. 12 13 # postmessage version of srpc_nameservice_test 14 15 pm_ns_obj = env.ComponentObject('fault_pm_nameservice_test.o', 16 'fault_pm_nameservice_test.cc') 17 pm_ns_nexe_name = env.ProgramNameForNmf('fault_pm_nameservice_test') 18 pm_ns_nexe = env.ComponentProgram(pm_ns_nexe_name, 19 pm_ns_obj, 20 EXTRA_LIBS=['nacl_ppapi_util', 21 'ppapi_cpp', 22 'pthread', 23 'srpc', 24 'platform', 25 'gio', 26 'imc', 27 'imc_syscalls', 28 ]) 29 env.Publish(pm_ns_nexe_name, 'run', 30 ['no_fault_pm_nameservice_test.html', 31 'fault_pm_nameservice_test.html', 32 ]) 33 34 # chrome_browser_tests 35 36 # NB: there is a "plain" version of post-message based name service 37 # test, and a "fault-injected" version -- essentially this test is 38 # simple and in the same repository as the core NaCl where the fault 39 # injection code (see native_client/src/trusted/fault_injection/) 40 # lives, which is a primary requirement for being able to commit 41 # changes to the tests and to the code-under-test in atomic units. 42 43 for extra_os_env, test_args, out_name, run_name, html_file in [ 44 [[], 45 [], 46 'no_fault_pm_nameservice_browser_test.out', 47 'run_no_fault_pm_nameservice_chrome_browser_test', 48 'no_fault_pm_nameservice_test.html', 49 ], 50 [['NACL_FAULT_INJECTION=load_module=GF20'], 51 # LOAD_NO_MEMORY 52 [('expected_error','"NaCl module load failed: Insufficient memory to load file"')], 53 'fault_pm_nameservice_browser_test.out', 54 'run_fault_pm_nameservice_chrome_browser_test', 55 'fault_pm_nameservice_test.html', 56 ], 57 [['NACL_FAULT_INJECTION=pq=GF2'], 58 # LOAD_UNSUPPORTED_OS_PLATFORM 59 [('expected_error', '"NaCl module load failed: Operating system platform is not supported"')], 60 'fault_pq_os_pm_nameservice_browser_test.out', 61 'run_fault_pq_os_pm_nameservice_chrome_browser_test', 62 'fault_pm_nameservice_test.html', 63 ], 64 [['NACL_FAULT_INJECTION=pq=GF3'], 65 # LOAD_DEP_UNSUPPORTED 66 [('expected_error', '"NaCl module load failed: Data Execution Prevention is required but is not supported"')], 67 'fault_pq_dep_pm_nameservice_browser_test.out', 68 'run_fault_pq_dep_pm_nameservice_chrome_browser_test', 69 'fault_pm_nameservice_test.html', 70 ], 71 ]: 72 73 node = env.PPAPIBrowserTester( 74 out_name, 75 url=html_file, 76 nmf_names=['fault_pm_nameservice_test'], 77 files=env.ExtractPublishedFiles(pm_ns_nexe_name), 78 test_args=test_args, 79 osenv=['NACLVERBOSITY=0:pp_weak_ref=0:weak_ref=0'] + extra_os_env 80 ) 81 82 env.AddNodeToTestSuite(node, 83 ['chrome_browser_tests'], 84 run_name, 85 is_broken=(env.PPAPIBrowserTesterIsBroken() or 86 env.Bit('nacl_glibc'))) 87