Add a couple of notes.
[libdcp.git] / run-tests.sh
1 #!/bin/bash
2
3 #
4 # Runs our test suite, which builds a DCP.
5 # The output is compared against the one
6 # in test/ref/DCP, and an error is given
7 # if anything is different.
8 #
9
10 if [ "$1" == "--debug" ]; then
11   shift
12   LD_LIBRARY_PATH=build/src:build/asdcplib/src gdb --args build/test/tests
13 elif [ "$1" == "--valgrind" ]; then
14   shift
15   LD_LIBRARY_PATH=build/src:build/asdcplib/src valgrind --tool="memcheck" build/test/tests
16 else
17   LD_LIBRARY_PATH=build/src:build/asdcplib/src build/test/tests
18 fi
19 diff -ur test/ref/DCP build/test/foo
20 if [ "$?" != "0" ]; then
21   echo "FAIL: files differ"
22   exit 1
23 fi
24
25 rm -f build/test/info.log
26
27 if [ ! -e "../libdcp-test" ]; then
28   echo "Test corpus not found"
29   exit 1
30 fi
31
32 for d in `find ../libdcp-test -mindepth 1 -maxdepth 1 -type d`; do
33   if [ `basename $d` != ".git" ]; then
34     LD_LIBRARY_PATH=build/src:build/asdcplib/src build/tools/dcpinfo -s $d >> build/test/info.log
35     if [ "$?" != "0" ]; then
36       echo "FAIL: dcpinfo failed for $d"
37       exit 1
38     fi
39   fi
40 done
41
42 diff -q build/test/info.log ../libdcp-test/info.log
43 if [ "$?" != "0" ]; then
44   echo "FAIL: dcpinfo output incorrect"
45   exit 1
46 fi
47
48 rm -f build/test/info2.log
49 rm -rf build/test/libdcp-test
50
51 cp -r ../libdcp-test build/test
52 for d in `find build/test/libdcp-test -mindepth 1 -maxdepth 1 -type d`; do
53   if [ `basename $d` != ".git" ]; then
54     LD_LIBRARY_PATH=build/src:build/asdcplib/src build/test/rewrite_subs $d
55     LD_LIBRARY_PATH=build/src:build/asdcplib/src build/tools/dcpinfo -s $d >> build/test/info2.log
56   fi
57 done
58
59 sed -i "s/DCP: build\/test/DCP: \.\./g" build/test/info2.log
60
61 diff -q build/test/info2.log ../libdcp-test/info.log
62 if [ "$?" != "0" ]; then
63   echo "FAIL: dcpinfo output from rewrite incorrect"
64   exit 1
65 fi
66
67 diff build/test/baz/video1.mxf build/test/baz/video2.mxf
68 if [ "$?" != "0" ]; then
69   echo "FAIL: MXFs from recovery incorrect"
70   exit 1
71 fi
72     
73 echo "PASS"