X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=run-tests.sh;h=9456273a9c93c5ea2e2c408e486068091aa5baac;hb=414c44166031003b29d1b0b2fd2c9748a63260b4;hp=d945f2ce1c2934906225718d209397eddafdebb8;hpb=4f6142b7d4c6d4c9db3f54e4893bff1dc9c5085f;p=libdcp.git diff --git a/run-tests.sh b/run-tests.sh index d945f2ce..9456273a 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -1,19 +1,35 @@ -#!/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 +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 -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 + +diff -ur test/ref/DCP/bar build/test/bar if [ "$?" != "0" ]; then echo "FAIL: files differ" exit 1 @@ -21,23 +37,45 @@ fi rm -f build/test/info.log -if [ -e "../libdcp-test" ]; then - for d in `find ../libdcp-test -mindepth 1 -maxdepth 1 -type d`; do +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 - echo "FAIL: dcpinfo failed" + echo "FAIL: dcpinfo failed for $d" exit 1 fi - done -else - echo "Test corpus not found" + fi +done + +diff -q build/test/info.log ../libdcp-test/info.log +if [ "$?" != "0" ]; then + echo "FAIL: dcpinfo output incorrect" exit 1 fi -diff -q build/test/info.log test/ref/info.log +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 | 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 + 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 incorrect" + 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"