(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description spids:[12]) op: Equal rhs: { (SQ <'external credential helper tests\n'> <'\n'> <'This is a tool for authors of external helper tools to sanity-check\n'> <'their helpers. If you have written the "git-credential-foo" helper,\n'> <'you check it with:\n'> <'\n'> <' make GIT_TEST_CREDENTIAL_HELPER=foo t0303-credential-external.sh\n'> <'\n'> <'This assumes that your helper is capable of both storing and\n'> <'retrieving credentials (some helpers may be read-only, and they will\n'> <'fail these tests).\n'> <'\n'> <'Please note that the individual tests do not verify all of the\n'> <'preconditions themselves, but rather build on each other. A failing\n'> <'test means that tests later in the sequence can return false "OK"\n'> <'results.\n'> <'\n'> <'If your helper supports time-based expiration with a configurable\n'> <'timeout, you can test that feature with:\n'> <'\n'> <' make GIT_TEST_CREDENTIAL_HELPER=foo \\\n'> <' GIT_TEST_CREDENTIAL_HELPER_TIMEOUT="foo --timeout=1" \\\n'> <' t0303-credential-external.sh\n'> <'\n'> <'If your helper requires additional setup before the tests are started,\n'> <'you can set GIT_TEST_CREDENTIAL_HELPER_SETUP to a sequence of shell\n'> <'commands.\n'> ) } spids: [12] ) ] spids: [12] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/lib-credential.sh)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) terminator: <Op_Semi ';'> ) ] action: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:skip_all spids:[70]) op: Equal rhs: {(DQ ('used to test external credential helpers'))} spids: [70] ) ] spids: [70] ) (C {(test_done)}) ] spids: [16777215 67] ) ] spids: [16777215 78] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_SETUP'))}) (C {(eval)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_SETUP'))}) ] ) (C {(helper_test_clean)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) (C {(helper_test)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT'))}) terminator: <Op_Semi ';'> ) ] action: [ (C {(say)} {(DQ ('# skipping timeout tests (GIT_TEST_CREDENTIAL_HELPER_TIMEOUT not set)'))}) ] spids: [16777215 130] ) ] else_action: [ (C {(helper_test_timeout)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT'))}) ] spids: [139 148] ) (C {(helper_test_clean)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) (C {(test_done)}) ] )