63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#! /bin/sh
 | 
						|
# $Id: gen_test_results.sh 54 2008-10-21 23:29:23Z kate.ward@forestent.com $
 | 
						|
# vim:et:ft=sh:sts=2:sw=2
 | 
						|
#
 | 
						|
# Copyright 2008 Kate Ward. All Rights Reserved.
 | 
						|
# Released under the LGPL (GNU Lesser General Public License)
 | 
						|
#
 | 
						|
# Author: kate.ward@forestent.com (Kate Ward)
 | 
						|
#
 | 
						|
# This script runs the provided unit tests and sends the output to the
 | 
						|
# appropriate file.
 | 
						|
#
 | 
						|
 | 
						|
# treat unset variables as an error
 | 
						|
set -u
 | 
						|
 | 
						|
die()
 | 
						|
{
 | 
						|
  [ $# -gt 0 ] && echo "error: $@" >&2
 | 
						|
  exit 1
 | 
						|
}
 | 
						|
 | 
						|
BASE_DIR="`dirname $0`/.."
 | 
						|
LIB_DIR="${BASE_DIR}/lib"
 | 
						|
 | 
						|
# load libraries
 | 
						|
. ${LIB_DIR}/shflags || die 'unable to load shflags library'
 | 
						|
. ${LIB_DIR}/shlib || die 'unable to load shlib library'
 | 
						|
. ${LIB_DIR}/versions || die 'unable to load versions library'
 | 
						|
 | 
						|
BASE_DIR=`shlib_relToAbsPath "${BASE_DIR}"`
 | 
						|
SRC_DIR="${BASE_DIR}/src"
 | 
						|
 | 
						|
os_name=`versions_osName |sed 's/ /_/g'`
 | 
						|
os_version=`versions_osVersion`
 | 
						|
 | 
						|
DEFINE_boolean force false 'force overwrite' f
 | 
						|
DEFINE_string output_dir "`pwd`" 'output dir' d
 | 
						|
DEFINE_string output_file "${os_name}-${os_version}.txt" 'output file' o
 | 
						|
DEFINE_string suite 'shunit2_test.sh' 'unit test suite' s
 | 
						|
FLAGS "${@:-}" || exit $?; shift ${FLAGS_ARGC}
 | 
						|
 | 
						|
# determine output filename
 | 
						|
output="${FLAGS_output_dir:+${FLAGS_output_dir}/}${FLAGS_output_file}"
 | 
						|
output=`shlib_relToAbsPath "${output}"`
 | 
						|
 | 
						|
# checks
 | 
						|
if [ -f "${output}" ]; then
 | 
						|
  if [ ${FLAGS_force} -eq ${FLAGS_TRUE} ]; then
 | 
						|
    rm -f "${output}"
 | 
						|
  else
 | 
						|
    echo "not overwriting '${output}'" >&2
 | 
						|
    exit ${FLAGS_ERROR}
 | 
						|
  fi
 | 
						|
fi
 | 
						|
touch "${output}" 2>/dev/null || die "unable to write to '${output}'"
 | 
						|
 | 
						|
# run tests
 | 
						|
( cd "${SRC_DIR}"; ./${FLAGS_suite} |tee "${output}" )
 | 
						|
 | 
						|
echo >&2
 | 
						|
echo "output written to '${output}'" >&2
 |