Browse Source

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>
maint
Junio C Hamano 19 years ago
parent
commit
e726715a52
  1. 43
      t/t0001-delta.sh
  2. 11
      test-delta.c

43
t/t0001-delta.sh

@ -0,0 +1,43 @@ @@ -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

@ -38,7 +38,10 @@ int main(int argc, char *argv[]) @@ -38,7 +38,10 @@ int main(int argc, char *argv[])
return 1;
}
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) {
perror(argv[2]);
close(fd);
@ -52,7 +55,11 @@ int main(int argc, char *argv[]) @@ -52,7 +55,11 @@ int main(int argc, char *argv[])
return 1;
}
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) {
perror(argv[3]);
close(fd);

Loading…
Cancel
Save