(command.CommandList children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName NO_CURL))})] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all) op: assign_op.Equal rhs: {(SQ <'skipping test, git built without http support'>)} spids: [107] ) ] redirects: [] ) (C {<test_done>}) ] spids: [94 104] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName NO_EXPAT))}) (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_DAV))}) ] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all) op: assign_op.Equal rhs: {(SQ <'skipping test, git built without expat support'>)} spids: [141] ) ] redirects: [] ) (C {<test_done>}) ] spids: [118 138] ) ] else_action: [] redirects: [] ) (C {<test_tristate>} {<GIT_TEST_HTTPD>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<test>} {(DQ ($ Id.VSub_DollarName GIT_TEST_HTTPD))} {<Id.Lit_Equals '='>} {<false>}) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'skip_all='> name:skip_all) op: assign_op.Equal rhs: {(DQ <'Network testing disabled (unset GIT_TEST_HTTPD to enable)'>)} spids: [171] ) ] redirects: [] ) (C {<test_done>}) ] spids: [156 168] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [(C {<test_have_prereq>} {<NOT_ROOT>})] negated: T stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName GIT_TEST_HTTPD)} {(DQ <'Cannot run httpd tests as root'>)} ) ] spids: [182 191] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_PARA='> name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ )} spids: [207] ) ] redirects: [] ) (command.ForEach iter_names: [DEFAULT_HTTPD_PATH] iterable: (for_iter.Words words:[{(SQ <'/usr/sbin/httpd'>)} {(SQ <'/usr/sbin/apache2'>)}]) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {<-x>} {(DQ ($ Id.VSub_DollarName DEFAULT_HTTPD_PATH))})] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [229 240] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.ForEach iter_names: [DEFAULT_HTTPD_MODULE_PATH] iterable: (for_iter.Words words: [ {(SQ <'/usr/libexec/apache2'>)} {(SQ <'/usr/lib/apache2/modules'>)} {(SQ <'/usr/lib64/httpd/modules'>)} {(SQ <'/usr/lib/httpd/modules'>)} ] ) body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName DEFAULT_HTTPD_MODULE_PATH))}) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Break break>)] spids: [282 293] ) ] else_action: [] redirects: [] ) ] ) redirects: [] ) (command.Case to_match: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<uname>}) right: <Id.Eof_RParen _> ) } arms: [ (case_arm pat_list: [{<Darwin>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_PARA='> name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName HTTPD_PARA) <' -DDarwin'>)} spids: [317] ) ] redirects: [] ) ] spids: [313 314 324 -1] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_HTTPD_PATH='> name:LIB_HTTPD_PATH) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LIB_HTTPD_PATH> var_name: LIB_HTTPD_PATH suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: {(DQ ($ Id.VSub_DollarName DEFAULT_HTTPD_PATH))} ) right: <Id.Right_DollarBrace '}'> ) } spids: [329] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LIB_HTTPD_PORT='> name:LIB_HTTPD_PORT) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name LIB_HTTPD_PORT> var_name: LIB_HTTPD_PORT suffix_op: (suffix_op.Unary op: <Id.VTest_Hyphen _> arg_word: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name this_test> var_name: this_test suffix_op: (suffix_op.Unary op:<Id.VOp1_Pound '#'> arg_word:{<t>}) right: <Id.Right_DollarBrace '}'> ) } ) right: <Id.Right_DollarBrace '}'> ) } spids: [338] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'TEST_PATH='> name:TEST_PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName TEST_DIRECTORY)) <'/lib-httpd'>} spids: [350] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_ROOT_PATH='> name:HTTPD_ROOT_PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName PWD)) <'/httpd'>} spids: [356] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HTTPD_DOCUMENT_ROOT_PATH='> name: HTTPD_DOCUMENT_ROOT_PATH ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HTTPD_ROOT_PATH) <'/www'>} spids: [362] ) ] redirects: [] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_VALGRIND='> name:GIT_VALGRIND) op: assign_op.Equal rhs: {($ Id.VSub_DollarName GIT_VALGRIND)} spids: [370] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<GIT_VALGRIND>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_VALGRIND_OPTIONS='> name: GIT_VALGRIND_OPTIONS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName GIT_VALGRIND_OPTIONS)} spids: [378] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<GIT_VALGRIND_OPTIONS>}) ] ) (command.CommandList children: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'GIT_TRACE='> name:GIT_TRACE) op: assign_op.Equal rhs: {($ Id.VSub_DollarName GIT_TRACE)} spids: [386] ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (C {<export>} {<GIT_TRACE>}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [(C {<test>} {<-x>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_PATH))})] negated: T stderr_indices: [] ) ] ) action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName GIT_TEST_HTTPD)} {(DQ <'no web server found at \''> ($ Id.VSub_DollarName LIB_HTTPD_PATH) <'\''>)} ) ] spids: [395 407] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_VERSION='> name:HTTPD_VERSION) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {($ Id.VSub_DollarName LIB_HTTPD_PATH)} {<-v>}) (C {<sed>} {<-n>} {(SQ <'s/^Server version: Apache\\/\\([0-9]*\\)\\..*$/\\1/p; q'>)} ) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [423] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName HTTPD_VERSION))})] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_MODULE_PATH))})] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<test>} {($ Id.VSub_DollarName HTTPD_VERSION)} {<-ge>} {<2>}) ] negated: T stderr_indices: [] ) ] ) action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName GIT_TEST_HTTPD)} {(DQ <'at least Apache version 2 is required'>)} ) ] spids: [470 483] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<test>} {<-d>} {(DQ ($ Id.VSub_DollarName DEFAULT_HTTPD_MODULE_PATH))} ) ] negated: T stderr_indices: [] ) ] ) action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName GIT_TEST_HTTPD)} {(DQ <'Apache module directory not found'>)} ) ] spids: [500 513] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'LIB_HTTPD_MODULE_PATH='> name: LIB_HTTPD_MODULE_PATH ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName DEFAULT_HTTPD_MODULE_PATH))} spids: [531] ) ] redirects: [] ) ] spids: [456 467] ) ] else_action: [] redirects: [] ) ] spids: [443 453] ) ] else_action: [ (C {<test_skip_or_die>} {($ Id.VSub_DollarName GIT_TEST_HTTPD)} {(DQ <'Could not identify web server at \''> ($ Id.VSub_DollarName LIB_HTTPD_PATH) <'\''>)} ) ] redirects: [] ) (command.ShFunction name: install_script body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [ {<write_script>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH) <'/'> ($ Id.VSub_Number 1))} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {(DQ ($ Id.VSub_DollarName TEST_PATH) <'/'> ($ Id.VSub_Number 1))} ) ] more_env: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: prepare_httpd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<mkdir>} {<-p>} {(DQ ($ Id.VSub_DollarName HTTPD_DOCUMENT_ROOT_PATH))}) (C {<cp>} {(DQ ($ Id.VSub_DollarName TEST_PATH)) <'/passwd'>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH))} ) (C {<install_script>} {<broken-smart-http.sh>}) (C {<install_script>} {<error.sh>}) (C {<ln>} {<-s>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_MODULE_PATH))} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH) <'/modules'>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_SSL))})] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HTTPD_PROTO='> name: HTTPD_PROTO ) op: assign_op.Equal rhs: {<https>} spids: [651] ) ] redirects: [] ) (command.Simple words: [ {<openssl>} {<req>} {<-config>} {(DQ ($ Id.VSub_DollarName TEST_PATH) <'/ssl.cnf'>)} {<-new>} {<-x509>} {<-nodes>} {<-out>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH) <'/httpd.pem'>)} {<-keyout>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH) <'/httpd.pem'>)} ] redirects: [] more_env: [ (env_pair name: RANDFILE_PATH val: {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH)) <'/.rnd'>} spids: [656] ) ] do_fork: T ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'GIT_SSL_NO_VERIFY='> name: GIT_SSL_NO_VERIFY ) op: assign_op.Equal rhs: {<t>} spids: [702] ) ] redirects: [] ) (C {<export>} {<GIT_SSL_NO_VERIFY>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_PARA='> name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName HTTPD_PARA) <' -DSSL'>)} spids: [711] ) ] redirects: [] ) ] spids: [637 648] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_PROTO='> name:HTTPD_PROTO) op: assign_op.Equal rhs: {<http>} spids: [721] ) ] redirects: [] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_DEST='> name:HTTPD_DEST) op: assign_op.Equal rhs: {<127.0.0.1> <Id.Lit_Colon ':'> ($ Id.VSub_DollarName LIB_HTTPD_PORT)} spids: [728] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_URL='> name:HTTPD_URL) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HTTPD_PROTO) <Id.Lit_Colon ':'> <'//'> ($ Id.VSub_DollarName HTTPD_DEST) } spids: [734] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_URL_USER='> name:HTTPD_URL_USER) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HTTPD_PROTO) <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Other '%'> <40host> <Id.Lit_At '@'> ($ Id.VSub_DollarName HTTPD_DEST) } spids: [741] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HTTPD_URL_USER_PASS='> name: HTTPD_URL_USER_PASS ) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HTTPD_PROTO) <Id.Lit_Colon ':'> <'//user'> <Id.Lit_Other '%'> <40host> <Id.Lit_Colon ':'> <pass> <Id.Lit_Other '%'> <40host> <Id.Lit_At '@'> ($ Id.VSub_DollarName HTTPD_DEST) } spids: [751] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_DAV))}) (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_SVN))}) ] ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HTTPD_PARA='> name:HTTPD_PARA) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName HTTPD_PARA) <' -DDAV'>)} spids: [790] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName LIB_HTTPD_SVN))})] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'HTTPD_PARA='> name: HTTPD_PARA ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName HTTPD_PARA) <' -DSVN'>)} spids: [812] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'LIB_HTTPD_SVNPATH='> name: LIB_HTTPD_SVNPATH ) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName rawsvnrepo))} spids: [819] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'svnrepo='> name: svnrepo ) op: assign_op.Equal rhs: { (DQ <'http://127.0.0.1:'> ($ Id.VSub_DollarName LIB_HTTPD_PORT) <'/'> ) } spids: [825] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'svnrepo='> name: svnrepo ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName svnrepo) ($ Id.VSub_DollarName LIB_HTTPD_SVN) ) } spids: [833] ) ] redirects: [] ) (C {<export>} {<LIB_HTTPD_SVN>} {<LIB_HTTPD_SVNPATH>}) ] spids: [798 809] ) ] else_action: [] redirects: [] ) ] spids: [766 787] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: start_httpd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple words: [{<prepare_httpd>}] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<4>}) ] more_env: [] do_fork: T ) (C {<trap>} {(SQ <'code=$?; stop_httpd; (exit $code); die'>)} {<EXIT>}) (command.Simple words: [ {(DQ ($ Id.VSub_DollarName LIB_HTTPD_PATH))} {<-d>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH))} {<-f>} {(DQ ($ Id.VSub_DollarName TEST_PATH) <'/apache.conf'>)} {($ Id.VSub_DollarName HTTPD_PARA)} {<-c>} {(DQ <'Listen 127.0.0.1:'> ($ Id.VSub_DollarName LIB_HTTPD_PORT))} {<-k>} {<start>} ] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<3>}) (redir op:<Id.Redir_GreatAnd '2>&'> loc:(redir_loc.Fd fd:2) arg:{<4>}) ] more_env: [] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [(C {<test>} {($ Id.VSub_QMark '?')} {<-ne>} {<0>})] ) action: [ (C {<trap>} {(SQ <die>)} {<EXIT>}) (command.Simple words: [{<cat>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH)) <'/error.log'>}] redirects: [ (redir op: <Id.Redir_GreatAnd '>&'> loc: (redir_loc.Fd fd:1) arg: {<4>} ) (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] more_env: [] do_fork: T ) (C {<test_skip_or_die>} {($ Id.VSub_DollarName GIT_TEST_HTTPD)} {(DQ <'web server setup failed'>)} ) ] spids: [925 936] ) ] else_action: [] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: stop_httpd body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<trap>} {(SQ <die>)} {<EXIT>}) (C {(DQ ($ Id.VSub_DollarName LIB_HTTPD_PATH))} {<-d>} {(DQ ($ Id.VSub_DollarName HTTPD_ROOT_PATH))} {<-f>} {(DQ ($ Id.VSub_DollarName TEST_PATH) <'/apache.conf'>)} {($ Id.VSub_DollarName HTTPD_PARA)} {<-k>} {<stop>} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: test_http_push_nonff body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'REMOTE_REPO='> name:REMOTE_REPO) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} spids: [1029] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'LOCAL_REPO='> name:LOCAL_REPO) op: assign_op.Equal rhs: {($ Id.VSub_Number 2)} spids: [1033] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BRANCH='> name:BRANCH) op: assign_op.Equal rhs: {($ Id.VSub_Number 3)} spids: [1037] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'EXPECT_CAS_RESULT='> name: EXPECT_CAS_RESULT ) op: assign_op.Equal rhs: { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 4> var_name: 4 suffix_op: (suffix_op.Unary op:<Id.VTest_Hyphen _> arg_word:{<failure>}) right: <Id.Right_DollarBrace '}'> ) } spids: [1041] ) ] redirects: [] ) (C {<test_expect_success>} {(SQ <'non-fast-forward push fails'>)} { (SQ <'\n'> <'\t\tcd "$REMOTE_REPO" &&\n'> <'\t\tHEAD=$(git rev-parse --verify HEAD) &&\n'> <'\n'> <'\t\tcd "$LOCAL_REPO" &&\n'> <'\t\tgit checkout $BRANCH &&\n'> <'\t\techo "changed" > path2 &&\n'> <'\t\tgit commit -a -m path2 --amend &&\n'> <'\n'> <'\t\ttest_must_fail git push -v origin >output 2>&1 &&\n'> <'\t\t(cd "$REMOTE_REPO" &&\n'> <'\t\t test $HEAD = $(git rev-parse --verify HEAD))\n'> <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'non-fast-forward push show ref status'>)} { (SQ <'\n'> < '\t\tgrep "^ ! \\[rejected\\][ ]*$BRANCH -> $BRANCH (non-fast-forward)$" output\n' > <'\t'> ) } ) (C {<test_expect_success>} {(SQ <'non-fast-forward push shows help message'>)} {(SQ <'\n'> <'\t\ttest_i18ngrep "Updates were rejected because" output\n'> <'\t'>)} ) (C {<test_expect_> (${ Id.VSub_Name EXPECT_CAS_RESULT)} {(SQ <'force with lease aka cas'>)} { (SQ <'\n'> <'\t\tHEAD=$(\tcd "$REMOTE_REPO" && git rev-parse --verify HEAD ) &&\n'> <'\t\ttest_when_finished '> ) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <'\n'> <'\t\t\t(cd "$REMOTE_REPO" && git update-ref HEAD "$HEAD")\n'> <'\t\t'>) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\\''> ch:'\'') (SQ <' &&\n'> <'\t\t(\n'> <'\t\t\tcd "$LOCAL_REPO" &&\n'> <'\t\t\tgit push -v --force-with-lease=$BRANCH:$HEAD origin\n'> <'\t\t) &&\n'> <'\t\tgit rev-parse --verify "$BRANCH" >expect &&\n'> <'\t\t(\n'> <'\t\t\tcd "$REMOTE_REPO" && git rev-parse --verify HEAD\n'> <'\t\t) >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t'> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: setup_askpass_helper body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<test_expect_success>} {(SQ <'setup askpass helper'>)} { (SQ <'\n'> <'\t\twrite_script "$TRASH_DIRECTORY/askpass" <<-\\EOF &&\n'> <'\t\techo >>"$TRASH_DIRECTORY/askpass-query" "askpass: $*" &&\n'> <'\t\tcase "$*" in\n'> <'\t\t*Username*)\n'> <'\t\t\twhat=user\n'> <'\t\t\t;;\n'> <'\t\t*Password*)\n'> <'\t\t\twhat=pass\n'> <'\t\t\t;;\n'> <'\t\tesac &&\n'> <'\t\tcat "$TRASH_DIRECTORY/askpass-$what"\n'> <'\t\tEOF\n'> <'\t\tGIT_ASKPASS="$TRASH_DIRECTORY/askpass" &&\n'> <'\t\texport GIT_ASKPASS &&\n'> <'\t\texport TRASH_DIRECTORY\n'> <'\t'> ) } ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: set_askpass body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (command.Simple words: [] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/askpass-query'>)} ) ] more_env: [] do_fork: F ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_Number 1))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/askpass-user'>)} ) ] more_env: [] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_Number 2))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/askpass-pass'>)} ) ] more_env: [] do_fork: T ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: expect_askpass body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'dest='> name:dest) op: assign_op.Equal rhs: {($ Id.VSub_DollarName HTTPD_DEST) (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 3> var_name: 3 suffix_op: (suffix_op.Unary op: <Id.VTest_Plus _> arg_word: {<Id.Lit_Slash '/'> ($ Id.VSub_Number 3)} ) right: <Id.Right_DollarBrace '}'> ) } spids: [1229] ) ] redirects: [] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<none>}] action: [] spids: [1252 1253 1256 -1] ) (case_arm pat_list: [{<pass>}] action: [ (C {<echo>} { (DQ <'askpass: Password for \'http://'> ($ Id.VSub_Number 2) <'@'> ($ Id.VSub_DollarName dest) <'\': '> ) } ) ] spids: [1259 1260 1274 -1] ) (case_arm pat_list: [{<both>}] action: [ (C {<echo>} { (DQ <'askpass: Username for \'http://'> ($ Id.VSub_DollarName dest) <'\': '> ) } ) (C {<echo>} { (DQ <'askpass: Password for \'http://'> ($ Id.VSub_Number 2) <'@'> ($ Id.VSub_DollarName dest) <'\': '> ) } ) ] spids: [1277 1278 1301 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<false>})] spids: [1304 1305 1311 -1] ) ] redirects: [] ) ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/askpass-expect'>)} ) ] right: <Id.Lit_RBrace '}'> ) (C {<test_cmp>} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/askpass-expect'>)} {(DQ ($ Id.VSub_DollarName TRASH_DIRECTORY) <'/askpass-query'>)} ) ] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )