annotate tests/run-tests.sh @ 402:58b88ab69424 api-inversion

Move the struct adb definition from the auidioDB_API.h into the audioDB-internals.h header file, leaving only the typedef behind. Thus a user of the API sees only an incomplete type, which cannot be instantiated (but /pointers/ to it can); there's then less temptation to break the abstraction barrier by using structure fields in client code. Not only that, but we can now safely put C++ stuff in the structure. Take advantage of this by putting a std::set<std::string> in there, to hold all the keys currently in the database; populate this field on audiodb_open() (and delete it on audiodb_close). This will be useful when we come to implement variants of audiodb_insert().
author mas01cr
date Wed, 03 Dec 2008 17:40:15 +0000
parents fe4dc39b2dd7
children 216b55457009
rev   line source
mas01cr@252 1 #! /bin/bash
mas01cr@38 2
mas01cr@39 3 AUDIODB=../../${EXECUTABLE:-audioDB}
mas01cr@39 4 export AUDIODB
mas01cr@39 5
mas01cr@252 6 if [ -x ${AUDIODB#../} ]; then
mas01cr@39 7 :
mas01cr@39 8 else
mas01cr@252 9 echo Cannot execute audioDB: ${AUDIODB#../}
mas01cr@39 10 exit 1
mas01cr@39 11 fi
mas01cr@39 12
mas01cr@164 13 if [ "$1" = "--full" ]; then
mas01cr@164 14 pattern="[0-9][0-9][0-9][0-9]*"
mas01cr@164 15 else
mas01cr@164 16 pattern="[0-8][0-9][0-9][0-9]*"
mas01cr@164 17 fi
mas01cr@164 18
mas01cr@164 19 for file in ${pattern}; do
mas01cr@38 20 if [ -d ${file} ]; then
mas01cr@38 21 if [ -f ${file}/run-test.sh ]; then
mas01cr@67 22 echo -n Running test ${file}
mas01cr@67 23 if [ -f ${file}/short-description ]; then
mas01cr@67 24 awk '{ printf(" (%s)",$0) }' < ${file}/short-description
mas01cr@67 25 fi
mas01cr@67 26 echo -n :
mas01cr@252 27 (cd ${file} && /bin/bash ./run-test.sh > test.out 2> test.err)
mas01cr@38 28 EXIT_STATUS=$?
mas01cr@239 29 if [ ${EXIT_STATUS} -eq 14 ]; then
mas01cr@239 30 echo " n/a."
mas01cr@239 31 elif [ ${EXIT_STATUS} -ne 104 ]; then
mas01cr@239 32 echo " failed (exit status ${EXIT_STATUS})."
mas01cr@67 33 FAILED=true
mas01cr@67 34 else
mas01cr@67 35 echo " success."
mas01cr@38 36 fi
mas01cr@38 37 else
mas01cr@38 38 echo Skipping test ${file}
mas01cr@38 39 fi
mas01cr@38 40 fi
mas01cr@38 41 done
mas01cr@67 42
mas01cr@73 43 if [ -z "${FAILED}" ]; then
mas01cr@67 44 exit 0
mas01cr@67 45 else
mas01cr@67 46 exit 1
mas01cr@67 47 fi