(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: [-1 59] ) ] spids: [-1 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: [-1 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)}) ] )