Add deltifier test.
This test kicks in only if you built test-delta executable, and makes sure that the basic delta routine is working properly even on empty files. This commit is to make sure we have a test to catch the breakage. The delitifier code is still broken, which will be fixed with the next commit. Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
parent
d28c8af623
commit
e726715a52
43
t/t0001-delta.sh
Executable file
43
t/t0001-delta.sh
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
test_description='Deltification regression test'
|
||||||
|
|
||||||
|
../test-delta 2>/dev/null
|
||||||
|
test $? == 127 && {
|
||||||
|
echo "* Skipping test-delta regression test."
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
. ./test-lib.sh
|
||||||
|
|
||||||
|
>empty
|
||||||
|
echo small >small
|
||||||
|
echo smallish >smallish
|
||||||
|
cat ../../COPYING >large
|
||||||
|
sed -e 's/GNU/G.N.U/g' large >largish
|
||||||
|
|
||||||
|
test_expect_success 'No regression in deltify code' \
|
||||||
|
'
|
||||||
|
fail=0
|
||||||
|
for src in empty small smallish large largish
|
||||||
|
do
|
||||||
|
for dst in empty small smallish large largish
|
||||||
|
do
|
||||||
|
if test-delta -d $src $dst delta-$src-$dst &&
|
||||||
|
test-delta -p $src delta-$src-$dst out-$src-$dst &&
|
||||||
|
cmp $dst out-$src-$dst
|
||||||
|
then
|
||||||
|
echo "* OK ($src->$dst deitify and apply)"
|
||||||
|
else
|
||||||
|
echo "* FAIL ($src->$dst deitify and apply)"
|
||||||
|
fail=1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
done
|
||||||
|
case "$fail" in
|
||||||
|
0) (exit 0) ;;
|
||||||
|
*) (exit $fail) ;;
|
||||||
|
esac
|
||||||
|
'
|
||||||
|
|
||||||
|
test_done
|
11
test-delta.c
11
test-delta.c
@ -38,7 +38,10 @@ int main(int argc, char *argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
from_size = st.st_size;
|
from_size = st.st_size;
|
||||||
from_buf = mmap(NULL, from_size, PROT_READ, MAP_PRIVATE, fd, 0);
|
if (from_size)
|
||||||
|
from_buf = mmap(NULL, from_size, PROT_READ, MAP_PRIVATE, fd, 0);
|
||||||
|
else
|
||||||
|
from_buf = "";
|
||||||
if (from_buf == MAP_FAILED) {
|
if (from_buf == MAP_FAILED) {
|
||||||
perror(argv[2]);
|
perror(argv[2]);
|
||||||
close(fd);
|
close(fd);
|
||||||
@ -52,7 +55,11 @@ int main(int argc, char *argv[])
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
data_size = st.st_size;
|
data_size = st.st_size;
|
||||||
data_buf = mmap(NULL, data_size, PROT_READ, MAP_PRIVATE, fd, 0);
|
|
||||||
|
if (data_size)
|
||||||
|
data_buf = mmap(NULL, data_size, PROT_READ, MAP_PRIVATE, fd, 0);
|
||||||
|
else
|
||||||
|
data_buf = "";
|
||||||
if (data_buf == MAP_FAILED) {
|
if (data_buf == MAP_FAILED) {
|
||||||
perror(argv[3]);
|
perror(argv[3]);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
Loading…
Reference in New Issue
Block a user