Fix incorrect free and leak.
[libdcp.git] / run-tests.sh
index 888968add791b8110953fea3d40db0885a0bab0c..9456273a9c93c5ea2e2c408e486068091aa5baac 100755 (executable)
@@ -1,12 +1,18 @@
-#!/bin/bash
+#!/bin/bash -e
 
 #
-# Runs our test suite, which builds a DCP.
-# The output is compared against the one
+# Runs our test suite, which (amongst other things)
+# builds a couple of DCPs.
+# The outputs are compared against the ones
 # in test/ref/DCP, and an error is given
 # if anything is different.
 #
 
+if [ ! -e "../libdcp-test" ]; then
+  echo "Test corpus not found"
+  exit 1
+fi
+
 if [ "$1" == "--debug" ]; then
   shift
   LD_LIBRARY_PATH=build/src:build/asdcplib/src gdb --args build/test/tests
@@ -16,20 +22,22 @@ elif [ "$1" == "--valgrind" ]; then
 else
   LD_LIBRARY_PATH=build/src:build/asdcplib/src build/test/tests
 fi
-diff -ur test/ref/DCP build/test/foo
+
+diff -ur test/ref/DCP/foo build/test/foo
 if [ "$?" != "0" ]; then
   echo "FAIL: files differ"
   exit 1
 fi
 
-rm -f build/test/info.log
-
-if [ ! -e "../libdcp-test" ]; then
-  echo "Test corpus not found"
+diff -ur test/ref/DCP/bar build/test/bar
+if [ "$?" != "0" ]; then
+  echo "FAIL: files differ"
   exit 1
 fi
 
-for d in `find ../libdcp-test -mindepth 1 -maxdepth 1 -type d`; do
+rm -f build/test/info.log
+
+for d in `find ../libdcp-test -mindepth 1 -maxdepth 1 -type d | sort`; 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
@@ -49,7 +57,7 @@ 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
+for d in `find build/test/libdcp-test -mindepth 1 -maxdepth 1 -type d | sort`; 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