(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]}) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]}) (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub 0]]})]] [LIT_CHARS /..]}) (If (DBracket {B2 BINARY_STRING_NOT_EQUAL {[ComSub (Com {[LIT_CHARS basename]} {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]} {[DQ [LIT_CHARS native_client]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: cannot find native_client/ directory"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (= scope= flags=2 words=[] bindings=[('NACL_ROOT', {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]) (= scope= flags=2 words=[] bindings=[('DRYRUN', {[VarSub DRYRUN test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS false]}]})]) (Com {[LIT_CHARS source]} {[LIT_CHARS pnacl/scripts/common-tools.sh]}) (Com {[LIT_CHARS SetScriptPath]} {[DQ [VarSub NACL_ROOT][LIT_CHARS /pnacl/test.sh]]}) (Com {[LIT_CHARS SetLogDirectory]} {[DQ [VarSub NACL_ROOT][LIT_CHARS /toolchain/test-log]]}) (= scope= flags=2 words=[] bindings=[('PNACL_CONCURRENCY', {[VarSub PNACL_CONCURRENCY test_op=VS_TEST_COLON_HYPHEN {[LIT_CHARS 8]}]})]) (= scope= flags=2 words=[] bindings=[('TC_BUILD_LLVM', {[DQ [ComSub (Com {[LIT_CHARS pwd]})][LIT_CHARS /pnacl/build/llvm_][VarSub HOST_ARCH]]})]) (If (AndOr OP_OR_IF (Com {[VarSub PNACL_DEBUG]}) (Com {[VarSub PNACL_BUILDBOT]}) ) (= scope= flags=2 words=[] bindings=[('SCONS_ARGS', {[Array {[LIT_VAR_LIKE "MODE="] [LIT_CHARS nacl] [LIT_COMMA ","] [LIT_CHARS opt-host] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "bitcode="] [LIT_CHARS 1] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "skip_trusted_tests="] [LIT_CHARS 1] =} {OP_NEWLINE "\n"} {[LIT_CHARS --verbose]} {OP_NEWLINE "\n"} {[LIT_CHARS -j] [VarSub PNACL_CONCURRENCY]}]})]) (ElseTrue) (= scope= flags=2 words=[] bindings=[('SCONS_ARGS', {[Array {[LIT_VAR_LIKE "MODE="] [LIT_CHARS nacl] [LIT_COMMA ","] [LIT_CHARS opt-host] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "bitcode="] [LIT_CHARS 1] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "skip_trusted_tests="] [LIT_CHARS 1] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "naclsdk_validate="] [LIT_CHARS 0] =} {OP_NEWLINE "\n"} {[LIT_VAR_LIKE "sysinfo="] [LIT_CHARS 0] =} {OP_NEWLINE "\n"} {[LIT_CHARS -j] [VarSub PNACL_CONCURRENCY]}]})]) ) (FunctionDef show-tests [] (List (Com {[LIT_CHARS StepBanner]} {[DQ [LIT_CHARS "SHOWING TESTS"]]}) (Pipeline (Com {[LIT_CHARS cat]} {[ComSub (Com {[LIT_CHARS find]} {[LIT_CHARS tests]} {[LIT_CHARS -name]} {[LIT_CHARS nacl.scons]})]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -o]} {[SQ ]}) (Com {[LIT_CHARS sort]}) (Com {[LIT_CHARS uniq]}) ) ) ) (FunctionDef Run [] (List (Com {[LIT_CHARS echo]} {[DQ [VarSub @]]}) (If (Pipeline! (Com {[VarSub DRYRUN]}) ) (Com {[DQ [VarSub @]]}) ) ) ) (FunctionDef RunScons [] (List (= scope= flags=0 words=[] bindings=[('arch', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS Run]} {[LIT_CHARS ./scons]} {[DQ [VarSub SCONS_ARGS bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} {[LIT_VAR_LIKE "platform="] [VarSub arch] =} {[DQ [VarSub @]]}) ) ) (FunctionDef has-target-name [] (List (While (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_CHARS -gt]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (List (If (AndOr OP_OR_IF (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub 1]]} {[LIT_OTHER "^"] [LIT_CHARS -.] [LIT_OTHER "*"]}}) (DBracket {B2 BINARY_STRING_TILDE_EQUAL {[DQ [VarSub 1]]} {[LIT_OTHER "="]}}) ) (List (Com {[LIT_CHARS shift]} {[LIT_CHARS 1]}) (Com {[LIT_CHARS continue]}) ) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]}) ) ) (FunctionDef scons-clean [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('mode', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('frontend', {[LIT_CHARS clang]})]) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub mode]]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS native]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS Run]} {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS scons-out/nacl-] [VarSub arch] [LIT_CHARS -pnacl-] [VarSub frontend]}) (Com {[LIT_CHARS Run]} {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS scons-out/nacl-] [VarSub arch] [LIT_CHARS -pnacl-pexe-] [VarSub frontend]}) ) (ElseTrue) (List (Com {[LIT_CHARS Run]} {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS scons-out/nacl-] [VarSub arch] [LIT_CHARS -pnacl-] [VarSub mode] [LIT_CHARS -] [VarSub frontend]}) (Com {[LIT_CHARS Run]} {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[LIT_CHARS scons-out/nacl-] [VarSub arch] [LIT_CHARS -pnacl-] [VarSub mode] [LIT_CHARS -pexe-] [VarSub frontend]}) ) ) ) ) (FunctionDef build-sbtc-prerequisites [] (List (= scope= flags=0 words=[] bindings=[('arch', {[VarSub 1]})]) (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[LIT_CHARS sel_ldr]} {[LIT_CHARS sel_universal]} {[LIT_CHARS irt_core]}) ) ) (FunctionDef scons-tests [] (List (= scope= flags=0 words=[] bindings=[('arch', {[DQ [VarSub 1]]})]) (= scope= flags=0 words=[] bindings=[('mode', {[DQ [VarSub 2]]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 2]}) (Com {[LIT_CHARS scons-clean]} {[VarSub arch]} {[VarSub mode]}) (= scope= flags=0 words=[] bindings=[('modeflags', {[DQ ]})]) (If (Com {[LIT_OTHER "["]} {[VarSub mode]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS sbtc]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS build-sbtc-prerequisites]} {[DQ [VarSub arch]]}) (= scope= flags=0 words=[] bindings=[('modeflags', {[DQ [LIT_CHARS "use_sandboxed_translator=1"]]})]) ) ) (If (Com {[LIT_CHARS has-target-name]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[VarSub modeflags]} {[DQ [VarSub @]]}) (ElseTrue) (List (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[VarSub modeflags]} {[DQ [VarSub @]]} {[LIT_CHARS smoke_tests]}) (If (Com {[LIT_OTHER "["]} {[VarSub mode]} {[LIT_OTHER "="] [LIT_OTHER "="]} {[DQ [LIT_CHARS sbtc]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]}) ) (If (Com {[LIT_OTHER "["]} {[VarSub arch]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS arm]]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[VarSub modeflags]} {[LIT_VAR_LIKE "bitcode="] [LIT_CHARS 0] =} {[LIT_VAR_LIKE "nacl_clang="] [LIT_CHARS 1] =} {[DQ [VarSub @]]} {[LIT_CHARS smoke_tests]}) ) (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[VarSub modeflags]} {[LIT_VAR_LIKE "pnacl_generate_pexe="] [LIT_CHARS 0] =} {[DQ [VarSub @]]} {[LIT_CHARS nonpexe_tests]}) (If (Com {[LIT_OTHER "["]} {[VarSub arch]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS x86-64]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[VarSub modeflags]} {[LIT_VAR_LIKE "nonsfi_nacl="] [LIT_CHARS 1] =} {[DQ [VarSub @]]} {[LIT_CHARS nonsfi_tests]}) (Com {[LIT_CHARS RunScons]} {[VarSub arch]} {[VarSub modeflags]} {[LIT_VAR_LIKE "nonsfi_nacl="] [LIT_CHARS 1] =} {[LIT_VAR_LIKE "pnacl_generate_pexe="] [LIT_CHARS 0] =} {[DQ [VarSub @]]} {[LIT_CHARS nonsfi_tests]}) ) ) ) ) ) ) (FunctionDef test-driver [] (Com {[VarSub NACL_ROOT] [LIT_CHARS /pnacl/driver/tests/driver_tests.py]} {[LIT_CHARS --platform] [LIT_OTHER "="] [DQ [VarSub 1]]}) ) (FunctionDef test-arm [] (AndOr OP_AND_IF (Com {[LIT_CHARS test-driver]} {[LIT_CHARS arm]}) (Com {[LIT_CHARS scons-tests]} {[LIT_CHARS arm]} {[LIT_CHARS native]} {[DQ [VarSub @]]}) ) ) (FunctionDef test-x86-32 [] (AndOr OP_AND_IF (Com {[LIT_CHARS test-driver]} {[LIT_CHARS x86-32]}) (Com {[LIT_CHARS scons-tests]} {[LIT_CHARS x86-32]} {[LIT_CHARS native]} {[DQ [VarSub @]]}) ) ) (FunctionDef test-x86-64 [] (AndOr OP_AND_IF (Com {[LIT_CHARS test-driver]} {[LIT_CHARS x86-64]}) (Com {[LIT_CHARS scons-tests]} {[LIT_CHARS x86-64]} {[LIT_CHARS native]} {[DQ [VarSub @]]}) ) ) (FunctionDef test-arm-sbtc [] (Com {[LIT_CHARS scons-tests]} {[LIT_CHARS arm]} {[LIT_CHARS sbtc]} {[DQ [VarSub @]]}) ) (FunctionDef test-x86-32-sbtc [] (Com {[LIT_CHARS scons-tests]} {[LIT_CHARS x86-32]} {[LIT_CHARS sbtc]} {[DQ [VarSub @]]}) ) (FunctionDef test-x86-64-sbtc [] (Com {[LIT_CHARS scons-tests]} {[LIT_CHARS x86-64]} {[LIT_CHARS sbtc]} {[DQ [VarSub @]]}) ) (FunctionDef test-spec [] (List (If (DBracket {B2 BINARY_INT_LT {[VarSub #]} {[LIT_CHARS 2]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "not enough arguments for test-spec"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('official', {[ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[VarSub 1]})]})]) (= scope= flags=0 words=[] bindings=[('setup', {[VarSub 2]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 2]}) (Com {[LIT_CHARS spushd]} {[LIT_CHARS tests/spec2k]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS BuildPrerequisitesSetupBased]} {[VarSub setup]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS CleanBenchmarks]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS PopulateFromSpecHarness]} {[VarSub official]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS BuildAndRunBenchmarks]} {[VarSub setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef CollectTimingInfo [] (List (= scope= flags=0 words=[] bindings=[('wd', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('result_file', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('setup', {[VarSub 3]})]) (Subshell (List (Com {[LIT_CHARS cd]} {[VarSub wd]}) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub result_file]})]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "##################################################"]]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (Com {[LIT_CHARS date]} {[LIT_OTHER "+"] [DQ [LIT_CHARS "# Completed at %F %H:%M:%S %A "][VarSub result_file]]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# "]]} {[VarSub wd]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "#"]]} {[ComSub (Com {[LIT_CHARS uname]} {[LIT_CHARS -a]})]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# SETUP: "][VarSub setup]]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "##################################################"]]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# COMPILE "]]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (For ff [{[ComSub (Com {[LIT_CHARS find]} {[LIT_CHARS .]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.compile_time"]]})]}]) (Com {[LIT_CHARS cat]} {[VarSub ff]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "# RUN "]]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) (For ff [{[ComSub (Com {[LIT_CHARS find]} {[LIT_CHARS .]} {[LIT_CHARS -name]} {[DQ [LIT_CHARS "*.run_time"]]})]}]) (Com {[LIT_CHARS cat]} {[VarSub ff]} < (FilenameRedirectNode filename={[VarSub result_file]} >"> 1), > ) ) (Com {[LIT_CHARS cat]} {[VarSub result_file]}) ) ) ) ) (FunctionDef timed-test-spec [] (List (If (Com {[VarSub BUILD_PLATFORM_MAC]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Timed-test-spec is not currently supported on MacOS"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Namely, /usr/bin/time -f is not supported."]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS -1]}) ) ) (If (Com {[LIT_OTHER "["]} {[DQ [VarSub #]]} {[LIT_CHARS -lt]} {[DQ [LIT_CHARS 3]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "timed-test-spec {result-file} {spec2krefdir} {setupfunc}"]]} {[DQ [LIT_CHARS "[ref|train] [benchmark]*"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (= scope= flags=0 words=[] bindings=[('result_file', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('official', {[ComSub (Com {[LIT_CHARS GetAbsolutePath]} {[VarSub 2]})]})]) (= scope= flags=0 words=[] bindings=[('setup', {[VarSub 3]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 3]}) (Com {[LIT_CHARS spushd]} {[LIT_CHARS tests/spec2k]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS BuildPrerequisitesSetupBased]} {[VarSub setup]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS CleanBenchmarks]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS PopulateFromSpecHarness]} {[VarSub official]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS ./run_all.sh]} {[LIT_CHARS TimedBuildAndRunBenchmarks]} {[VarSub setup]} {[DQ [VarSub @]]}) (Com {[LIT_CHARS CollectTimingInfo]} {[ComSub (Com {[LIT_CHARS pwd]})]} {[VarSub result_file]} {[VarSub setup]}) (Com {[LIT_CHARS spopd]}) ) ) (FunctionDef help [] (Com {[LIT_CHARS Usage]}) ) (FunctionDef help-full [] (Com {[LIT_CHARS Usage2]}) ) (AndOr OP_AND_IF (Com {[LIT_OTHER "["]} {[VarSub #]} {[LIT_OTHER "="]} {[LIT_CHARS 0]} {[LIT_OTHER "]"]}) (Com {[LIT_CHARS set]} {[LIT_CHARS --]} {[LIT_CHARS help]}) ) (If (Com {[LIT_OTHER "["]} {[DQ [ComSub (Com {[LIT_CHARS type]} {[LIT_CHARS -t]} {[VarSub 1]})]]} {[LIT_OTHER "!"] [LIT_OTHER "="]} {[DQ [LIT_CHARS function]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ERROR: unknown function '"][VarSub 1][LIT_CHARS "'."]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "For help, try:"]]}) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " "][VarSub 0][LIT_CHARS " help"]]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (Com {[DQ [VarSub @]]}) )