Merge branch 'master' of /home/carl/git/libdcp
[libdcp.git] / run-tests.sh
index 8873a3e96bc1189fee5d39008902c74883dfaa06..888968add791b8110953fea3d40db0885a0bab0c 100755 (executable)
@@ -10,6 +10,9 @@
 if [ "$1" == "--debug" ]; then
   shift
   LD_LIBRARY_PATH=build/src:build/asdcplib/src gdb --args build/test/tests
+elif [ "$1" == "--valgrind" ]; then
+  shift
+  LD_LIBRARY_PATH=build/src:build/asdcplib/src valgrind --tool="memcheck" build/test/tests
 else
   LD_LIBRARY_PATH=build/src:build/asdcplib/src build/test/tests
 fi
@@ -18,4 +21,53 @@ if [ "$?" != "0" ]; then
   echo "FAIL: files differ"
   exit 1
 fi
-echo "PASS"
\ No newline at end of file
+
+rm -f build/test/info.log
+
+if [ ! -e "../libdcp-test" ]; then
+  echo "Test corpus not found"
+  exit 1
+fi
+
+for d in `find ../libdcp-test -mindepth 1 -maxdepth 1 -type d`; do
+  if [ `basename $d` != ".git" ]; then
+    LD_LIBRARY_PATH=build/src:build/asdcplib/src build/tools/dcpinfo -s $d >> build/test/info.log
+    if [ "$?" != "0" ]; then
+      echo "FAIL: dcpinfo failed for $d"
+      exit 1
+    fi
+  fi
+done
+
+diff -q build/test/info.log ../libdcp-test/info.log
+if [ "$?" != "0" ]; then
+  echo "FAIL: dcpinfo output incorrect"
+  exit 1
+fi
+
+rm -f build/test/info2.log
+rm -rf build/test/libdcp-test
+
+cp -r ../libdcp-test build/test
+for d in `find build/test/libdcp-test -mindepth 1 -maxdepth 1 -type d`; do
+  if [ `basename $d` != ".git" ]; then
+    LD_LIBRARY_PATH=build/src:build/asdcplib/src build/test/rewrite_subs $d
+    LD_LIBRARY_PATH=build/src:build/asdcplib/src build/tools/dcpinfo -s $d >> build/test/info2.log
+  fi
+done
+
+sed -i "s/DCP: build\/test/DCP: \.\./g" build/test/info2.log
+
+diff -q build/test/info2.log ../libdcp-test/info.log
+if [ "$?" != "0" ]; then
+  echo "FAIL: dcpinfo output from rewrite incorrect"
+  exit 1
+fi
+
+diff build/test/baz/video1.mxf build/test/baz/video2.mxf
+if [ "$?" != "0" ]; then
+  echo "FAIL: MXFs from recovery incorrect"
+  exit 1
+fi
+    
+echo "PASS"