1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- #!/bin/sh
- TESTS_DIR="./tests"
- CONFIG_DIR=${TESTS_DIR}"/config"
- CHANGES_DIR="/tmp/.uci"
- TMP_DIR=${TESTS_DIR}"/tmp"
- FULL_SUITE=${TESTS_DIR}"/full_suite.sh"
- UCI_BIN=${UCI_BIN:-"../uci"}
- [ -x "$UCI_BIN" ] || {
- echo "uci is not present." >&2
- return 1
- }
- VALGRIND="valgrind --quiet --show-leak-kinds=all --leak-check=full --track-origins=yes"
- UCI_BIN="${VALGRIND} ${UCI_BIN}"
- UCI="${UCI_BIN} -c ${CONFIG_DIR} -p ${CHANGES_DIR}"
- UCI_Q="${UCI_BIN} -c ${CONFIG_DIR} -p ${CHANGES_DIR} -q"
- REF_DIR="./references"
- SCRIPTS_DIR="./tests.d"
- DO_TEST="./shunit2/shunit2"
- rm -rf ${TESTS_DIR}
- mkdir -p ${TESTS_DIR}
- cat << 'EOF' > ${FULL_SUITE}
- setUp() {
- mkdir -p ${CONFIG_DIR} ${CHANGES_DIR} ${TMP_DIR}
- }
- tearDown() {
- rm -rf ${CONFIG_DIR} ${CHANGES_DIR} ${TMP_DIR}
- }
- assertSameFile() {
- local ref=$1
- local test=$2
- diff -qr $ref $test
- assertTrue $? || {
- echo "REF:"
- cat $ref
- echo "----"
- echo "TEST:"
- cat $test
- echo "----"
- }
- }
- assertNotSegFault()
- {
- [ $1 -eq 139 ] && fail "Returned with 139: segmentation fault (SIGSEGV)!!!"
- }
- assertNotIllegal()
- {
- [ $1 -eq 132 ] && fail "Returned with 132: Illegal instruction (SIGILL)!!!"
- }
- assertFailWithNoReturn() {
- local test="$1"
- value=$( $test )
- rv=$?
- assertFalse "'$test' does not fail" $rv
- assertNotSegFault $rv
- assertNotIllegal $rv
- assertNull "'$test' returns '$value'" "$value"
- }
- EOF
- for suite in "${SCRIPTS_DIR}"/*
- do
- cat "${suite}" >> ${FULL_SUITE}
- done
- echo ". ${DO_TEST}" >> ${FULL_SUITE}
- REF_DIR="${REF_DIR}" \
- CONFIG_DIR="${CONFIG_DIR}" \
- CHANGES_DIR="${CHANGES_DIR}" \
- TMP_DIR="${TMP_DIR}" \
- UCI="${UCI}" \
- UCI_Q="${UCI_Q}" \
- /bin/sh ${FULL_SUITE}
- rm -rf ${TESTS_DIR}
|