Index: src/trusted/validator_arm/build.scons |
diff --git a/src/trusted/validator_arm/build.scons b/src/trusted/validator_arm/build.scons |
index dd3dc5c16b1a066cbaaee2b60892d8a58d606b34..c817078a09eb9a10376c94103d8f63f5637d8f12 100644 |
--- a/src/trusted/validator_arm/build.scons |
+++ b/src/trusted/validator_arm/build.scons |
@@ -20,13 +20,14 @@ if env.Bit('linux'): |
env.Command(target=gen_dec, |
source=['armv7-opt.table', |
+ 'armv7-thumb.table', |
'generate_decoder.py', |
'dgen_core.py', |
'dgen_input.py', |
'dgen_opt.py', |
'dgen_output.py'], |
- action=['${SOURCES[1].abspath} ${SOURCES[0].abspath} ' |
- '${TARGET.abspath}']) |
+ action=['${SOURCES[2].abspath} ${SOURCES[0].abspath} ' |
+ '${SOURCES[1].abspath} ${TARGET.abspath}']) |
env.ComponentLibrary('arm_validator_core', |
['address_set.cc', |
@@ -71,6 +72,22 @@ if env.Bit('linux'): |
'test_vector_stores': 1, |
} |
+ validator_tests_thumb = { |
+ 'local_allowed' : 0, |
+ 'local_disallowed' : 1, |
+ 'test_forbidden_instructions' : 1, |
+ 'masking_instructions' : 0, |
+ 'mem_test' : 1, |
+ 'branch_test' : 1, |
+ 'bundle_test' : 1, |
+ 'it_test' : 1, |
+ 'test_external_jumps' : 1, |
+ 'test_internal_jumps' : 1, |
+ 'test_sp_updates' : 1, |
+ 'test_stores' : 1, |
+ 'lit_pool_test' : 0 |
+ } |
+ |
for test, exit_status in validator_tests.iteritems(): |
node = env.CommandTest( |
test + '_actual.out', |
@@ -84,6 +101,19 @@ if env.Bit('linux'): |
env.AddNodeToTestSuite(node, ['small_tests', 'validator_tests'], |
"run_arm_" + test) |
+ for test, exit_status in validator_tests_thumb.iteritems(): |
+ node = env.CommandTest( |
+ test + '_thumb_actual.out', |
+ [ncval, env.File('testdata-thumb/' + test + '.nexe')], |
+ exit_status = str(exit_status), |
+ filter_regex = "'^ncval'", |
+ # NOTE: all stdout_golden are currently empty |
+ stdout_golden = env.File('testdata-thumb/' + test + '.out'), |
+ stderr_golden = env.File('testdata-thumb/' + test + '.err')) |
+ |
+ env.AddNodeToTestSuite(node, ['small_tests', 'validator_tests'], |
+ "run_arm_" + test) |
+ |
gtest_env = env.Clone() |
# gtest does not compile with our stringent settings. |
gtest_env.FilterOut( |