(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (AndOr children: [ (C {(cd)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} { (DQ (BracedVarSub token: <VSub_Name BASH_SOURCE> bracket_op: (ArrayIndex expr: (ArithWord w:{(Lit_Digits 0)}) ) spids: [56 61] ) ) } ) ] ) left_token: <Left_CommandSub "$("> spids: [52 63] ) ) } ) (C {(pwd)}) ] op_id: Op_DAmp ) ] ) left_token: <Left_CommandSub "$("> spids: [48 69] ) } spids: [47] ) ] spids: [47] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:JAVAC) op:Equal rhs:{($ VSub_Number "$1")} spids:[75])] spids: [75] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:JAVA) op:Equal rhs:{($ VSub_Number "$1")} spids:[80])] spids: [80] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:JAR) op:Equal rhs:{($ VSub_Number "$1")} spids:[85])] spids: [85] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:JAVAP) op:Equal rhs:{($ VSub_Number "$1")} spids:[90])] spids: [90] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:IJAR) op:Equal rhs:{($ VSub_Number "$1")} spids:[95])] spids: [95] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LANGTOOLS8) op: Equal rhs: {($ VSub_Number "$1")} spids: [100] ) ] spids: [100] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:UNZIP) op:Equal rhs:{($ VSub_Number "$1")} spids:[105])] spids: [105] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ZIP) op:Equal rhs:{($ VSub_Number "$1")} spids:[110])] spids: [110] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ZIP_COUNT) op: Equal rhs: {($ VSub_Number "$1")} spids: [115] ) ] spids: [115] ) (C {(shift)}) (AndOr children: [ (C {(source)} {(${ VSub_Name DIR) (/testenv.sh)}) (BraceGroup children: [ (Sentence child: (SimpleCommand words: [{(echo)} {(DQ ("testenv.sh not found!"))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[141])] ) terminator: <Op_Semi ";"> ) (Sentence child:(C {(exit)} {(1)}) terminator:<Op_Semi ";">) ] spids: [133] ) ] op_id: Op_DPipe ) (FuncDef name: cleanup body: (BraceGroup children: [(C {(rm)} {(-fr)} {(DQ ($ VSub_Name "$TEST_TMPDIR")) (/) (Lit_Other "*")})] spids: [159] ) spids: [153 158] ) (C {(trap)} {(cleanup)} {(EXIT)}) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$JAVAC"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:JAVAC) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$JAVAC"))} spids: [212] ) ] spids: [212] ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$JAR"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:JAR) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$JAR"))} spids: [243] ) ] spids: [243] ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$IJAR"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IJAR) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$IJAR"))} spids: [274] ) ] spids: [274] ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$UNZIP"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:UNZIP) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$UNZIP"))} spids: [305] ) ] spids: [305] ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$ZIP"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ZIP) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$ZIP"))} spids: [336] ) ] spids: [336] ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$JAVAP"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:JAVAP) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$JAVAP"))} spids: [367] ) ] spids: [367] ) ] op_id: Op_DPipe ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Name "$ZIP_COUNT"))} right: {(Lit_Other "^") ("(") (/) ("|") (Lit_Other "[") (Lit_Other "^") (/) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") (")") } ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ZIP_COUNT) op: Equal rhs: {(DQ ($ VSub_Name "$PWD") (/) ($ VSub_Name "$ZIP_COUNT"))} spids: [398] ) ] spids: [398] ) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IJAR_SRCDIR) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(dirname)} {(${ VSub_Name IJAR)})]) left_token: <Left_CommandSub "$("> spids: [407 413] ) } spids: [406] ) ] spids: [406] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:A_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/A.jar)} spids: [415] ) ] spids: [415] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:A_INTERFACE_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/A-interface.jar)} spids: [419] ) ] spids: [419] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:A_ZIP_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/A_zip.jar)} spids: [423] ) ] spids: [423] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:A_ZIP_INTERFACE_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/A_zip-interface.jar)} spids: [427] ) ] spids: [427] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:W_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/W.jar)} spids: [431] ) ] spids: [431] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOTTLES_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/bottles.jar)} spids: [435] ) ] spids: [435] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:JAR_WRONG_CENTRAL_DIR) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/libwrongcentraldir.jar)} spids: [439] ) ] spids: [439] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IJAR_WRONG_CENTRAL_DIR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/wrongcentraldir_interface.jar)} spids: [443] ) ] spids: [443] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OBJECT_JAVA) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/Object.java)} spids: [447] ) ] spids: [447] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OBJECT_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/object.jar)} spids: [451] ) ] spids: [451] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OBJECT_IJAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/object_interface.jar)} spids: [455] ) ] spids: [455] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TYPEANN2_JAR) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/libtypeannotations2.jar)} spids: [459] ) ] spids: [459] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TYPEANN2_IJAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/typeannotations2_interface.jar)} spids: [463] ) ] spids: [463] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TYPEANN2_JAVA) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/TypeAnnotationTest2.java)} spids: [467] ) ] spids: [467] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INVOKEDYNAMIC_JAR) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/libinvokedynamic.jar)} spids: [471] ) ] spids: [471] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INVOKEDYNAMIC_IJAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/invokedynamic_interface.jar)} spids: [475] ) ] spids: [475] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:METHODPARAM_JAR) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/libmethodparameters.jar)} spids: [479] ) ] spids: [479] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:METHODPARAM_IJAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/methodparameters_interface.jar)} spids: [483] ) ] spids: [483] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SOURCEDEBUGEXT_JAR) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/source_debug_extension.jar)} spids: [487] ) ] spids: [487] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SOURCEDEBUGEXT_IJAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/source_debug_extension.jar)} spids: [491] ) ] spids: [491] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CENTRAL_DIR_LARGEST_REGULAR) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/largest_regular.jar)} spids: [495] ) ] spids: [495] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CENTRAL_DIR_SMALLEST_ZIP64) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/smallest_zip64.jar)} spids: [499] ) ] spids: [499] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CENTRAL_DIR_ZIP64) op: Equal rhs: {($ VSub_Name "$IJAR_SRCDIR") (/test/definitely_zip64.jar)} spids: [503] ) ] spids: [503] ) (FuncDef name: set_file_length body: (BraceGroup children: [ (AndOr children: [ (C {(perl)} {(-e)} {(SQ <"open(FH, \">>$ARGV[0]\") && truncate(FH, $ARGV[1]) or fail $!">)} {(DQ ($ VSub_At "$@"))} ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(statfmt)} {($ VSub_Number "$1")})] ) left_token: <Left_CommandSub "$("> spids: [551 555] ) ) } right: {(DQ ($ VSub_Number "$2"))} ) ) (C {(fail)} {(DQ ("set_file_length failed"))}) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [530] ) spids: [524 529] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:expected_output) op:Equal rhs:{(DQ )} spids:[587])] spids: [587] ) (FuncDef name: check_consistent_file_contents body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:actual) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {($ VSub_Number "$1")}) (C {(${ VSub_Name MD5SUM)}) (C {(awk)} {(SQ <"{ print $1; }">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [604 622] ) ) } spids: [602] ) ] spids: [600] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:filename) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Number "$1")}) (C {(${ VSub_Name MD5SUM)}) (C {(awk)} {(SQ <"{ print $1; }">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [630 648] ) ) } spids: [628] ) ] spids: [626] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:expected) op: Equal rhs: {(DQ ($ VSub_Name "$actual"))} spids: [654] ) ] spids: [652] ) (If arms: [ (if_arm cond: [ (Sentence child: (Subshell child: (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name expected_output))}) (C {(grep)} {(-q)} {(DQ ("^") (${ VSub_Name filename) (" "))}) ] negated: False ) spids: [662 684] ) terminator: <Op_Semi ";"> ) ] action: [ (AndOr children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name expected_output))}) (C {(grep)} {(-q)} { (DQ ("^") (${ VSub_Name filename) (" ") (${ VSub_Name actual) (Lit_Other "$") ) } ) ] negated: False ) (BraceGroup children: [ (C {(ls)} {(-l)} {(DQ ($ VSub_Number "$1"))}) (C {(fail)} {(DQ ("output file contents differ"))}) ] spids: [718] ) ] op_id: Op_DPipe ) ] spids: [-1 687] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expected_output) op: Equal rhs: { (DQ ($ VSub_Name "$expected_output") ($ VSub_Name "$filename") (" ") ($ VSub_Name "$actual") ("\n") ) } spids: [743] ) ] spids: [743] ) ] spids: [740 753] ) ] spids: [597] ) spids: [591 596] ) (FuncDef name: set_up body: (BraceGroup children: [(C {(mkdir)} {(-p)} {($ VSub_Name "$TEST_TMPDIR") (/classes)})] spids: [764] ) spids: [758 763] ) (FuncDef name: tear_down body: (BraceGroup children: [(C {(rm)} {(-fr)} {($ VSub_Name "$TEST_TMPDIR") (/classes)})] spids: [783] ) spids: [777 782] ) (FuncDef name: test_output_bigger_than_input body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-g)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$IJAR_SRCDIR") (/test/WellCompressed) (Lit_Other "*") (.java)} ) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$JAR")} {(cf)} {($ VSub_Name "$W_JAR")} {(-C)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(.)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:W_INTERFACE_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/W-interface.jar)} spids: [861] ) ] spids: [861] ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$W_JAR")} {($ VSub_Name "$W_INTERFACE_JAR")}) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:W_JAR_SIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(statfmt)} {($ VSub_Name "$W_JAR")})] ) left_token: <Left_CommandSub "$("> spids: [886 890] ) } spids: [885] ) ] spids: [885] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:W_INTERFACE_JAR_SIZE) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(statfmt)} {($ VSub_Name "$W_INTERFACE_JAR")})] ) left_token: <Left_CommandSub "$("> spids: [894 898] ) } spids: [893] ) ] spids: [893] ) (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_gt left: {($ VSub_Name "$W_INTERFACE_JAR_SIZE")} right: {($ VSub_Name "$W_JAR_SIZE")} ) ) (C {(fail)} {(DQ ("interface jar should be bigger"))}) ] op_id: Op_DPipe ) ] spids: [805] ) spids: [799 804] ) (FuncDef name: test_class_more_64k body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOTTLES_JAVA) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/BottlesOnTheWall.java)} spids: [939] ) ] spids: [939] ) (SimpleCommand words: [{(echo)} {(DQ ("public class BottlesOnTheWall {"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$BOTTLES_JAVA")} spids: [950] ) ] ) (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(seq)} {(1)} {(16384)})]) left_token: <Left_CommandSub "$("> spids: [961 967] ) } ] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [ {(echo)} { (DQ (" public int getBottleOnTheWall") (${ VSub_Name i) ("() { return ") (${ VSub_Name i) ("; }") ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name "$BOTTLES_JAVA")} spids: [987] ) ] ) ] spids: [970 992] ) spids: [960 968] ) (SimpleCommand words: [{(echo)} {(DQ ("}"))}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name "$BOTTLES_JAVA")} spids: [1002] ) ] ) (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-g)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$BOTTLES_JAVA")} ) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOTTLES_INTERFACE_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/bottles-interface.jar)} spids: [1028] ) ] spids: [1028] ) (ForEach iter_name: flag0 iter_words: [{(SQ )} {(SQ <0>)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {($ VSub_Name "$JAR")} {(c) (DQ (${ VSub_Name flag0)) (f)} {($ VSub_Name "$BOTTLES_JAR")} {(-C)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(.)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$BOTTLES_JAR")} {($ VSub_Name "$BOTTLES_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (C {(check_consistent_file_contents)} {($ VSub_Name "$BOTTLES_INTERFACE_JAR")}) ] spids: [1052 1103] ) spids: [1043 1050] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BOTTLES_INTERFACE_INTERFACE_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/bottles-interface-interface.jar)} spids: [1115] ) ] spids: [1115] ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$BOTTLES_INTERFACE_JAR")} {($ VSub_Name "$BOTTLES_INTERFACE_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar cannot produce class files with body longer than 64K"))}) ] op_id: Op_DPipe ) ] spids: [928] ) spids: [922 927] ) (FuncDef name: test_ijar_output body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-g)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$IJAR_SRCDIR") (/test/A.java)} ) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$JAR")} {(cf)} {($ VSub_Name "$A_JAR")} {(-C)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(.)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$A_JAR")} {($ VSub_Name "$A_INTERFACE_JAR")}) (C {(fail)} {(DQ ("ijar failed."))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:expected) op:Equal rhs:{(5)} spids:[1236])] spids: [1236] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAR")} {(tvf)} {($ VSub_Name "$A_INTERFACE_JAR")}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1241 1253] ) } spids: [1240] ) ] spids: [1240] ) (C {(check_eq)} {($ VSub_Name "$expected")} {($ VSub_Name "$lines")} {(DQ ("Interface jar should have ") ($ VSub_Name "$expected") (" entries!"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-private)} {(-classpath)} {($ VSub_Name "$A_JAR")} {(A)} ) (C {(grep)} {(priv)}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1275 1297] ) } spids: [1274] ) ] spids: [1274] ) (C {(check_eq)} {(2)} {($ VSub_Name "$lines")} {(DQ ("Input jar should have 2 private members!"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-private)} {(-classpath)} {($ VSub_Name "$A_INTERFACE_JAR")} {(A)} ) (C {(grep)} {(priv)}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1312 1334] ) } spids: [1311] ) ] spids: [1311] ) (C {(check_eq)} {(0)} {($ VSub_Name "$lines")} {(DQ ("Interface jar should have no private members!"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-private)} {(-classpath)} {($ VSub_Name "$A_INTERFACE_JAR")} {(A)} ) (C {(grep)} {(clinit)}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1349 1371] ) } spids: [1348] ) ] spids: [1348] ) (C {(check_eq)} {(0)} {($ VSub_Name "$lines")} {(DQ ("Interface jar should have no class initializers!"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-c)} {(-private)} {(-classpath)} {($ VSub_Name "$A_JAR")} {(A)} ) (C {(grep)} {(Code) (Lit_Other ":")}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1392 1417] ) } spids: [1391] ) ] spids: [1391] ) (C {(check_eq)} {(5)} {($ VSub_Name "$lines")} {(DQ ("Input jar should have 5 method bodies!"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-c)} {(-private)} {(-classpath)} {($ VSub_Name "$A_INTERFACE_JAR")} {(A)} ) (C {(grep)} {(Code) (Lit_Other ":")}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1432 1457] ) } spids: [1431] ) ] spids: [1431] ) (C {(check_eq)} {(0)} {($ VSub_Name "$lines")} {(DQ ("Interface jar should have no method bodies!"))} ) (AndOr children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-c)} {(-private)} {(-classpath)} {($ VSub_Name "$A_JAR")} {(A)} ) (C {(grep)} {(-sq)} {(foofoofoofoo)}) ] negated: False ) (C {(fail)} {(DQ ("Input jar should have code constants!"))}) ] op_id: Op_DPipe ) (AndOr children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-c)} {(-private)} {(-classpath)} {($ VSub_Name "$A_INTERFACE_JAR")} {(A)} ) (C {(grep)} {(-sq)} {(foofoofoofoo)}) ] negated: False ) (C {(fail)} {(DQ ("Interface jar should have no code constants!"))}) ] op_id: Op_DAmp ) (AndOr children: [ (SimpleCommand words: [ {($ VSub_Name "$JAVAC")} {(-Xlint)} {(-classpath)} {($ VSub_Name "$A_INTERFACE_JAR")} {(-g)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$IJAR_SRCDIR") (/test/B.java)} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {($ VSub_Name "$TEST_log")} spids: [1566] ) ] ) (C {(fail)} {(DQ ("Can't compile B!"))}) ] op_id: Op_DPipe ) (C {(expect_log)} {(SQ <"deprecatedMethod.*in A has been deprecated">)} {(DQ ("ijar has lost @Deprecated annotation!"))} ) (AndOr children: [ (C {($ VSub_Name "$JAVA")} {(-classpath)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(B)}) (C {(exit)} {(1)}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:A_INTERFACE_INTERFACE_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/A-interface-interface.jar)} spids: [1622] ) ] spids: [1622] ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$A_INTERFACE_JAR")} {($ VSub_Name "$A_INTERFACE_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar failed."))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name "$A_INTERFACE_JAR")} {($ VSub_Name "$A_INTERFACE_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar transformation is not idempotent"))}) ] op_id: Op_DPipe ) (C {(check_eq)} {(0)} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAR")} {(tf)} {($ VSub_Name "$A_INTERFACE_JAR")}) (C {(grep)} {(-v)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\\\">) (.class) (Lit_Other "$") } ) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1668 1690] ) } {(DQ ("Interface jar should contain only .class files!"))} ) (C {(check_eq)} {(0)} { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (SimpleCommand words: [{($ VSub_Name "$JAR")} {(tvf)} {($ VSub_Name "$A_INTERFACE_JAR")}] more_env: [(env_pair name:TZ val:{(UTC)} spids:[1710])] ) (C {(grep)} {(-v)} {(SQ <"Fri Nov 30 00:00:00 UTC 1979">)}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1709 1735] ) } {(DQ ("Interface jar contained non-zero timestamps!"))} ) (AndOr children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-classpath)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(-c)} {(B)} ) (C {(grep)} {(-sq)} {(ldc2_w.) (Lit_Other "*") (123)}) ] negated: False ) (C {(fail)} {(DQ ("ConstantValue not propagated to class B!"))}) ] op_id: Op_DPipe ) (C {(rm)} {(-fr)} {($ VSub_Name "$TEST_TMPDIR") (/classes)}) (AndOr children: [ (C {(mkdir)} {(-p)} {($ VSub_Name "$TEST_TMPDIR") (/classes)}) (C {(fail)} {(DQ ("mkdir ") ($ VSub_Name "$TEST_TMPDIR") ("/classes failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-g)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$IJAR_SRCDIR") (/test/A.java)} ) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$JAR")} {(cf)} {($ VSub_Name "$A_JAR")} {($ VSub_Name "$TEST_TMPDIR") (/classes/A.class)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$ZIP")} {($ VSub_Name "$A_ZIP_JAR")} {($ VSub_Name "$TEST_TMPDIR") (/classes/A.class)} ) (C {(fail)} {(DQ ("zip failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$A_JAR")} {($ VSub_Name "$A_INTERFACE_JAR")}) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$A_ZIP_JAR")} {($ VSub_Name "$A_ZIP_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cmp)} {($ VSub_Name "$A_INTERFACE_JAR")} {($ VSub_Name "$A_ZIP_INTERFACE_JAR")}) (C {(fail)} {(DQ ("ijars from jar and zip are different"))}) ] op_id: Op_DPipe ) ] spids: [1144] ) spids: [1138 1143] ) (FuncDef name: do_test_large_file body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-g)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$IJAR_SRCDIR") (/test/A.java)} ) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) (ForEach iter_name: flag0 iter_words: [{(SQ )} {(SQ <0>)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {($ VSub_Name "$JAR")} {(c) (DQ (${ VSub_Name flag0)) (f)} {($ VSub_Name "$A_JAR")} {(-C)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(.)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$A_JAR")} {($ VSub_Name "$A_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar failed."))}) ] op_id: Op_DPipe ) (C {(check_consistent_file_contents)} {($ VSub_Name "$A_INTERFACE_JAR")}) ] spids: [1977 2028] ) spids: [1968 1975] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:extra_args) op:Equal rhs:{(DQ )} spids:[2036])] spids: [2036] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (DQ (BracedVarSub token: <VSub_Number 1> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )}) spids: [2048 2051] ) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (ForEach iter_name: file iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(-name)} {(SQ <"*.class">)} ) ] ) left_token: <Left_CommandSub "$("> spids: [2066 2077] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(set_file_length)} {(DQ ($ VSub_Name "$file"))} {(DQ ($ VSub_Number "$1"))} ) ] spids: [2080 2094] ) spids: [2065 2078] ) ] spids: [-1 2057] ) ] spids: [-1 2097] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_n child: { (DQ (BracedVarSub token: <VSub_Number 2> suffix_op: (StringUnary op_id:VTest_Hyphen arg_word:{(SQ )}) spids: [2107 2110] ) ) } ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(set_file_length)} {($ VSub_Name "$TEST_TMPDIR") (/zeroes.data)} {(DQ ($ VSub_Number "$2"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:extra_args) op: Equal rhs: {(DQ ("-C ") ($ VSub_Name "$TEST_TMPDIR") (" zeroes.data"))} spids: [2129] ) ] spids: [2129] ) ] spids: [-1 2116] ) ] spids: [-1 2137] ) (ForEach iter_name: flag0 iter_words: [{(SQ )} {(SQ <0>)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {($ VSub_Name "$JAR")} {(c) (DQ (${ VSub_Name flag0)) (f)} {($ VSub_Name "$A_JAR")} {($ VSub_Name "$extra_args")} {(-C)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {(.)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$A_JAR")} {($ VSub_Name "$A_INTERFACE_JAR")} ) (C {(fail)} {(DQ ("ijar failed."))}) ] op_id: Op_DPipe ) (C {(check_consistent_file_contents)} {($ VSub_Name "$A_INTERFACE_JAR")}) ] spids: [2155 2208] ) spids: [2146 2153] ) ] spids: [1929] ) spids: [1923 1928] ) (FuncDef name: test_large_files body: (BraceGroup children: [ (ForEach iter_name: size iter_words: [ { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithWord w:{(Lit_Digits 1024)}) right: (ArithWord w:{(Lit_Digits 1024)}) ) spids: [2236 2241] ) } { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w:{(Lit_Digits 15)}) right: (ArithWord w:{(Lit_Digits 1024)}) ) right: (ArithWord w:{(Lit_Digits 1024)}) ) spids: [2243 2250] ) } ] do_arg_iter: False body: (DoGroup children: [(C {(do_test_large_file)} {($ VSub_Name "$size")})] spids: [2253 2261] ) spids: [2235 2251] ) ] spids: [2219] ) spids: [2213 2218] ) (FuncDef name: test_z_2gb_plus_data_file body: (BraceGroup children: [ (C {(do_test_large_file)} {(SQ )} { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w:{(Lit_Digits 22)}) right: (ArithWord w:{(Lit_Digits 102)}) ) right: (ArithWord w:{(Lit_Digits 1024)}) ) right: (ArithWord w:{(Lit_Digits 1024)}) ) spids: [2299 2308] ) } ) ] spids: [2275] ) spids: [2269 2274] ) (FuncDef name: test_upper_bound_up_2gb body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DIR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/ManyLargeClasses)} spids: [2325] ) ] spids: [2325] ) (C {(mkdir)} {(-p)} {($ VSub_Name "$DIR") (/classes)}) (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(seq)} {(200)})]) left_token: <Left_CommandSub "$("> spids: [2344 2348] ) } ] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [ {(printf)} { (DQ ("class C") (${ VSub_Name i) (" {}") (EscapedLiteralPart token: <Lit_EscapedChar "\\n"> ) ) } ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$DIR") (/C) (${ VSub_Name i) (.java)} spids: [2365] ) ] ) ] spids: [2351 2375] ) spids: [2343 2349] ) (Subshell child: (AndOr children: [ (C {(cd)} {($ VSub_Name "$DIR")}) (C {($ VSub_Name "$JAVAC")} {(-d)} {(classes)} {(Lit_Other "*") (.java)}) ] op_id: Op_DAmp ) spids: [2378 2393] ) (ForEach iter_name: i iter_words: [ { (CommandSubPart command_list: (CommandList children:[(C {(seq)} {(200)})]) left_token: <Left_CommandSub "$("> spids: [2402 2406] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(set_file_length)} {($ VSub_Name "$DIR") (/classes/C) (${ VSub_Name i) (.class)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Star left: (ArithBinary op_id: Arith_Star left: (ArithWord w:{(Lit_Digits 15)}) right: (ArithWord w:{(Lit_Digits 1024)}) ) right: (ArithWord w:{(Lit_Digits 1024)}) ) spids: [2421 2428] ) } ) ] spids: [2409 2431] ) spids: [2401 2407] ) (AndOr children: [ (C {($ VSub_Name "$JAR")} {(cf)} {($ VSub_Name "$DIR") (/ManyLargeClasses.jar)} {(-C)} {($ VSub_Name "$DIR") (/classes)} {(.)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$DIR") (/ManyLargeClasses.jar)} {($ VSub_Name "$DIR") (/ManyLargeClasses.ijar)} ) (C {(fail)} {(DQ ("ijar failed."))}) ] op_id: Op_DPipe ) ] spids: [2322] ) spids: [2316 2321] ) (FuncDef name: test_empty_jar body: (BraceGroup children: [ (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {($ VSub_Name "$TEST_TMPDIR") (/empty)} spids: [2489] ) ] ) (SimpleCommand words: [ {($ VSub_Name "$ZIP")} {($ VSub_Name "$TEST_TMPDIR") (/noclasses.jar)} {($ VSub_Name "$TEST_TMPDIR") (/empty)} ] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(/dev/null)} spids:[2502]) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[2505]) ] ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$TEST_TMPDIR") (/noclasses.jar)}) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (Pipeline children: [ (SimpleCommand words: [ {($ VSub_Name "$UNZIP")} {(-qql)} {($ VSub_Name "$TEST_TMPDIR") (/noclasses-interface.jar)} ] redirects: [(Redir op_id:Redir_Great fd:2 arg_word:{(/dev/null)} spids:[2530])] ) (C {(grep)} {(-q)} {(.)}) ] negated: False ) (C {(fail)} {(DQ ("noclasses-interface.jar is completely empty!"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-classpath)} {($ VSub_Name "$TEST_TMPDIR") (/noclasses-interface.jar)} {(-d)} {($ VSub_Name "$TEST_TMPDIR") (/classes)} {($ VSub_Name "$IJAR_SRCDIR") (/test/A.java)} ) (C {(fail)} {(DQ ("javac noclasses-interface.jar failed"))}) ] op_id: Op_DPipe ) (C {(rm)} (BracedWordTree parts: [ ($ VSub_Name "$TEST_TMPDIR") (/) (BracedAltPart words: [{(empty)} {(noclasses.jar)} {(noclasses-interface.jar)}] ) ] ) ) ] spids: [2482] ) spids: [2476 2481] ) (FuncDef name: test_wrong_centraldir body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$JAR_WRONG_CENTRAL_DIR")} {($ VSub_Name "$IJAR_WRONG_CENTRAL_DIR")} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IJAR_FILES) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$UNZIP")} {(-qql)} {($ VSub_Name "$IJAR_WRONG_CENTRAL_DIR")} ) (C {(wc)} {(-l)}) (C {(xargs)} {(echo)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2628 2646] ) } spids: [2627] ) ] spids: [2627] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobNEqual left: {($ VSub_Name "$IJAR_FILES")} right: {(2)} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(fail)} {(DQ ("ijar removed files"))})] spids: [-1 2662] ) ] spids: [-1 2672] ) ] spids: [2601] ) spids: [2595 2600] ) (FuncDef name: test_type_annotation body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$TYPEANN2_JAR")} {($ VSub_Name "$TYPEANN2_IJAR")} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (SimpleCommand words: [ {($ VSub_Name "$JAVAP")} {(-classpath)} {($ VSub_Name "$TYPEANN2_IJAR")} {(-v)} {(Util)} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [2719] ) ] ) (C {(fail)} {(DQ ("javap failed"))}) ] op_id: Op_DPipe ) (C {(expect_log)} {(DQ (RuntimeVisibleTypeAnnotations))} {(DQ ("RuntimeVisibleTypeAnnotations not preserved!"))} ) (C {(cp)} {($ VSub_Name "$TYPEANN2_JAVA")} {($ VSub_Name "$TEST_TMPDIR") (/TypeAnnotationTest2.java)} ) (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {(-J-Xbootclasspath/p) (Lit_Other ":") ($ VSub_Name "$LANGTOOLS8")} {($ VSub_Name "$TEST_TMPDIR") (/TypeAnnotationTest2.java)} {(-cp)} {($ VSub_Name "$TYPEANN2_IJAR")} ) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) ] spids: [2683] ) spids: [2677 2682] ) (FuncDef name: test_invokedynamic body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$INVOKEDYNAMIC_JAR")} {($ VSub_Name "$INVOKEDYNAMIC_IJAR")} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-c)} {(-private)} {(-classpath)} {($ VSub_Name "$INVOKEDYNAMIC_JAR")} {(ClassWithLambda)} ) (C {(grep)} {(Code) (Lit_Other ":")}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2805 2830] ) } spids: [2804] ) ] spids: [2804] ) (C {(check_eq)} {(4)} {($ VSub_Name "$lines")} {(DQ ("Input jar should have 4 method bodies!"))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:lines) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {($ VSub_Name "$JAVAP")} {(-c)} {(-private)} {(-classpath)} {($ VSub_Name "$INVOKEDYNAMIC_IJAR")} {(ClassWithLambda)} ) (C {(grep)} {(Code) (Lit_Other ":")}) (C {(wc)} {(-l)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2845 2870] ) } spids: [2844] ) ] spids: [2844] ) (C {(check_eq)} {(0)} {($ VSub_Name "$lines")} {(DQ ("Interface jar should have no method bodies!"))} ) ] spids: [2782] ) spids: [2776 2781] ) (FuncDef name: test_object_class body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {($ VSub_Name "$TEST_TMPDIR") (/java/lang)}) (C {(cp)} {($ VSub_Name "$OBJECT_JAVA")} {($ VSub_Name "$TEST_TMPDIR") (/java/lang/.)}) (AndOr children: [ (C {($ VSub_Name "$JAVAC")} {($ VSub_Name "$TEST_TMPDIR") (/java/lang/Object.java)}) (C {(fail)} {(DQ ("javac failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$JAR")} {(cf)} {($ VSub_Name "$OBJECT_JAR")} {(-C)} {($ VSub_Name "$TEST_TMPDIR")} {(java/lang/Object.class)} ) (C {(fail)} {(DQ ("jar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$OBJECT_JAR")} {($ VSub_Name "$OBJECT_IJAR")}) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) ] spids: [2892] ) spids: [2886 2891] ) (FuncDef name: test_corrupted_end_of_centraldir body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CORRUPTED_JAR) op: Equal rhs: {($ VSub_Name "$TEST_TMPDIR") (/corrupted.jar)} spids: [2985] ) ] spids: [2985] ) (C {(cp)} {($ VSub_Name "$JAR_WRONG_CENTRAL_DIR")} {($ VSub_Name "$CORRUPTED_JAR")}) (C {(chmod)} {(Lit_Other "+") (w)} {($ VSub_Name "$CORRUPTED_JAR")}) (SimpleCommand words: [{(echo)}] redirects: [ (Redir op_id: Redir_DGreat fd: -1 arg_word: {($ VSub_Name "$CORRUPTED_JAR")} spids: [3012] ) ] ) (C {(echo)} {(DQ ("Abort trap is expected"))}) (AndOr children: [ (SimpleCommand words: [{($ VSub_Name "$IJAR")} {($ VSub_Name "$CORRUPTED_JAR")}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {($ VSub_Name "$TEST_log")} spids: [3031] ) ] ) (AndOr children: [ (C {(fail)} {(DQ ("ijar should have failed"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [3045] ) ] spids: [3045] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (C {(check_ne)} {(0)} {($ VSub_Name "$status")}) (C {(expect_log)} {(DQ ("missing end of central directory record"))}) (C {(let)} { (DQ ("NEW_SIZE = ") (CommandSubPart command_list: (CommandList children: [(C {(statfmt)} {($ VSub_Name "$CORRUPTED_JAR")})] ) left_token: <Left_Backtick "`"> spids: [3072 3076] ) (" - 2") ) } ) (C {(set_file_length)} {($ VSub_Name "$CORRUPTED_JAR")} {($ VSub_Name "$NEW_SIZE")}) (AndOr children: [ (SimpleCommand words: [{($ VSub_Name "$IJAR")} {($ VSub_Name "$CORRUPTED_JAR")}] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {($ VSub_Name "$TEST_log")} spids: [3092] ) ] ) (AndOr children: [ (C {(fail)} {(DQ ("ijar should have failed"))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:status) op: Equal rhs: {($ VSub_QMark "$?")} spids: [3106] ) ] spids: [3106] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (C {(check_ne)} {(0)} {($ VSub_Name "$status")}) (C {(expect_log)} {(DQ ("missing end of central directory record"))}) ] spids: [2974] ) spids: [2968 2973] ) (FuncDef name: test_inner_class_argument body: (BraceGroup children: [ (C {(cd)} {($ VSub_Name "$TEST_TMPDIR")}) (C {(mkdir)} {(-p)} {(a)} {(b)} {(c)}) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(a/A.java)} spids:[3154]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package a;\n") ("\n") ("public class A {\n") (" public static class A2 {\n") (" public int n;\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3158] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(b/B.java)} spids:[3172]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package b;\n") ("import a.A;\n") ("\n") ("public class B {\n") (" public static void b(A.A2 arg) {\n") (" System.out.println(arg.n);\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3176] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id:Redir_Great fd:-1 arg_word:{(c/C.java)} spids:[3191]) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package c;\n") ("import b.B;\n") ("\n") ("public class C {\n") (" public static void c() {\n") (" B.b(null);\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3195] ) ] ) (C {($ VSub_Name "$JAVAC")} {(a/A.java)} {(b/B.java)}) (C {($ VSub_Name "$JAR")} {(cf)} {(lib.jar)} (BracedWordTree parts: [(BracedAltPart words:[{(a)}{(b)}]) (/) (Lit_Other "*") (.class)] ) ) (C {($ VSub_Name "$JAVAC")} {(-cp)} {(lib.jar)} {(c/C.java)}) ] spids: [3132] ) spids: [3126 3131] ) (FuncDef name: test_inner_class_pruning body: (BraceGroup children: [ (C {(cd)} {($ VSub_Name "$TEST_TMPDIR")}) (C {(mkdir)} {(-p)} {(lib/l)} (BracedWordTree parts: [(BracedAltPart words:[{(one)}{(two)}{(three)}]) (/a)] ) ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(lib/l/L.java)} spids: [3277] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package l;\n") ("\n") ("public class L {\n") (" public static class I {\n") (" public static class J {\n") (" public static int number() {\n") (" return 3;\n") (" }\n") (" }\n") (" public static int number() {\n") (" return 2;\n") (" }\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3281] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(one/a/A.java)} spids: [3302] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package a;\n") ("\n") ("public class A {\n") (" public static void message() {\n") (" System.out.println(") (Right_DoubleQuote "\"") ("hello ") (Right_DoubleQuote "\"") (" + 1);\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3306] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(two/a/A.java)} spids: [3324] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package a;\n") ("\n") ("import l.L;\n") ("\n") ("public class A {\n") (" public static void message() {\n") (" System.out.println(") (Right_DoubleQuote "\"") ("hello ") (Right_DoubleQuote "\"") (" + L.I.number());\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3328] ) ] ) (SimpleCommand words: [{(cat)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(three/a/A.java)} spids: [3348] ) (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("package a;\n") ("\n") ("import l.L;\n") ("\n") ("public class A {\n") (" public static void message() {\n") (" System.out.println(") (Right_DoubleQuote "\"") ("hello ") (Right_DoubleQuote "\"") (" + L.I.J.number());\n") (" }\n") ("}\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [3352] ) ] ) (C {($ VSub_Name "$JAVAC")} {(lib/l/L.java)}) (Subshell child: (CommandList children: [ (Sentence child:(C {(cd)} {(lib)}) terminator:<Op_Semi ";">) (C {($ VSub_Name "$JAR")} {(cf)} {(lib.jar)} {(l/) (Lit_Other "*") (.class)}) ] ) spids: [3375 3390] ) (C {($ VSub_Name "$JAVAC")} {(one/a/A.java)}) (Subshell child: (CommandList children: [ (Sentence child:(C {(cd)} {(one)}) terminator:<Op_Semi ";">) (C {($ VSub_Name "$JAR")} {(cf)} {(one.jar)} {(a/) (Lit_Other "*") (.class)}) ] ) spids: [3398 3413] ) (C {($ VSub_Name "$JAVAC")} {(two/a/A.java)} {(-classpath)} {(lib/lib.jar)}) (Subshell child: (CommandList children: [ (Sentence child:(C {(cd)} {(two)}) terminator:<Op_Semi ";">) (C {($ VSub_Name "$JAR")} {(cf)} {(two.jar)} {(a/) (Lit_Other "*") (.class)}) ] ) spids: [3425 3440] ) (C {($ VSub_Name "$JAVAC")} {(three/a/A.java)} {(-classpath)} {(lib/lib.jar)}) (Subshell child: (CommandList children: [ (Sentence child:(C {(cd)} {(three)}) terminator:<Op_Semi ";">) (C {($ VSub_Name "$JAR")} {(cf)} {(three.jar)} {(a/) (Lit_Other "*") (.class)}) ] ) spids: [3452 3467] ) (C {($ VSub_Name "$IJAR")} {(one/one.jar)} {(one/one-ijar.jar)}) (C {($ VSub_Name "$IJAR")} {(one/one.jar)} {(two/two-ijar.jar)}) (C {($ VSub_Name "$IJAR")} {(one/one.jar)} {(three/three-ijar.jar)}) (C {(cmp)} {(one/one-ijar.jar)} {(two/two-ijar.jar)}) (C {(cmp)} {(one/one-ijar.jar)} {(three/three-ijar.jar)}) ] spids: [3249] ) spids: [3243 3248] ) (FuncDef name: test_method_parameters_attribute body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$METHODPARAM_JAR")} {($ VSub_Name "$METHODPARAM_IJAR")} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (SimpleCommand words: [ {($ VSub_Name "$JAVAP")} {(-classpath)} {($ VSub_Name "$METHODPARAM_IJAR")} {(-v)} {(methodparameters.Test)} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [3547] ) ] ) (C {(fail)} {(DQ ("javap failed"))}) ] op_id: Op_DPipe ) (C {(expect_log)} {(DQ (MethodParameters))} {(DQ ("MethodParameters not preserved!"))}) ] spids: [3515] ) spids: [3509 3514] ) (FuncDef name: test_source_debug_extension_attribute body: (BraceGroup children: [ (AndOr children: [ (SimpleCommand words: [ {($ VSub_Name "$IJAR")} {($ VSub_Name "$SOURCEDEBUGEXT_JAR")} {($ VSub_Name "$SOURCEDEBUGEXT_IJAR")} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [3594] ) ] ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (C {(expect_not_log)} {(DQ ("skipping unknown attribute"))}) (AndOr children: [ (SimpleCommand words: [ {($ VSub_Name "$JAVAP")} {(-classpath)} {($ VSub_Name "$SOURCEDEBUGEXT_IJAR")} {(-v)} {(sourcedebugextension.Test)} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: -1 arg_word: {($ VSub_Name "$TEST_log")} spids: [3624] ) ] ) (C {(fail)} {(DQ ("javap failed"))}) ] op_id: Op_DPipe ) (C {(expect_not_log)} {(DQ (SourceDebugExtension))} {(DQ ("SourceDebugExtension preserved!"))} ) ] spids: [3581] ) spids: [3575 3580] ) (FuncDef name: test_central_dir_largest_regular body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$CENTRAL_DIR_LARGEST_REGULAR")} {($ VSub_Name "$TEST_TMPDIR") (/ijar.jar)} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$ZIP_COUNT")} {($ VSub_Name "$TEST_TMPDIR") (/ijar.jar)} {(65535)}) (C {(fail)}) ] op_id: Op_DPipe ) ] spids: [3658] ) spids: [3652 3657] ) (FuncDef name: test_central_dir_smallest_zip64 body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$CENTRAL_DIR_SMALLEST_ZIP64")} {($ VSub_Name "$TEST_TMPDIR") (/ijar.jar)} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$ZIP_COUNT")} {($ VSub_Name "$TEST_TMPDIR") (/ijar.jar)} {(65536)}) (C {(fail)}) ] op_id: Op_DPipe ) ] spids: [3697] ) spids: [3691 3696] ) (FuncDef name: test_central_dir_zip64 body: (BraceGroup children: [ (AndOr children: [ (C {($ VSub_Name "$IJAR")} {($ VSub_Name "$CENTRAL_DIR_ZIP64")} {($ VSub_Name "$TEST_TMPDIR") (/ijar.jar)} ) (C {(fail)} {(DQ ("ijar failed"))}) ] op_id: Op_DPipe ) (AndOr children: [ (C {($ VSub_Name "$ZIP_COUNT")} {($ VSub_Name "$TEST_TMPDIR") (/ijar.jar)} {(70000)}) (C {(fail)}) ] op_id: Op_DPipe ) ] spids: [3736] ) spids: [3730 3735] ) (C {(run_suite)} {(DQ ("ijar tests"))}) ] )