(List (= scope= flags=0 words=[] bindings=[('CURRENT_DIR', {[DQ [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]}) )]]})]) (AndOr OP_OR_IF (Com {[LIT_CHARS source]} {[DQ [VarSub CURRENT_DIR][LIT_CHARS /../integration_test_setup.sh]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "integration_test_setup.sh not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (AndOr OP_OR_IF (Com {[LIT_CHARS source]} {[DQ [VarSub CURRENT_DIR][LIT_CHARS /remote_helpers.sh]]}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "remote_helpers.sh not found!"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]}) ) ) (FunctionDef setup_zoo [] (List (Com {[LIT_CHARS mkdir]} {[LIT_CHARS -p]} {[LIT_CHARS zoo]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "java_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS ball-pit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit.java][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " main_class = "][RIGHT_D_QUOTE "\""][LIT_CHARS BallPit][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "//external:mongoose"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS zoo/BallPit.java]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "import carnivore.Mongoose;\n"][LIT_CHARS "\n"][LIT_CHARS "public class BallPit {\n"][LIT_CHARS " public static void main(String args[]) {\n"][LIT_CHARS " Mongoose.frolic();\n"][LIT_CHARS " }\n"][LIT_CHARS "}\n"]]} 0), > ) ) ) (FunctionDef tear_down [] (Com {[LIT_CHARS shutdown_server]}) ) (FunctionDef test_maven_jar [] (List (Com {[LIT_CHARS setup_zoo]}) (Com {[LIT_CHARS serve_artifact]} {[LIT_CHARS com.example.carnivore]} {[LIT_CHARS carnivore]} {[LIT_CHARS 1.23]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = 'endangered',\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "com.example.carnivore:carnivore:1.23"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " repository = 'http://localhost:"][VarSub fileserver_port][LIT_CHARS "/',\n"][LIT_CHARS " sha1 = '"][VarSub sha1][LIT_CHARS "',\n"][LIT_CHARS ")\n"][LIT_CHARS "bind(name = 'mongoose', actual = '@endangered//jar')\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected run to succeed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Tra-la!"]]}) ) ) (FunctionDef test_maven_jar_no_sha1 [] (List (Com {[LIT_CHARS serve_artifact]} {[LIT_CHARS com.example.carnivore]} {[LIT_CHARS carnivore]} {[LIT_CHARS 1.23]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = 'endangered',\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "com.example.carnivore:carnivore:1.23"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " repository = 'http://localhost:"][VarSub fileserver_port][LIT_CHARS "/',\n"][LIT_CHARS ")\n"][LIT_CHARS "bind(name = 'mongoose', actual = '@endangered//jar')\n"]]} 0), > ) (AndOr OP_OR_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS run]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected run to succeed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Tra-la!"]]}) ) ) (FunctionDef test_maven_jar_404 [] (List (Com {[LIT_CHARS setup_zoo]}) (Com {[LIT_CHARS serve_not_found]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = 'endangered',\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "com.example.carnivore:carnivore:1.23"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " repository = 'http://localhost:"][VarSub nc_port][LIT_CHARS "/',\n"][LIT_CHARS ")\n"][LIT_CHARS "bind(name = 'mongoose', actual = '@endangered//jar')\n"]]} 0), > ) (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]} {[LIT_CHARS --expunge]}) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Expected build to fail"]]}) ) (Com {[LIT_CHARS kill_nc]}) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Failed to fetch Maven dependency: Could not find artifact"]]}) ) ) (FunctionDef test_maven_jar_mismatched_sha1 [] (List (Com {[LIT_CHARS setup_zoo]}) (Com {[LIT_CHARS serve_artifact]} {[LIT_CHARS com.example.carnivore]} {[LIT_CHARS carnivore]} {[LIT_CHARS 1.23]}) (= scope= flags=0 words=[] bindings=[('wrong_sha1', {[DQ [LIT_CHARS 0123456789012345678901234567890123456789]]})]) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = 'endangered',\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "com.example.carnivore:carnivore:1.23"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " repository = 'http://localhost:"][VarSub fileserver_port][LIT_CHARS "/',\n"][LIT_CHARS " sha1 = '"][VarSub wrong_sha1][LIT_CHARS "',\n"][LIT_CHARS ")\n"][LIT_CHARS "bind(name = 'mongoose', actual = '@endangered//jar')\n"]]} 0), > ) (AndOr OP_AND_IF (Com {[LIT_CHARS bazel]} {[LIT_CHARS fetch]} {[LIT_CHARS //zoo] [LIT_OTHER ":"] [LIT_CHARS ball-pit]} < (DescriptorRedirectNode target={[VarSub TEST_log]} &"> 1), > ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Expected fetch to fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "has SHA-1 of "][VarSub sha1][LIT_CHARS ", does not match expected SHA-1 ("][VarSub wrong_sha1][LIT_CHARS ")"]]}) ) ) (FunctionDef test_default_repository [] (List (Com {[LIT_CHARS serve_artifact]} {[LIT_CHARS thing]} {[LIT_CHARS amabop]} {[LIT_CHARS 1.9]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_server(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS default][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " url = "][RIGHT_D_QUOTE "\""][LIT_CHARS "http://localhost:"][VarSub fileserver_port][LIT_CHARS /][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS thing_a_ma_bop][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "thing:amabop:1.9"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS thing_a_ma_bop//jar]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building thing failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Target @thing_a_ma_bop//jar:jar up-to-date"]]}) ) ) (FunctionDef test_settings [] (List (Com {[LIT_CHARS serve_artifact]} {[LIT_CHARS thing]} {[LIT_CHARS amabop]} {[LIT_CHARS 1.9]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_server(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " url = "][RIGHT_D_QUOTE "\""][LIT_CHARS "http://localhost:"][VarSub fileserver_port][LIT_CHARS /][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " settings_file = "][RIGHT_D_QUOTE "\""][LIT_CHARS settings.xml][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS thing_a_ma_bop][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "thing:amabop:1.9"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " server = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS settings.xml]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS " default\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS "\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS thing_a_ma_bop//jar]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building thing failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Target @thing_a_ma_bop//jar:jar up-to-date"]]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS settings.xml]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS " default\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS "\n"]]} 0), > ) (Com {[LIT_CHARS bazel]} {[LIT_CHARS clean]} {[LIT_CHARS --expunge]}) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS thing_a_ma_bop//jar]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building thing succeeded"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Unrecognised tag: 'repositories'"]]}) ) ) (FunctionDef test_maven_server_dep [] (List (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_server(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " url = "][RIGHT_D_QUOTE "\""][LIT_CHARS "http://localhost:12345/"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS BUILD]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "sh_binary(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS y][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " srcs = ["][RIGHT_D_QUOTE "\""][LIT_CHARS y.sh][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS " deps = ["][RIGHT_D_QUOTE "\""][LIT_CHARS "@x//:bar"][RIGHT_D_QUOTE "\""][LIT_CHARS "],\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS touch]} {[LIT_CHARS y.sh]}) (Com {[LIT_CHARS chmod]} {[LIT_OTHER "+"] [LIT_CHARS x]} {[LIT_CHARS y.sh]}) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_CHARS //] [LIT_OTHER ":"] [LIT_CHARS y]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Building thing failed"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "does not represent an actual repository"]]}) ) ) (FunctionDef test_auth [] (List (Com {[LIT_CHARS startup_auth_server]}) (Com {[LIT_CHARS create_artifact]} {[LIT_CHARS thing]} {[LIT_CHARS amabop]} {[LIT_CHARS 1.9]}) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS WORKSPACE]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "maven_server(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " url = "][RIGHT_D_QUOTE "\""][LIT_CHARS "http://localhost:"][VarSub fileserver_port][LIT_CHARS /][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " settings_file = "][RIGHT_D_QUOTE "\""][LIT_CHARS settings.xml][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS good_auth][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "thing:amabop:1.9"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " server = "][RIGHT_D_QUOTE "\""][LIT_CHARS x][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "maven_server(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS y][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " url = "][RIGHT_D_QUOTE "\""][LIT_CHARS "http://localhost:"][VarSub fileserver_port][LIT_CHARS /][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " settings_file = "][RIGHT_D_QUOTE "\""][LIT_CHARS settings.xml][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"][LIT_CHARS "maven_jar(\n"][LIT_CHARS " name = "][RIGHT_D_QUOTE "\""][LIT_CHARS bad_auth][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " artifact = "][RIGHT_D_QUOTE "\""][LIT_CHARS "thing:amabop:1.9"][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS " server = "][RIGHT_D_QUOTE "\""][LIT_CHARS y][RIGHT_D_QUOTE "\""][LIT_CHARS ",\n"][LIT_CHARS ")\n"]]} 0), > ) (Com {[LIT_CHARS cat]} < (FilenameRedirectNode filename={[LIT_CHARS settings.xml]} "> 1), (HereDocRedirectNode here_end='EOF' do_expansion=True body_word={[DQ [LIT_CHARS "\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS " x\n"][LIT_CHARS " foo\n"][LIT_CHARS " bar\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS " y\n"][LIT_CHARS " foo\n"][LIT_CHARS " baz\n"][LIT_CHARS " \n"][LIT_CHARS " \n"][LIT_CHARS "\n"]]} 0), > ) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS good_auth//jar]}) ) (AndOr OP_OR_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected correct password to work"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Target @good_auth//jar:jar up-to-date"]]}) (Fork (Com {[LIT_CHARS bazel]} {[LIT_CHARS build]} {[LIT_OTHER "@"] [LIT_CHARS bad_auth//jar]}) ) (AndOr OP_AND_IF (Com < (FilenameRedirectNode filename={[VarSub TEST_log]} "> 1), > ) (Com {[LIT_CHARS fail]} {[DQ [LIT_CHARS "Expected incorrect password to fail"]]}) ) (Com {[LIT_CHARS expect_log]} {[DQ [LIT_CHARS "Unauthorized (401)"]]}) ) ) (Com {[LIT_CHARS run_suite]} {[DQ [LIT_CHARS "maven tests"]]}) )