#!/bin/sh global test_description := ''index file specific tests'' source ./test-lib.sh test_expect_success 'setup' ' echo 1 >a ' test_expect_success 'bogus GIT_INDEX_VERSION issues warning' ' ( rm -f .git/index && GIT_INDEX_VERSION=2bogus && export GIT_INDEX_VERSION && git add a 2>&1 | sed "s/[0-9]//" >actual.err && sed -e "s/ Z$/ /" <<-\EOF >expect.err && warning: GIT_INDEX_VERSION set, but the value is invalid. Using version Z EOF test_i18ncmp expect.err actual.err ) ' test_expect_success 'out of bounds GIT_INDEX_VERSION issues warning' ' ( rm -f .git/index && GIT_INDEX_VERSION=1 && export GIT_INDEX_VERSION && git add a 2>&1 | sed "s/[0-9]//" >actual.err && sed -e "s/ Z$/ /" <<-\EOF >expect.err && warning: GIT_INDEX_VERSION set, but the value is invalid. Using version Z EOF test_i18ncmp expect.err actual.err ) ' test_expect_success 'no warning with bogus GIT_INDEX_VERSION and existing index' ' ( GIT_INDEX_VERSION=1 && export GIT_INDEX_VERSION && git add a 2>actual.err && >expect.err && test_i18ncmp expect.err actual.err ) ' test_expect_success 'out of bounds index.version issues warning' ' ( sane_unset GIT_INDEX_VERSION && rm -f .git/index && git config --add index.version 1 && git add a 2>&1 | sed "s/[0-9]//" >actual.err && sed -e "s/ Z$/ /" <<-\EOF >expect.err && warning: index.version set, but the value is invalid. Using version Z EOF test_i18ncmp expect.err actual.err ) ' test_expect_success 'GIT_INDEX_VERSION takes precedence over config' ' ( rm -f .git/index && GIT_INDEX_VERSION=4 && export GIT_INDEX_VERSION && git config --add index.version 2 && git add a 2>&1 && echo 4 >expect && test-index-version <.git/index >actual && test_cmp expect actual ) ' test_done (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <"index file specific tests">)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ )} {(SQ <"\n"> <"\techo 1 >a\n">)}) (C {(test_expect_success)} {(SQ <"bogus GIT_INDEX_VERSION issues warning">)} { (SQ <"\n"> <"\t(\n"> <"\t\trm -f .git/index &&\n"> <"\t\tGIT_INDEX_VERSION=2bogus &&\n"> <"\t\texport GIT_INDEX_VERSION &&\n"> <"\t\tgit add a 2>&1 | sed \"s/[0-9]//\" >actual.err &&\n"> <"\t\tsed -e \"s/ Z$/ /\" <<-\\EOF >expect.err &&\n"> <"\t\t\twarning: GIT_INDEX_VERSION set, but the value is invalid.\n"> <"\t\t\tUsing version Z\n"> <"\t\tEOF\n"> <"\t\ttest_i18ncmp expect.err actual.err\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"out of bounds GIT_INDEX_VERSION issues warning">)} { (SQ <"\n"> <"\t(\n"> <"\t\trm -f .git/index &&\n"> <"\t\tGIT_INDEX_VERSION=1 &&\n"> <"\t\texport GIT_INDEX_VERSION &&\n"> <"\t\tgit add a 2>&1 | sed \"s/[0-9]//\" >actual.err &&\n"> <"\t\tsed -e \"s/ Z$/ /\" <<-\\EOF >expect.err &&\n"> <"\t\t\twarning: GIT_INDEX_VERSION set, but the value is invalid.\n"> <"\t\t\tUsing version Z\n"> <"\t\tEOF\n"> <"\t\ttest_i18ncmp expect.err actual.err\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"no warning with bogus GIT_INDEX_VERSION and existing index">)} { (SQ <"\n"> <"\t(\n"> <"\t\tGIT_INDEX_VERSION=1 &&\n"> <"\t\texport GIT_INDEX_VERSION &&\n"> <"\t\tgit add a 2>actual.err &&\n"> <"\t\t>expect.err &&\n"> <"\t\ttest_i18ncmp expect.err actual.err\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"out of bounds index.version issues warning">)} { (SQ <"\n"> <"\t(\n"> <"\t\tsane_unset GIT_INDEX_VERSION &&\n"> <"\t\trm -f .git/index &&\n"> <"\t\tgit config --add index.version 1 &&\n"> <"\t\tgit add a 2>&1 | sed \"s/[0-9]//\" >actual.err &&\n"> <"\t\tsed -e \"s/ Z$/ /\" <<-\\EOF >expect.err &&\n"> <"\t\t\twarning: index.version set, but the value is invalid.\n"> <"\t\t\tUsing version Z\n"> <"\t\tEOF\n"> <"\t\ttest_i18ncmp expect.err actual.err\n"> <"\t)\n"> ) } ) (C {(test_expect_success)} {(SQ <"GIT_INDEX_VERSION takes precedence over config">)} { (SQ <"\n"> <"\t(\n"> <"\t\trm -f .git/index &&\n"> <"\t\tGIT_INDEX_VERSION=4 &&\n"> <"\t\texport GIT_INDEX_VERSION &&\n"> <"\t\tgit config --add index.version 2 &&\n"> <"\t\tgit add a 2>&1 &&\n"> <"\t\techo 4 >expect &&\n"> <"\t\ttest-index-version <.git/index >actual &&\n"> <"\t\ttest_cmp expect actual\n"> <"\t)\n"> ) } ) (C {(test_done)}) ] )