tests: use Git's test framework

This allows tests to run in parallel as well as letting us use "prove"
or another TAP harness to run the tests.

Git's test framework requires Git to be fully built before letting any
tests run, so add a new target to the top-level Makefile which builds
all of Git instead of just libgit.a and make the "test" target depend on
that.

Signed-off-by: John Keeping <john@keeping.me.uk>
Šī revīzija ir iekļauta:
John Keeping
2013-04-01 15:09:05 +01:00
revīziju iesūtīja Jason A. Donenfeld
vecāks 8a92df033e
revīzija c95cc5ec56
13 mainīti faili ar 239 papildinājumiem un 291 dzēšanām

Parādīt failu

@ -1,77 +1,76 @@
#!/bin/sh
test_description='Verify snapshot'
. ./setup.sh
prepare_tests "Verify snapshot"
run_test 'get foo/snapshot/master.tar.gz' '
cgit_url "foo/snapshot/master.tar.gz" >trash/tmp
test_expect_success 'get foo/snapshot/master.tar.gz' '
cgit_url "foo/snapshot/master.tar.gz" >tmp
'
run_test 'check html headers' '
head -n 1 trash/tmp |
test_expect_success 'check html headers' '
head -n 1 tmp |
grep "Content-Type: application/x-gzip" &&
head -n 2 trash/tmp |
head -n 2 tmp |
grep "Content-Disposition: inline; filename=.master.tar.gz."
'
run_test 'strip off the header lines' '
tail -n +6 trash/tmp > trash/master.tar.gz
test_expect_success 'strip off the header lines' '
tail -n +6 tmp > master.tar.gz
'
run_test 'verify gzip format' '
gunzip --test trash/master.tar.gz
test_expect_success 'verify gzip format' '
gunzip --test master.tar.gz
'
run_test 'untar' '
rm -rf trash/master &&
tar -xf trash/master.tar.gz -C trash
test_expect_success 'untar' '
rm -rf master &&
tar -xf master.tar.gz
'
run_test 'count files' '
c=$(ls -1 trash/master/ | wc -l) &&
test $c = 5
test_expect_success 'count files' '
ls master/ >output &&
test_line_count = 5 output
'
run_test 'verify untarred file-5' '
grep "^5$" trash/master/file-5 &&
test $(cat trash/master/file-5 | wc -l) = 1
test_expect_success 'verify untarred file-5' '
grep "^5$" master/file-5 &&
test_line_count = 1 master/file-5
'
run_test 'get foo/snapshot/master.zip' '
cgit_url "foo/snapshot/master.zip" >trash/tmp
test_expect_success 'get foo/snapshot/master.zip' '
cgit_url "foo/snapshot/master.zip" >tmp
'
run_test 'check HTML headers (zip)' '
head -n 1 trash/tmp |
test_expect_success 'check HTML headers (zip)' '
head -n 1 tmp |
grep "Content-Type: application/x-zip" &&
head -n 2 trash/tmp |
head -n 2 tmp |
grep "Content-Disposition: inline; filename=.master.zip."
'
run_test 'strip off the header lines (zip)' '
tail -n +6 trash/tmp >trash/master.zip
test_expect_success 'strip off the header lines (zip)' '
tail -n +6 tmp >master.zip
'
run_test 'verify zip format' '
unzip -t trash/master.zip
test_expect_success 'verify zip format' '
unzip -t master.zip
'
run_test 'unzip' '
rm -rf trash/master &&
unzip trash/master.zip -d trash
test_expect_success 'unzip' '
rm -rf master &&
unzip master.zip
'
run_test 'count files (zip)' '
c=$(ls -1 trash/master/ | wc -l) &&
test $c = 5
test_expect_success 'count files (zip)' '
ls master/ >output &&
test_line_count = 5 output
'
run_test 'verify unzipped file-5' '
grep "^5$" trash/master/file-5 &&
test $(cat trash/master/file-5 | wc -l) = 1
test_expect_success 'verify unzipped file-5' '
grep "^5$" master/file-5 &&
test_line_count = 1 master/file-5
'
tests_done
test_done