X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/e1e0e038fd0fee3fe10524d7466deab03e78deb5..a6da40bf84527cbe77d1ec504e1fefb982b9a52a:/tests/t0001-validate-git-versions.sh diff --git a/tests/t0001-validate-git-versions.sh b/tests/t0001-validate-git-versions.sh index 3378358..dd84fe3 100755 --- a/tests/t0001-validate-git-versions.sh +++ b/tests/t0001-validate-git-versions.sh @@ -1,36 +1,45 @@ #!/bin/sh -. ./setup.sh +if [ "${CGIT_TEST_NO_GIT_VERSION}" = "YesPlease" ]; then + exit 0 +fi -prepare_tests 'Check Git version is correct' +test_description='Check Git version is correct' +CGIT_TEST_NO_CREATE_REPOS=YesPlease +. ./setup.sh -run_test 'extract Git version from Makefile' ' +test_expect_success 'extract Git version from Makefile' ' sed -n -e "/^GIT_VER[ ]*=/ { s/^GIT_VER[ ]*=[ ]*// p - }" ../Makefile >trash/makefile_version + }" ../../Makefile >makefile_version ' -run_test 'test Git version matches Makefile' ' - ( cat ../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) | - sed -e "s/GIT_VERSION[ ]*=[ ]*//" >trash/git_version && - diff -u trash/git_version trash/makefile_version +# Note that Git's GIT-VERSION-GEN script applies "s/-/./g" to the version +# string to produce the internal version in the GIT-VERSION-FILE, so we +# must apply the same transformation to the version in the Makefile before +# comparing them. +test_expect_success 'test Git version matches Makefile' ' + ( cat ../../git/GIT-VERSION-FILE || echo "No GIT-VERSION-FILE" ) | + sed -e "s/GIT_VERSION[ ]*=[ ]*//" -e "s/\\.dirty$//" >git_version && + sed -e "s/-/./g" makefile_version >makefile_git_version && + test_cmp git_version makefile_git_version ' -run_test 'test submodule version matches Makefile' ' - if ! test -e ../git/.git +test_expect_success 'test submodule version matches Makefile' ' + if ! test -e ../../git/.git then echo "git/ is not a Git repository" >&2 else ( - cd .. && - sm_sha1=$(git ls-files --stage -- git | + cd ../.. && + sm_oid=$(git ls-files --stage -- git | sed -e "s/^[0-9]* \\([0-9a-f]*\\) [0-9] .*$/\\1/") && cd git && - git describe --match "v[0-9]*" $sm_sha1 - ) | sed -e "s/^v//" >trash/sm_version && - diff -u trash/sm_version trash/makefile_version + git describe --match "v[0-9]*" $sm_oid + ) | sed -e "s/^v//" -e "s/-/./" >sm_version && + test_cmp sm_version makefile_version fi ' -tests_done +test_done