From 9d488eb40e253c82dd09811d5eda20f5f8e480c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Fri, 7 May 2010 19:37:01 +0000 Subject: Move t6000lib.sh to lib-* MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The naming of this test library conflicted with the recommendation in t/README's "Naming Tests" section. Signed-off-by: Ævar Arnfjörð Bjarmason Signed-off-by: Junio C Hamano --- t/lib-t6000.sh | 127 +++++++++++++++++++++++++++++++++++++++++ t/t6000lib.sh | 127 ----------------------------------------- t/t6002-rev-list-bisect.sh | 2 +- t/t6003-rev-list-topo-order.sh | 2 +- t/t6101-rev-parse-parents.sh | 2 +- 5 files changed, 130 insertions(+), 130 deletions(-) create mode 100644 t/lib-t6000.sh delete mode 100644 t/t6000lib.sh (limited to 't') diff --git a/t/lib-t6000.sh b/t/lib-t6000.sh new file mode 100644 index 0000000000..985d517a1c --- /dev/null +++ b/t/lib-t6000.sh @@ -0,0 +1,127 @@ +: included from 6002 and others + +[ -d .git/refs/tags ] || mkdir -p .git/refs/tags + +:> sed.script + +# Answer the sha1 has associated with the tag. The tag must exist in .git or .git/refs/tags +tag() +{ + _tag=$1 + [ -f .git/refs/tags/$_tag ] || error "tag: \"$_tag\" does not exist" + cat .git/refs/tags/$_tag +} + +# Generate a commit using the text specified to make it unique and the tree +# named by the tag specified. +unique_commit() +{ + _text=$1 + _tree=$2 + shift 2 + echo $_text | git commit-tree $(tag $_tree) "$@" +} + +# Save the output of a command into the tag specified. Prepend +# a substitution script for the tag onto the front of sed.script +save_tag() +{ + _tag=$1 + [ -n "$_tag" ] || error "usage: save_tag tag commit-args ..." + shift 1 + "$@" >.git/refs/tags/$_tag + + echo "s/$(tag $_tag)/$_tag/g" > sed.script.tmp + cat sed.script >> sed.script.tmp + rm sed.script + mv sed.script.tmp sed.script +} + +# Replace unhelpful sha1 hashses with their symbolic equivalents +entag() +{ + sed -f sed.script +} + +# Execute a command after first saving, then setting the GIT_AUTHOR_EMAIL +# tag to a specified value. Restore the original value on return. +as_author() +{ + _author=$1 + shift 1 + _save=$GIT_AUTHOR_EMAIL + + GIT_AUTHOR_EMAIL="$_author" + export GIT_AUTHOR_EMAIL + "$@" + if test -z "$_save" + then + unset GIT_AUTHOR_EMAIL + else + GIT_AUTHOR_EMAIL="$_save" + export GIT_AUTHOR_EMAIL + fi +} + +commit_date() +{ + _commit=$1 + git cat-file commit $_commit | sed -n "s/^committer .*> \([0-9]*\) .*/\1/p" +} + +on_committer_date() +{ + _date=$1 + shift 1 + GIT_COMMITTER_DATE="$_date" + export GIT_COMMITTER_DATE + "$@" + unset GIT_COMMITTER_DATE +} + +# Execute a command and suppress any error output. +hide_error() +{ + "$@" 2>/dev/null +} + +check_output() +{ + _name=$1 + shift 1 + if eval "$*" | entag > $_name.actual + then + diff $_name.expected $_name.actual + else + return 1; + fi +} + +# Turn a reasonable test description into a reasonable test name. +# All alphanums translated into -'s which are then compressed and stripped +# from front and back. +name_from_description() +{ + perl -pe ' + s/[^A-Za-z0-9.]/-/g; + s/-+/-/g; + s/-$//; + s/^-//; + y/A-Z/a-z/; + ' +} + + +# Execute the test described by the first argument, by eval'ing +# command line specified in the 2nd argument. Check the status code +# is zero and that the output matches the stream read from +# stdin. +test_output_expect_success() +{ + _description=$1 + _test=$2 + [ $# -eq 2 ] || error "usage: test_output_expect_success description test < $_name.expected + test_expect_success "$_description" "check_output $_name \"$_test\"" +} diff --git a/t/t6000lib.sh b/t/t6000lib.sh deleted file mode 100644 index 985d517a1c..0000000000 --- a/t/t6000lib.sh +++ /dev/null @@ -1,127 +0,0 @@ -: included from 6002 and others - -[ -d .git/refs/tags ] || mkdir -p .git/refs/tags - -:> sed.script - -# Answer the sha1 has associated with the tag. The tag must exist in .git or .git/refs/tags -tag() -{ - _tag=$1 - [ -f .git/refs/tags/$_tag ] || error "tag: \"$_tag\" does not exist" - cat .git/refs/tags/$_tag -} - -# Generate a commit using the text specified to make it unique and the tree -# named by the tag specified. -unique_commit() -{ - _text=$1 - _tree=$2 - shift 2 - echo $_text | git commit-tree $(tag $_tree) "$@" -} - -# Save the output of a command into the tag specified. Prepend -# a substitution script for the tag onto the front of sed.script -save_tag() -{ - _tag=$1 - [ -n "$_tag" ] || error "usage: save_tag tag commit-args ..." - shift 1 - "$@" >.git/refs/tags/$_tag - - echo "s/$(tag $_tag)/$_tag/g" > sed.script.tmp - cat sed.script >> sed.script.tmp - rm sed.script - mv sed.script.tmp sed.script -} - -# Replace unhelpful sha1 hashses with their symbolic equivalents -entag() -{ - sed -f sed.script -} - -# Execute a command after first saving, then setting the GIT_AUTHOR_EMAIL -# tag to a specified value. Restore the original value on return. -as_author() -{ - _author=$1 - shift 1 - _save=$GIT_AUTHOR_EMAIL - - GIT_AUTHOR_EMAIL="$_author" - export GIT_AUTHOR_EMAIL - "$@" - if test -z "$_save" - then - unset GIT_AUTHOR_EMAIL - else - GIT_AUTHOR_EMAIL="$_save" - export GIT_AUTHOR_EMAIL - fi -} - -commit_date() -{ - _commit=$1 - git cat-file commit $_commit | sed -n "s/^committer .*> \([0-9]*\) .*/\1/p" -} - -on_committer_date() -{ - _date=$1 - shift 1 - GIT_COMMITTER_DATE="$_date" - export GIT_COMMITTER_DATE - "$@" - unset GIT_COMMITTER_DATE -} - -# Execute a command and suppress any error output. -hide_error() -{ - "$@" 2>/dev/null -} - -check_output() -{ - _name=$1 - shift 1 - if eval "$*" | entag > $_name.actual - then - diff $_name.expected $_name.actual - else - return 1; - fi -} - -# Turn a reasonable test description into a reasonable test name. -# All alphanums translated into -'s which are then compressed and stripped -# from front and back. -name_from_description() -{ - perl -pe ' - s/[^A-Za-z0-9.]/-/g; - s/-+/-/g; - s/-$//; - s/^-//; - y/A-Z/a-z/; - ' -} - - -# Execute the test described by the first argument, by eval'ing -# command line specified in the 2nd argument. Check the status code -# is zero and that the output matches the stream read from -# stdin. -test_output_expect_success() -{ - _description=$1 - _test=$2 - [ $# -eq 2 ] || error "usage: test_output_expect_success description test < $_name.expected - test_expect_success "$_description" "check_output $_name \"$_test\"" -} diff --git a/t/t6002-rev-list-bisect.sh b/t/t6002-rev-list-bisect.sh index b4e8fbaa5e..fb07536a0f 100755 --- a/t/t6002-rev-list-bisect.sh +++ b/t/t6002-rev-list-bisect.sh @@ -5,7 +5,7 @@ test_description='Tests git rev-list --bisect functionality' . ./test-lib.sh -. "$TEST_DIRECTORY"/t6000lib.sh # t6xxx specific functions +. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions # usage: test_bisection max-diff bisect-option head ^prune... # diff --git a/t/t6003-rev-list-topo-order.sh b/t/t6003-rev-list-topo-order.sh index 2c73f2da7b..e4c52b0214 100755 --- a/t/t6003-rev-list-topo-order.sh +++ b/t/t6003-rev-list-topo-order.sh @@ -6,7 +6,7 @@ test_description='Tests git rev-list --topo-order functionality' . ./test-lib.sh -. "$TEST_DIRECTORY"/t6000lib.sh # t6xxx specific functions +. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions list_duplicates() { diff --git a/t/t6101-rev-parse-parents.sh b/t/t6101-rev-parse-parents.sh index f105fab98e..e673c25e94 100755 --- a/t/t6101-rev-parse-parents.sh +++ b/t/t6101-rev-parse-parents.sh @@ -6,7 +6,7 @@ test_description='Test git rev-parse with different parent options' . ./test-lib.sh -. "$TEST_DIRECTORY"/t6000lib.sh # t6xxx specific functions +. "$TEST_DIRECTORY"/lib-t6000.sh # t6xxx specific functions date >path0 git update-index --add path0 -- cgit v1.2.3 From 621fd7a287dbb9279e18a6932c7037a8c4d224ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Fri, 7 May 2010 19:37:03 +0000 Subject: Turn setup code in t2007-checkout-symlink.sh into a test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously the test would print to stdout which interfered with the TAP output. Now this scaffolding code is just a normal test. Signed-off-by: Ævar Arnfjörð Bjarmason Signed-off-by: Junio C Hamano --- t/t2007-checkout-symlink.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 't') diff --git a/t/t2007-checkout-symlink.sh b/t/t2007-checkout-symlink.sh index 20f33436d0..27e2127afe 100755 --- a/t/t2007-checkout-symlink.sh +++ b/t/t2007-checkout-symlink.sh @@ -44,8 +44,10 @@ test_expect_success 'switch from symlink to dir' ' ' -rm -fr frotz xyzzy nitfol && -git checkout -f master || exit +test_expect_success 'Remove temporary directories & switch to master' ' + rm -fr frotz xyzzy nitfol && + git checkout -f master +' test_expect_success 'switch from dir to symlink' ' -- cgit v1.2.3