(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) 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: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/lib-credential.sh)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:skip_all) op: Equal rhs: {(DQ ('used to test external credential helpers'))} spids: [62] ) ] spids: [62] ) (C {(test_done)}) ] spids: [16777215 59] ) ] spids: [16777215 70] ) (AndOr children: [ (C {(test)} {(-z)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_SETUP'))}) (C {(eval)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_SETUP'))}) ] op_id: Op_DPipe ) (C {(helper_test_clean)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) (C {(helper_test)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) (If arms: [ (if_arm cond: [ (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 122] ) ] else_action: [ (C {(helper_test_timeout)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER_TIMEOUT'))}) ] spids: [131 140] ) (C {(helper_test_clean)} {(DQ ($ VSub_Name '$GIT_TEST_CREDENTIAL_HELPER'))}) (C {(test_done)}) ] )