From 940fef353e6551f721651db79cb135219191ad9e Mon Sep 17 00:00:00 2001 From: Björn Persson Date: Mon, 16 Dec 2013 17:27:40 +0100 Subject: the beginning of a testsuite --- testsuite/run_tests | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 testsuite/run_tests (limited to 'testsuite/run_tests') diff --git a/testsuite/run_tests b/testsuite/run_tests new file mode 100755 index 0000000..dfdfe75 --- /dev/null +++ b/testsuite/run_tests @@ -0,0 +1,58 @@ +#!/bin/sh + +# Comfignat's testsuite +# Copyright 2013 B. Persson, Bjorn@Rombobeorn.se +# +# This material is provided as is, with absolutely no warranty expressed +# or implied. Any use is at your own risk. +# +# Permission is hereby granted to use or copy this program +# for any purpose, provided the above notices are retained on all copies. +# Permission to modify the code and to distribute modified code is granted, +# provided the above notices are retained, and a notice that the code was +# modified is included with the above copyright notice. + + +# It is hoped that this program will work in any Posix-compliant shell. + +set -e + +outer_srcdir="$1" +outer_builddir="$2" + +passed=0 +failed=0 + +Comfignat_overriding_absolute_builddir= +Comfignat_overriding_absolute_objdir= +Comfignat_overriding_absolute_stagedir= + +rm -Rf "${outer_builddir}"/testruns + +for source_directory in "${outer_srcdir}"/testsuite/sources/* ; do + for location_file in "${outer_srcdir}"/testsuite/locations/* ; do + for input_script in "${outer_srcdir}"/testsuite/inputs/* ; do + test_name=$(basename "${source_directory}")+$(basename "${location_file}")+$(basename "${input_script}") + testrundir="${outer_builddir}"/testruns/"${test_name}" + mkdir -p "${testrundir}" + cd "${testrundir}" + . "${location_file}" + mkdir -p "${srcdir}" "${builddir}" + cp -RHp "${source_directory}"/* "${srcdir}" + cp -p "${outer_srcdir}"/comfignat.* "${srcdir}" + export srcdir builddir relative_builddir + if sh -e "${input_script}" >output 2>&1 ; then + verdict=PASSED + passed=$((passed + 1)) + else + verdict=FAILED + failed=$((failed + 1)) + fi + echo "${test_name}: ${verdict}" + done + done +done + +echo +echo "passed: ${passed}, failed: ${failed}" +exit ${failed} -- cgit v1.2.3