(List (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub TOPDIR]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('TOPDIR', {[DQ [ComSub (Com {[LIT_CHARS pwd]})]]})]) ) (Com {[LIT_CHARS trap]} {[SQ /dev/null; exit 1">]} {[LIT_CHARS INT]} ) (FunctionDef cd_test_dir [] (List (= scope= flags=0 words=[] bindings=[('cmd', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('test_dir', {[VarSub TEST_ROOT] [LIT_CHARS /test_] [VarSub cmd]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub test_dir]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[VarSub test_dir]} ) (Com {[LIT_CHARS cd]} {[VarSub test_dir]} ) ) ) (FunctionDef setup_test_env [] (List (= scope= flags=0 words=[] bindings=[('HOST_BIN_TAR', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS tar]})]})]) (= scope= flags=0 words=[] bindings=[('HOST_BIN_BZCAT', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS bzcat]})]})]) (= scope= flags=0 words=[] bindings=[('HOST_BIN_XZCAT', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS xzcat]})]})]) (= scope= flags=0 words=[] bindings=[('HOST_BIN_ZCAT', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS zcat]})]})]) (= scope= flags=0 words=[] bindings=[('HOST_BIN_DATE', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS date]})]})]) (= scope= flags=0 words=[] bindings=[('HOST_BIN_HOSTNAME', {[ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS hostname]})]})]) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub TEST_HOST]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('PATH', {[DQ [VarSub TOYBOX_TREE_DIR][LIT_CHARS ":"][VarSub PATH]]})]) ) (= scope= flags=1 words=[] bindings=[('LC_COLLATE', {[LIT_CHARS C]})]) (Com {[LIT_CHARS .]} {[DQ [VarSub TOPDIR][LIT_CHARS /scripts/runtest.sh]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -f]} {[DQ [VarSub TOPDIR][LIT_CHARS /generated/config.h]]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=1 words=[] bindings=[('OPTIONFLAGS', {[LIT_OTHER ":"] [ComSub (Pipeline (Com {[LIT_CHARS echo]} {[ComSub (Com {[LIT_CHARS sed]} {[LIT_CHARS -nr]} {[SQ ]} {[DQ [VarSub TOPDIR][LIT_CHARS /generated/config.h]]})]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) ) ) ) (FunctionDef single [] (List (Com {[LIT_CHARS setup_test_env]} ) (For cmd [{[DQ [VarSub @]]}]) (List (= scope= flags=0 words=[] bindings=[('CMDNAME', {[VarSub cmd]})]) (Com {[LIT_CHARS cd_test_dir]} {[VarSub cmd]} ) (Com {[LIT_CHARS .]} {[DQ [VarSub TOPDIR]] [LIT_CHARS /tests/] [VarSub cmd] [LIT_CHARS .test]} ) ) ) (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub FAILCOUNT]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "toybox "][VarSub cmd][LIT_CHARS ": "][VarSub FAILCOUNT][LIT_CHARS " total failures"]]} ) ) (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub FAILCOUNT]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (FunctionDef all [] (List (Com {[LIT_CHARS setup_test_env]} ) (= scope= flags=0 words=[] bindings=[('failed_commands', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('num_commands', {[LIT_CHARS 0]})]) (For test_file [{[DQ [VarSub TOPDIR]] [LIT_CHARS /tests/] [LIT_OTHER "*"] [LIT_CHARS .test]}]) (List (= scope= flags=0 words=[] bindings=[('CMDNAME', {[DQ [VarSub test_file transform_ops=[VS_UNARY_DPOUND {[LIT_CHARS "*"] [LIT_SLASH /]}]]]})]) (= scope= flags=0 words=[] bindings=[('CMDNAME', {[DQ [VarSub CMDNAME transform_ops=[VS_UNARY_PERCENT {[LIT_CHARS .test]}]]]})]) (If (AndOr OP_OR_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -h]} {[VarSub TOYBOX_TREE_DIR] [LIT_CHARS /] [VarSub CMDNAME]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -n]} {[DQ [VarSub TEST_HOST]]} {[LIT_DBRACKET_LIKE "]"]} ) ) (List (= scope= flags=0 words=[] bindings=[('old_count', {[VarSub FAILCOUNT]})]) (Com {[LIT_CHARS cd_test_dir]} {[VarSub CMDNAME]} ) (Com {[LIT_CHARS .]} {[VarSub test_file]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub FAILCOUNT]} {[LIT_CHARS -ne]} {[VarSub old_count]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub CMDNAME][LIT_CHARS ": some tests failed ("][VarSub FAILCOUNT][LIT_CHARS " failures so far)"]]} ) (= scope= flags=0 words=[] bindings=[('failed_commands', {[DQ [VarSub failed_commands][LIT_CHARS " "][VarSub CMDNAME]]})]) ) ) (= scope= flags=0 words=[] bindings=[('num_commands', {[ArithSub {A2 AS_OP_PLUS {A Atom NODE_ARITH_WORD {[VarSub num_commands]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 1]}}}]})]) ) (ElseTrue) (Com {[LIT_CHARS echo]} {[DQ [VarSub CMDNAME][LIT_CHARS " not built"]]} ) ) ) ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "Tested "][VarSub num_commands][LIT_CHARS " toybox commands: "]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub FAILCOUNT]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "ALL PASSED"]]} ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub FAILCOUNT][LIT_CHARS " test failures"]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Commands with test failures: "][VarSub failed_commands]]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Commands skipped: "][VarSub SKIPPED_COMMANDS]]} ) (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub FAILCOUNT]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) ) ) (= scope= flags=2 words=[] bindings=[('TEST_ROOT', {[VarSub TOPDIR] [LIT_CHARS /generated/test]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub TEST_ROOT]} ) (Case to_match={[VarSub 1]}, pat_word_list=[[{[LIT_CHARS single]}, {[LIT_CHARS all]}], [{[LIT_OTHER "*"]}]] (Com {[DQ [VarSub @]]} ) (Com {[LIT_CHARS usage]} ) ) )