(List (AndOr OP_OR_IF (Com {[LIT_CHARS source]} {[ComSub (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE bracket_op=(Index {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}})]]})]]}) (Com {[LIT_CHARS pwd]}) )] [LIT_CHARS /test-setup.sh]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "test-setup.sh not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (FunctionDef set_up [] (Com {[LIT_CHARS copy_examples]}) ) (FunctionDef check_has_rustc [] (List (= scope= flags=0 words=[] bindings=[('PATH', {[LIT_CHARS /usr/bin] [LIT_OTHER ":"] [LIT_CHARS /usr/local/bin] [LIT_OTHER ":"] [VarSub PATH]})]) (If (Com {[LIT_OTHER "["]} {[LIT_OTHER "!"]} {[LIT_CHARS -x]} {[DQ [ComSub (Com {[LIT_CHARS which]} {[LIT_CHARS rustc]})]]} {[LIT_OTHER "]"]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No rustc found. Skipping..."]]}) (Com {[LIT_CHARS return]} {[LIT_CHARS false]}) ) ) ) ) (FunctionDef test_rust [] (List (= scope= flags=0 words=[] bindings=[('hello_lib_pkg', {[LIT_CHARS examples/rust/hello_lib]})]) (Com {[LIT_CHARS assert_build_output]} {[LIT_CHARS ./bazel-bin/] [VarSub hello_lib_pkg] [LIT_CHARS /libhello_lib.rlib]} {[VarSub hello_lib_pkg] [LIT_OTHER ":"] [LIT_CHARS hello_lib]}) (= scope= flags=0 words=[] bindings=[('hello_world_pkg', {[LIT_CHARS examples/rust/hello_world]})]) (Com {[LIT_CHARS assert_build_output]} {[LIT_CHARS ./bazel-bin/] [VarSub hello_world_pkg] [LIT_CHARS /hello_world]} {[VarSub hello_world_pkg] [LIT_OTHER ":"] [LIT_CHARS hello_world]}) (Com {[LIT_CHARS assert_binary_run_from_subdir]} {[DQ [LIT_CHARS bazel-bin/][VarSub hello_world_pkg][LIT_CHARS /hello_data]]} {[DQ [LIT_CHARS "Hello world"]]}) ) ) (FunctionDef test_rust_test [] (List (= scope= flags=0 words=[] bindings=[('hello_lib_test', {[LIT_CHARS examples/rust/hello_lib]})]) (Com {[LIT_CHARS assert_build]} {[LIT_CHARS //] [VarSub hello_lib_test] [LIT_OTHER ":"] [LIT_CHARS greeting]}) (Com {[LIT_CHARS assert_test_ok]} {[LIT_CHARS //] [VarSub hello_lib_test] [LIT_OTHER ":"] [LIT_CHARS greeting]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS check_has_rustc]}) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]}) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS rust_examples]]}) )