(CommandList children: [ (C {(set)} {(-o)} {(errexit)}) (C {(set)} {(-o)} {(nounset)}) (C {(set)} {(-o)} {(pipefail)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_ROOT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub "$("> spids: [64 72] ) (/../..) } spids: [63] ) ] spids: [63] ) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))}) (C {(kube) (Lit_Other ":") (Lit_Other ":") (golang) (Lit_Other ":") (Lit_Other ":") (setup_env)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_CACHE_MUTATION_DETECTOR) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_CACHE_MUTATION_DETECTOR> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [99 103] ) ) } spids: [97] ) ] spids: [97] ) (C {(export)} {(KUBE_CACHE_MUTATION_DETECTOR)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_PANIC_WATCH_DECODE_ERROR) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_PANIC_WATCH_DECODE_ERROR> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(true)}) spids: [116 120] ) ) } spids: [114] ) ] spids: [114] ) (C {(export)} {(KUBE_PANIC_WATCH_DECODE_ERROR)}) (If arms: [ (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(which)} {(shasum)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [137] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[140]) ] ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SHA1SUM) op: Equal rhs: {(DQ ("shasum -a1"))} spids: [147] ) ] spids: [147] ) ] spids: [-1 144] ) (if_arm cond: [ (Sentence child: (SimpleCommand words: [{(which)} {(sha1sum)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [158] ) (Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[161]) ] ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:SHA1SUM) op: Equal rhs: {(DQ (sha1sum))} spids: [168] ) ] spids: [168] ) ] spids: [152 165] ) ] else_action: [ (SimpleCommand words: [{(echo)} {(DQ ("Failed to find shasum or sha1sum utility."))}] redirects: [(Redir op_id:Redir_GreatAnd fd:-1 arg_word:{(2)} spids:[182])] ) (C {(exit)} {(1)}) ] spids: [173 190] ) (FuncDef name: "kube::test::find_dirs" body: (BraceGroup children: [ (Subshell child: (CommandList children: [ (C {(cd)} {(${ VSub_Name KUBE_ROOT)}) (Pipeline children: [ (C {(find)} {(-L)} {(.)} {(-not)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\(">)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\(">)} {(-path)} {(SQ <"./_artifacts/*">)} {(-o)} {(-path)} {(SQ <"./bazel-*/*">)} {(-o)} {(-path)} {(SQ <"./_output/*">)} {(-o)} {(-path)} {(SQ <"./_gopath/*">)} {(-o)} {(-path)} {(SQ <"./cmd/kubeadm/test/*">)} {(-o)} {(-path)} {(SQ <"./contrib/podex/*">)} {(-o)} {(-path)} {(SQ <"./output/*">)} {(-o)} {(-path)} {(SQ <"./release/*">)} {(-o)} {(-path)} {(SQ <"./target/*">)} {(-o)} {(-path)} {(SQ <"./test/e2e/*">)} {(-o)} {(-path)} {(SQ <"./test/e2e_node/*">)} {(-o)} {(-path)} {(SQ <"./test/integration/*">)} {(-o)} {(-path)} {(SQ <"./third_party/*">)} {(-o)} {(-path)} {(SQ <"./staging/*">)} {(-o)} {(-path)} {(SQ <"./vendor/*">)} {(-o)} {(-path)} {(SQ <"./federation/test/*">)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\)">)} {(-prune)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\)">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} { (DQ ("s|^") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) ("/|") (${ VSub_Name KUBE_GO_PACKAGE) ("/|") ) } ) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[430])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(-L)} {(.)} {(-path)} {(SQ <./_output>)} {(-prune)} {(-o)} {(-path)} {(SQ <"./vendor/k8s.io/client-go/*">)} {(-o)} {(-path)} {(SQ <"./vendor/k8s.io/apiserver/*">)} {(-o)} {(-path)} {(SQ <"./test/e2e_node/system/*">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} { (DQ ("s|^") (EscapedLiteralPart token:<Lit_EscapedChar "\\.">) ("/|") (${ VSub_Name KUBE_GO_PACKAGE) ("/|") ) } ) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[519])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(./staging/src/k8s.io/client-go)} {(-name)} {(SQ <"*_test.go">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} {(SQ <"s|^\\./staging/src/|./vendor/|">)}) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[570])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(./staging/src/k8s.io/apiserver)} {(-name)} {(SQ <"*_test.go">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} {(SQ <"s|^\\./staging/src/|./vendor/|">)}) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[621])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(./staging/src/k8s.io/apimachinery)} {(-name)} {(SQ <"*_test.go">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} {(SQ <"s|^\\./staging/src/|./vendor/|">)}) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[672])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(./staging/src/k8s.io/kube-aggregator)} {(-name)} {(SQ <"*_test.go">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} {(SQ <"s|^\\./staging/src/|./vendor/|">)}) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[719])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(./staging/src/k8s.io/apiextensions-apiserver)} {(-not)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\(">)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\(">)} {(-path)} {(SQ <"*/test/integration/*">)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\)">)} {(-prune)} {(EscapedLiteralPart token:<Lit_EscapedChar "\\)">)} {(-name)} {(SQ <"*_test.go">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} {(SQ <"s|^\\./staging/src/|./vendor/|">)}) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[792])] ) ] negated: False ) (Pipeline children: [ (C {(find)} {(./staging/src/k8s.io/sample-apiserver)} {(-name)} {(SQ <"*_test.go">)} {(-name)} {(SQ <"*_test.go">)} {(-print0)} ) (C {(xargs)} {(-0n1)} {(dirname)}) (C {(sed)} {(SQ <"s|^\\./staging/src/|./vendor/|">)}) (SimpleCommand words: [{(sort)} {(-u)}] more_env: [(env_pair name:LC_ALL val:{(C)} spids:[839])] ) ] negated: False ) ] ) spids: [206 847] ) ] spids: [203] ) spids: [193 202] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_TIMEOUT) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_TIMEOUT> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{("-timeout 120s")}) spids: [853 857] ) } spids: [852] ) ] spids: [852] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_COVER) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_COVER> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(n)}) spids: [860 864] ) } spids: [859] ) ] spids: [859] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_COVERMODE) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_COVERMODE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(atomic)}) spids: [870 874] ) } spids: [869] ) ] spids: [869] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_COVERPROCS) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_COVERPROCS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(4)}) spids: [883 887] ) } spids: [882] ) ] spids: [882] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_RACE) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_RACE> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [890 893] ) } spids: [889] ) ] spids: [889] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_GOVERALLS_BIN) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_GOVERALLS_BIN> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [902 905] ) } spids: [901] ) ] spids: [901] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ALL_VERSIONS_CSV) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Sentence child: (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(SQ <",">)} spids: [924] ) ] spids: [924] ) terminator: <Op_Semi ";"> ) (Sentence child: (C {(echo)} { (DQ (BracedVarSub token: <VSub_Name KUBE_AVAILABLE_GROUP_VERSIONS> bracket_op: (WholeArray op_id:Arith_Star) suffix_op: (PatSub pat: {(" ")} replace: {(",")} do_all: True do_prefix: False do_suffix: False ) spids: [932 942] ) ) } ) terminator: <Op_Semi ";"> ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:IFS) op: Equal rhs: {(Lit_Other "$")} spids: [945] ) ] spids: [945] ) ] ) left_token: <Left_CommandSub "$("> spids: [923 947] ) (Lit_Comma ",") (federation/v1beta1) } spids: [922] ) ] spids: [922] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_TEST_API_VERSIONS) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_TEST_API_VERSIONS> suffix_op: (StringUnary op_id: VTest_ColonHyphen arg_word: {(${ VSub_Name ALL_VERSIONS_CSV)} ) spids: [953 959] ) ) } spids: [951] ) ] spids: [951] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_JUNIT_REPORT_DIR) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_JUNIT_REPORT_DIR> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{}) spids: [969 972] ) } spids: [968] ) ] spids: [968] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_KEEP_VERBOSE_TEST_OUTPUT) op: Equal rhs: { (BracedVarSub token: <VSub_Name KUBE_KEEP_VERBOSE_TEST_OUTPUT> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(n)}) spids: [981 985] ) } spids: [980] ) ] spids: [980] ) (FuncDef name: "kube::test::usage" body: (BraceGroup children: [ (SimpleCommand words: [ {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (usage_from_stdin) } ] redirects: [ (HereDoc op_id: Redir_DLess fd: -1 body: { (DQ ("usage: ") ($ VSub_Number "$0") (" [OPTIONS] [TARGETS]\n") ("\n") ("OPTIONS:\n") (" -p <number> : number of parallel workers, must be >= 1\n") ) } do_expansion: True here_end: EOF was_filled: True spids: [1009] ) ] ) ] spids: [998] ) spids: [988 997] ) (FuncDef name: isnum body: (BraceGroup children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(DQ ($ VSub_Number "$1"))} right: {(Lit_Other "^") (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "+") (Lit_Other "$") } ) ) ] spids: [1025] ) spids: [1021 1024] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PARALLEL) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name PARALLEL> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(1)}) spids: [1050 1054] ) ) } spids: [1048] ) ] spids: [1048] ) (While cond: [(Sentence child:(C {(getopts)} {(DQ ("hp:i:"))} {(opt)}) terminator:<Op_Semi ";">)] body: (DoGroup children: [ (Case to_match: {($ VSub_Name "$opt")} arms: [ (case_arm pat_list: [{(h)}] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (test) (Lit_Other ":") (Lit_Other ":") (usage) } ) (C {(exit)} {(0)}) ] spids: [1079 1080 1097 -1] ) (case_arm pat_list: [{(p)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PARALLEL) op: Equal rhs: {(DQ ($ VSub_Name "$OPTARG"))} spids: [1104] ) ] spids: [1104] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (Pipeline children: [(C {(isnum)} {(DQ (${ VSub_Name PARALLEL))})] negated: True ) (DBracket expr: (BoolBinary op_id: BoolBinary_le left: {(DQ (${ VSub_Name PARALLEL))} right: {(0)} ) ) ] op_id: Op_DPipe ) terminator: <Op_Semi ";"> ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (usage) } {(DQ ("'") ($ VSub_Number "$0") ("': argument to -p must be numeric and greater than 0"))} ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (test) (Lit_Other ":") (Lit_Other ":") (usage) } ) (C {(exit)} {(1)}) ] spids: [-1 1139] ) ] spids: [-1 1171] ) ] spids: [1100 1101 1174 -1] ) (case_arm pat_list: [{(i)}] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (usage) } {(DQ ("'") ($ VSub_Number "$0") ("': use GOFLAGS='-count <num-iterations>'"))} ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (test) (Lit_Other ":") (Lit_Other ":") (usage) } ) (C {(exit)} {(1)}) ] spids: [1177 1178 1210 -1] ) (case_arm pat_list: [{(Lit_Other "?")}] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (test) (Lit_Other ":") (Lit_Other ":") (usage) } ) (C {(exit)} {(1)}) ] spids: [1213 1214 1231 -1] ) (case_arm pat_list: [{(Lit_Other ":")}] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (usage) } {(DQ ("Option -") ($ VSub_Name "$OPTARG") (" <value>"))} ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (test) (Lit_Other ":") (Lit_Other ":") (usage) } ) (C {(exit)} {(1)}) ] spids: [1234 1235 1267 -1] ) ] spids: [1072 1076 1270] ) ] spids: [1069 1272] ) ) (C {(shift)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithVarRef name:OPTIND) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1276 1283] ) } ) (C {(eval)} { (DQ ("goflags=(") (BracedVarSub token: <VSub_Name GOFLAGS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1293 1296] ) (")") ) } ) (C {(eval)} { (DQ ("testargs=(") (BracedVarSub token: <VSub_Name KUBE_TEST_ARGS> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [1304 1307] ) (")") ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:go_test_grep_pattern) op: Equal rhs: {(DQ (".*"))} spids: [1315] ) ] spids: [1315] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id:BoolUnary_n child:{(DQ (${ VSub_Name KUBE_JUNIT_REPORT_DIR))}) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:goflags) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(-v)}])} spids: [1346] ) ] spids: [1346] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:go_test_grep_pattern) op: Equal rhs: { (DQ ("^[^[:space:]]") (EscapedLiteralPart token:<Lit_EscapedChar "\\+">) ("[[:space:]]") (EscapedLiteralPart token:<Lit_EscapedChar "\\+">) ("[^[:space:]]") (EscapedLiteralPart token:<Lit_EscapedChar "\\+">) ("/[^[[:space:]]") (EscapedLiteralPart token:<Lit_EscapedChar "\\+">) ) } spids: [1356] ) ] spids: [1356] ) ] spids: [-1 1343] ) ] spids: [-1 1368] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:testcases) op: Equal rhs: {(ArrayLiteralPart)} spids: [1374] ) ] spids: [1374] ) (ForEach iter_name: arg do_arg_iter: True body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name arg))} right: {(-) (Lit_Other "*")} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:goflags) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_Name arg))}])} spids: [1407] ) ] spids: [1407] ) ] spids: [-1 1404] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:testcases) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_Name arg))}])} spids: [1420] ) ] spids: [1420] ) ] spids: [1417 1430] ) ] spids: [1383 1432] ) spids: [-1 -1] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: { (BracedVarSub token: <VSub_Name testcases> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1438 1444] ) } right: {(0)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:testcases) op: Equal rhs: { (ArrayLiteralPart words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (test) (Lit_Other ":") (Lit_Other ":") (find_dirs) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1458 1466] ) } ] ) } spids: [1456] ) ] spids: [1456] ) ] spids: [-1 1453] ) ] spids: [-1 1469] ) (C {(set)} {(--)} { (DQ (BracedVarSub token: <VSub_Name testcases> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_Plus arg_word: { (BracedVarSub token: <VSub_Name testcases> bracket_op: (WholeArray op_id:Lit_At) spids: [1482 1487] ) } ) spids: [1476 1488] ) ) } ) (FuncDef name: junitFilenamePrefix body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: {(DQ (${ VSub_Name KUBE_JUNIT_REPORT_DIR))} ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ )}) (ControlFlow token:<ControlFlow_Return return>)] spids: [-1 1514] ) ] spids: [-1 1526] ) (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name KUBE_JUNIT_REPORT_DIR))}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:KUBE_TEST_API_HASH) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} { (DQ (BracedVarSub token: <VSub_Name KUBE_TEST_API> suffix_op: (PatSub pat: { (EscapedLiteralPart token: <Lit_EscapedChar "\\/"> ) } replace: {(-)} do_all: True do_prefix: False do_suffix: False ) spids: [1570 1577] ) ) } ) (C {(${ VSub_Name SHA1SUM)}) (C {(awk)} {(SQ <"{print $1}">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1564 1591] ) ) } spids: [1562] ) ] spids: [1560] ) (C {(echo)} { (DQ (${ VSub_Name KUBE_JUNIT_REPORT_DIR) (/junit_) (${ VSub_Name KUBE_TEST_API_HASH) (_) (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (util) (Lit_Other ":") (Lit_Other ":") (sortable_date) } ) ] ) left_token: <Left_CommandSub "$("> spids: [1606 1614] ) ) } ) ] spids: [1496] ) spids: [1492 1495] ) (FuncDef name: verifyAndSuggestPackagePath body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:specified_package_path) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [1629] ) ] spids: [1627] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:alternative_package_path) op: Equal rhs: {(DQ ($ VSub_Number "$2"))} spids: [1637] ) ] spids: [1635] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:original_package_path) op: Equal rhs: {(DQ ($ VSub_Number "$3"))} spids: [1645] ) ] spids: [1643] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:suggestion_package_path) op: Equal rhs: {(DQ ($ VSub_Number "$4"))} spids: [1653] ) ] spids: [1651] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Name "$specified_package_path"))} {(Lit_Other "]")} ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:printable_package_path) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ ($ VSub_Name "$specified_package_path"))}) (C {(sed)} { (DQ ("s|") ($ VSub_Name "$GOPATH") ("|") (EscapedLiteralPart token: <Lit_EscapedChar "\\$"> ) ("GOPATH|") ) } ) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [1693 1711] ) } spids: [1692] ) ] spids: [1690] ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (error) } {(DQ ("specified test path '") ($ VSub_Name "$printable_package_path") ("' does not exist"))} ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-d)} {(DQ ($ VSub_Name "$alternative_package_path"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (info) } { (DQ ("try changing ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$original_package_path") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" to ") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ($ VSub_Name "$suggestion_package_path") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } ) ] spids: [-1 1743] ) ] spids: [-1 1766] ) (C {(exit)} {(1)}) ] spids: [-1 1675] ) ] spids: [-1 1774] ) ] spids: [1624] ) spids: [1620 1623] ) (FuncDef name: verifyPathsToPackagesUnderTest body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:packages_under_test) op: Equal rhs: {(ArrayLiteralPart words:[{($ VSub_At "$@")}])} spids: [1788] ) ] spids: [1786] ) (ForEach iter_name: package_path iter_words: [ { (DQ (BracedVarSub token: <VSub_Name packages_under_test> bracket_op: (WholeArray op_id:Lit_At) spids: [1802 1807] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:local_package_path) op: Equal rhs: {(DQ ($ VSub_Name "$package_path"))} spids: [1816] ) ] spids: [1814] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:go_package_path) op: Equal rhs: {(DQ ($ VSub_Name "$GOPATH") (/src/) ($ VSub_Name "$package_path"))} spids: [1824] ) ] spids: [1822] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name package_path> suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 0)}) length: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1838 1844] ) ) } right: {(DQ (./))} ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(verifyAndSuggestPackagePath)} {(DQ ($ VSub_Name "$local_package_path"))} {(DQ ($ VSub_Name "$go_package_path"))} {(DQ ($ VSub_Name "$package_path"))} { (DQ (BracedVarSub token: <VSub_Name package_path> suffix_op: (Slice begin:(ArithWord w:{(Lit_Digits 2)})) spids: [1875 1879] ) ) } ) ] spids: [-1 1857] ) ] else_action: [ (C {(verifyAndSuggestPackagePath)} {(DQ ($ VSub_Name "$go_package_path"))} {(DQ ($ VSub_Name "$local_package_path"))} {(DQ ($ VSub_Name "$package_path"))} {(DQ (./) ($ VSub_Name "$package_path"))} ) ] spids: [1883 1906] ) ] spids: [1811 1909] ) spids: [1800 1809] ) ] spids: [1783] ) spids: [1779 1782] ) (FuncDef name: produceJUnitXMLReport body: (BraceGroup children: [ (Assignment keyword: Assign_Local flags: ["'-r'"] pairs: [ (assign_pair lhs: (LhsName name:junit_filename_prefix) op: Equal rhs: {($ VSub_Number "$1")} spids: [1925] ) ] spids: [1921] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolUnary op_id: BoolUnary_z child: {(DQ (${ VSub_Name junit_filename_prefix))} ) ) terminator: <Op_Semi ";"> ) ] action: [(ControlFlow token:<ControlFlow_Return return>)] spids: [-1 1944] ) ] spids: [-1 1950] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:test_stdout_filenames) op:Equal spids:[1956])] spids: [1954] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:junit_xml_filename) op:Equal spids:[1961])] spids: [1959] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_stdout_filenames) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(ls)} {(${ VSub_Name junit_filename_prefix) (Lit_Other "*") (.stdout)} ) ] ) left_token: <Left_CommandSub "$("> spids: [1965 1973] ) } spids: [1964] ) ] spids: [1964] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:junit_xml_filename) op: Equal rhs: {(DQ (${ VSub_Name junit_filename_prefix) (.xml))} spids: [1976] ) ] spids: [1976] ) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (SimpleCommand words: [{(command)} {(-v)} {(go-junit-report)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(/dev/null)} spids: [1995] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(1)} spids: [1998] ) ] ) ] negated: True ) terminator: <Op_Semi ";"> ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (error) } {(DQ ("go-junit-report not found; please install with "))} {(DQ ("go get -u github.com/jstemmer/go-junit-report"))} ) (ControlFlow token:<ControlFlow_Return return>) ] spids: [-1 2002] ) ] spids: [-1 2027] ) (Pipeline children: [ (C {(cat)} {(${ VSub_Name test_stdout_filenames)}) (SimpleCommand words: [{(go-junit-report)}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name junit_xml_filename))} spids: [2040] ) ] ) ] negated: False ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolBinary op_id: BoolBinary_EqualTilde left: {(${ VSub_Name KUBE_KEEP_VERBOSE_TEST_OUTPUT)} right: {(Lit_Other "^") (Lit_Other "[") (yY) (Lit_Other "]") (Lit_Other "$") } ) ) ) terminator: <Op_Semi ";"> ) ] action: [(C {(rm)} {(${ VSub_Name test_stdout_filenames)})] spids: [-1 2070] ) ] spids: [-1 2080] ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} {(DQ ("Saved JUnit XML test report to ") (${ VSub_Name junit_xml_filename))} ) ] spids: [1918] ) spids: [1914 1917] ) (FuncDef name: runTests body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:junit_filename_prefix) op:Equal spids:[2110])] spids: [2108] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:junit_filename_prefix) op: Equal rhs: { (CommandSubPart command_list: (CommandList children:[(C {(junitFilenamePrefix)})]) left_token: <Left_CommandSub "$("> spids: [2114 2116] ) } spids: [2113] ) ] spids: [2113] ) (C {(verifyPathsToPackagesUnderTest)} {(DQ ($ VSub_At "$@"))}) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalNot child: (BoolBinary op_id: BoolBinary_EqualTilde left: {(${ VSub_Name KUBE_COVER)} right: {(Lit_Other "^") (Lit_Other "[") (yY) (Lit_Other "]") (Lit_Other "$") } ) ) ) terminator: <Op_Semi ";"> ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status) } {(DQ ("Running tests without code coverage"))} ) (C {(go)} {(test)} {(-i)} { (DQ (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) spids: [2198 2203] ) } ) spids: [2192 2204] ) ) } {(${ VSub_Name KUBE_RACE)} {(${ VSub_Name KUBE_TIMEOUT)} {(DQ (${ VSub_At "@"))} { (DQ (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) spids: [2232 2237] ) } ) spids: [2226 2238] ) ) } ) (AndOr children: [ (Pipeline children: [ (C {(go)} {(test)} { (DQ (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) spids: [2253 2258] ) } ) spids: [2247 2259] ) ) } {(${ VSub_Name KUBE_RACE)} {(${ VSub_Name KUBE_TIMEOUT)} {(DQ (${ VSub_At "@"))} { (DQ (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) spids: [2287 2292] ) } ) spids: [2281 2293] ) ) } ) (C {(tee)} { (BracedVarSub token: <VSub_Name junit_filename_prefix> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(DQ (${ VSub_Name junit_filename_prefix) (.stdout))} ) spids: [2302 2311] ) } ) (C {(grep)} {(DQ (${ VSub_Name go_test_grep_pattern))}) ] negated: False ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rc) op: Equal rhs: {($ VSub_QMark "$?")} spids: [2327] ) ] spids: [2327] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:rc) op: Equal rhs: {($ VSub_QMark "$?")} spids: [2332] ) ] spids: [2332] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (C {(produceJUnitXMLReport)} {(DQ (${ VSub_Name junit_filename_prefix))}) (ControlFlow token: <ControlFlow_Return return> arg_word: {(${ VSub_Name rc)} ) ] spids: [-1 2157] ) ] spids: [-1 2352] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:KUBE_TEST_API_HASH) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-n)} { (DQ (BracedVarSub token: <VSub_Name KUBE_TEST_API> suffix_op: (PatSub pat: { (EscapedLiteralPart token: <Lit_EscapedChar "\\/"> ) } replace: {(-)} do_all: True do_prefix: False do_suffix: False ) spids: [2368 2375] ) ) } ) (C {(${ VSub_Name SHA1SUM)}) (C {(awk)} {(SQ <"{print $1}">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2362 2389] ) ) } spids: [2360] ) ] spids: [2360] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cover_report_dir) op: Equal rhs: { (DQ (/tmp/k8s_coverage/) (${ VSub_Name KUBE_TEST_API_HASH) (/) (CommandSubPart command_list: (CommandList children: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (util) (Lit_Other ":") (Lit_Other ":") (sortable_date) } ) ] ) left_token: <Left_CommandSub "$("> spids: [2400 2408] ) ) } spids: [2393] ) ] spids: [2393] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cover_profile) op: Equal rhs: {(DQ (coverage.out))} spids: [2412] ) ] spids: [2412] ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} {(DQ ("Saving coverage output in '") (${ VSub_Name cover_report_dir) ("'"))} ) (C {(mkdir)} {(-p)} { (DQ (BracedVarSub token: <VSub_At "@"> suffix_op: (StringUnary op_id: VTest_Plus arg_word: { (BracedVarSub token: <VSub_At "@"> suffix_op: (PatSub pat: {} replace: {(${ VSub_Name cover_report_dir) (Lit_Slash /)} do_all: False do_prefix: True do_suffix: False ) spids: [2446 2455] ) } ) spids: [2443 2456] ) ) } ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:cover_ignore_dirs) op: Equal rhs: { (DQ ( "vendor/k8s.io/code-generator/cmd/generator|vendor/k8s.io/client-go/1.4/rest" ) ) } spids: [2518] ) ] spids: [2518] ) (ForEach iter_name: path iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name "$cover_ignore_dirs")}) (C {(sed)} {(SQ <"s/|/ /g">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [2530 2542] ) } ] do_arg_iter: False body: (DoGroup children: [ (C {(echo)} {(-e)} { (DQ (skipped) (EscapedLiteralPart token:<Lit_EscapedChar "\\t">) (k8s.io/kubernetes/) ($ VSub_Name "$path") ) } ) ] spids: [2545 2560] ) spids: [2529 2543] ) (AndOr children: [ (Pipeline children: [ (C {(printf)} {(DQ ("%s") (EscapedLiteralPart token:<Lit_EscapedChar "\\n">))} {(DQ (${ VSub_At "@"))} ) (C {(grep)} {(-Ev)} {($ VSub_Name "$cover_ignore_dirs")}) (C {(xargs)} {(-I) (Lit_LBrace "{") (Lit_RBrace "}")} {(-n)} {(1)} {(-P)} {(${ VSub_Name KUBE_COVERPROCS)} {(bash)} {(-c)} { (DQ ("set -o pipefail; _pkg=") (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (0) (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) ("; _pkg_out=") (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{_pkg//") (EscapedLiteralPart token:<Lit_EscapedChar "\\/">) ("/_}; ") (" go test -i ") (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) spids: [2647 2652] ) } ) spids: [2641 2653] ) (" ") (" ") (${ VSub_Name KUBE_RACE) (" ") (" ") (${ VSub_Name KUBE_TIMEOUT) (" ") (" -cover -covermode=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name KUBE_COVERMODE) (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (" ") (" -coverprofile=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name cover_report_dir) (/) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{_pkg}/") (${ VSub_Name cover_profile) (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (" ") (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{_pkg}") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ") (" ") (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) spids: [2704 2709] ) } ) spids: [2698 2710] ) ("\n") (" go test ") (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name goflags> bracket_op: (WholeArray op_id:Lit_At) spids: [2719 2724] ) } ) spids: [2713 2725] ) (" ") (" ") (${ VSub_Name KUBE_RACE) (" ") (" ") (${ VSub_Name KUBE_TIMEOUT) (" ") (" -cover -covermode=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name KUBE_COVERMODE) (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (" ") (" -coverprofile=") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name cover_report_dir) (/) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{_pkg}/") (${ VSub_Name cover_profile) (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) (" ") (" ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) ("{_pkg}") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (" ") (" ") (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: { (BracedVarSub token: <VSub_Name testargs> bracket_op: (WholeArray op_id:Lit_At) spids: [2776 2781] ) } ) spids: [2770 2782] ) (" ") (" | tee ") (BracedVarSub token: <VSub_Name junit_filename_prefix> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name junit_filename_prefix) (-) (EscapedLiteralPart token:<Lit_EscapedChar "\\$">) (_pkg_out.stdout) (EscapedLiteralPart token: <Lit_EscapedChar "\\\""> ) } ) spids: [2786 2797] ) (" ") (" | grep ") (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) (${ VSub_Name go_test_grep_pattern) (EscapedLiteralPart token:<Lit_EscapedChar "\\\"">) ) } {(Lit_LBrace "{") (Lit_RBrace "}")} ) ] negated: False ) (AndOr children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_result) op: Equal rhs: {($ VSub_QMark "$?")} spids: [2817] ) ] spids: [2817] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_result) op: Equal rhs: {($ VSub_QMark "$?")} spids: [2822] ) ] spids: [2822] ) ] op_id: Op_DPipe ) ] op_id: Op_DAmp ) (C {(produceJUnitXMLReport)} {(DQ (${ VSub_Name junit_filename_prefix))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:COMBINED_COVER_PROFILE) op: Equal rhs: {(DQ (${ VSub_Name cover_report_dir) (/combined-coverage.out))} spids: [2837] ) ] spids: [2837] ) (BraceGroup children: [ (C {(echo)} {(DQ ("mode: ") (${ VSub_Name KUBE_COVERMODE))}) (ForEach iter_name: x iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(DQ (${ VSub_Name cover_report_dir))} {(-name)} {(DQ (${ VSub_Name cover_profile))} ) ] ) left_token: <Left_Backtick "`"> spids: [2890 2906] ) } ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (Pipeline children: [ (C {(cat)} {($ VSub_Name "$x")}) (C {(grep)} {(-h)} {(-v)} {(DQ ("^mode:"))}) ] negated: False ) (C {(true)}) ] op_id: Op_DPipe ) ] spids: [2909 2933] ) spids: [2889 2907] ) ] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ (${ VSub_Name COMBINED_COVER_PROFILE))} spids: [2938] ) ] spids: [2846] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:coverage_html_file) op: Equal rhs: {(DQ (${ VSub_Name cover_report_dir) (/combined-coverage.html))} spids: [2947] ) ] spids: [2947] ) (C {(go)} {(tool)} {(cover)} {(-html) (Lit_Other "=") (DQ (${ VSub_Name COMBINED_COVER_PROFILE))} {(-o) (Lit_Other "=") (DQ (${ VSub_Name coverage_html_file))} ) (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status)} {(DQ ("Combined coverage report: ") (${ VSub_Name coverage_html_file))} ) (ControlFlow token: <ControlFlow_Return return> arg_word: {(${ VSub_Name test_result)} ) ] spids: [2105] ) spids: [2101 2104] ) (FuncDef name: reportCoverageToCoveralls body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {(${ VSub_Name KUBE_COVER)} right: {(Lit_Other "^") (Lit_Other "[") (yY) (Lit_Other "]") (Lit_Other "$") } ) ) (DBracket expr: (BoolUnary op_id: BoolUnary_x child: {(DQ (${ VSub_Name KUBE_GOVERALLS_BIN))} ) ) ] op_id: Op_DAmp ) terminator: <Op_Semi ";"> ) ] action: [ (C {(kube) (Lit_Other ":") (Lit_Other ":") (log) (Lit_Other ":") (Lit_Other ":") (status) } { (DQ ("Reporting coverage results to Coveralls for service ") (BracedVarSub token: <VSub_Name CI_NAME> suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )}) spids: [3058 3061] ) ) } ) (AndOr children: [ (C {(${ VSub_Name KUBE_GOVERALLS_BIN)} {(-coverprofile) (Lit_Other "=") (DQ (${ VSub_Name COMBINED_COVER_PROFILE))} { (BracedVarSub token: <VSub_Name CI_NAME> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(DQ ("-service=") (${ VSub_Name CI_NAME))} ) spids: [3079 3088] ) } { (BracedVarSub token: <VSub_Name COVERALLS_REPO_TOKEN> suffix_op: (StringUnary op_id: VTest_ColonPlus arg_word: {(DQ ("-repotoken=") (${ VSub_Name COVERALLS_REPO_TOKEN))} ) spids: [3092 3101] ) } ) (C {(true)}) ] op_id: Op_DPipe ) ] spids: [-1 3045] ) ] spids: [-1 3110] ) ] spids: [3009] ) spids: [3005 3008] ) (FuncDef name: checkFDs body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:fileslimit) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children:[(C {(ulimit)} {(-n)})]) left_token: <Left_CommandSub "$("> spids: [3134 3138] ) ) } spids: [3132] ) ] spids: [3130] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_lt left: {($ VSub_Name "$fileslimit")} right: {(1000)} ) ) terminator: <Op_Semi ";"> ) ] action: [ (Sentence child: (C {(echo)} { (DQ ("WARNING: ulimit -n (files) should be at least 1000, is ") ($ VSub_Name "$fileslimit") (", may cause test failure") ) } ) terminator: <Op_Semi ";"> ) ] spids: [-1 3155] ) ] spids: [-1 3168] ) ] spids: [3119] ) spids: [3115 3118] ) (C {(checkFDs)}) (SimpleCommand words: [{(read)} {(-a)} {(apiVersions)}] redirects: [ (Redir op_id: Redir_TLess fd: -1 arg_word: {(DQ (${ VSub_Name KUBE_TEST_API_VERSIONS))} spids: [3191] ) ] more_env: [(env_pair name:IFS val:{(SQ <";">)} spids:[3180])] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:apiVersionsCount) op: Equal rhs: { (BracedVarSub token: <VSub_Name apiVersions> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [3200 3206] ) } spids: [3199] ) ] spids: [3199] ) (ForExpr init: (BinaryAssign op_id:Arith_Equal left:(LhsName name:i) right:(ArithWord w:{(Lit_Digits 0)})) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w:{(${ VSub_Name apiVersionsCount)}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:apiVersion) op: Equal rhs: { (BracedVarSub token: <VSub_Name apiVersions> bracket_op: (ArrayIndex expr:(ArithVarRef name:i)) spids: [3235 3240] ) } spids: [3234] ) ] spids: [3234] ) (C {(echo)} {(DQ ("Running tests for APIVersion: ") ($ VSub_Name "$apiVersion"))}) (SimpleCommand words: [{(runTests)} {(DQ ($ VSub_At "$@"))}] more_env: [ (env_pair name: KUBE_TEST_API val: {(DQ (${ VSub_Name apiVersion))} spids: [3255] ) ] ) ] spids: [3231 3268] ) ) (C {(reportCoverageToCoveralls)}) ] )