#!/bin/sh global test_description := ''basic sanity checks for git var'' source ./test-lib.sh test_expect_success 'get GIT_AUTHOR_IDENT' ' test_tick && echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && git var GIT_AUTHOR_IDENT >actual && test_cmp expect actual ' test_expect_success 'get GIT_COMMITTER_IDENT' ' test_tick && echo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" >expect && git var GIT_COMMITTER_IDENT >actual && test_cmp expect actual ' test_expect_success !AUTOIDENT 'requested identites are strict' ' ( sane_unset GIT_COMMITTER_NAME && sane_unset GIT_COMMITTER_EMAIL && test_must_fail git var GIT_COMMITTER_IDENT ) ' # For git var -l, we check only a representative variable; # testing the whole output would make our test too brittle with # respect to unrelated changes in the test suite's environment. test_expect_success 'git var -l lists variables' ' git var -l >actual && echo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect && sed -n s/GIT_AUTHOR_IDENT=//p actual.author && test_cmp expect actual.author ' test_expect_success 'git var -l lists config' ' git var -l >actual && echo false >expect && sed -n s/core\\.bare=//p actual.bare && test_cmp expect actual.bare ' test_expect_success 'listing and asking for variables are exclusive' ' test_must_fail git var -l GIT_COMMITTER_IDENT ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"basic sanity checks for git var">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <"get GIT_AUTHOR_IDENT">)} { (SQ <"\n"> <"\ttest_tick &&\n"> <"\techo \"$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE\" >expect &&\n"> <"\tgit var GIT_AUTHOR_IDENT >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(SQ <"get GIT_COMMITTER_IDENT">)} { (SQ <"\n"> <"\ttest_tick &&\n"> < "\techo \"$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE\" >expect &&\n" > <"\tgit var GIT_COMMITTER_IDENT >actual &&\n"> <"\ttest_cmp expect actual\n"> ) } ) (C {(test_expect_success)} {(KW_Bang "!") (AUTOIDENT)} {(SQ <"requested identites are strict">)} { (SQ <"\n"> <"\t(\n"> <"\t\tsane_unset GIT_COMMITTER_NAME &&\n"> <"\t\tsane_unset GIT_COMMITTER_EMAIL &&\n"> <"\t\ttest_must_fail git var GIT_COMMITTER_IDENT\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"git var -l lists variables">)} { (SQ <"\n"> <"\tgit var -l >actual &&\n"> <"\techo \"$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE\" >expect &&\n"> <"\tsed -n s/GIT_AUTHOR_IDENT=//p actual.author &&\n"> <"\ttest_cmp expect actual.author\n"> ) } ) (C {(test_expect_success)} {(SQ <"git var -l lists config">)} { (SQ <"\n"> <"\tgit var -l >actual &&\n"> <"\techo false >expect &&\n"> <"\tsed -n s/core\\\\.bare=//p actual.bare &&\n"> <"\ttest_cmp expect actual.bare\n"> ) } ) (C {(test_expect_success)} {(SQ <"listing and asking for variables are exclusive">)} {(SQ <"\n"> <"\ttest_must_fail git var -l GIT_COMMITTER_IDENT\n">)} ) (C {(test_done)}) ] )