From 21c25b3d6c5b9ea55f3245d7ccca189b37f5f493 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 16 Mar 2014 01:08:00 +0000 Subject: [PATCH] Don't include assert.sh or stub.sh in git repo Have make-file download them when running make test. --- .gitignore | 2 + Makefile | 22 ++++++-- test/assert.sh | 139 ------------------------------------------------- test/stub.sh | 35 ------------- 4 files changed, 21 insertions(+), 177 deletions(-) create mode 100644 .gitignore delete mode 100644 test/assert.sh delete mode 100644 test/stub.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3aefff8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +test/assert.sh +test/stub.sh diff --git a/Makefile b/Makefile index 7077688..e4608f5 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,24 @@ +test: build prepare + ./test.sh + build: ./build.sh -test: build - ./test.sh +prepare: prepare-assert.sh prepare-stub.sh + +prepare-assert.sh: + test -f "test/assert.sh" || ( \ + echo "fetching assert.sh..." && \ + curl -s -L -o test/assert.sh \ + https://raw.github.com/lehmannro/assert.sh/master/assert.sh \ + ) + +prepare-stub.sh: + test -f "test/stub.sh" || ( \ + echo "fetching stub.sh..." && \ + curl -s -L -o test/stub.sh \ + https://raw.github.com/jimeh/stub.sh/master/stub.sh \ + ) .SILENT: -.PHONY: build test +.PHONY: build test prepare preare-assert.sh prepare-stub.sh diff --git a/test/assert.sh b/test/assert.sh deleted file mode 100644 index f3d03d8..0000000 --- a/test/assert.sh +++ /dev/null @@ -1,139 +0,0 @@ -#!/bin/bash -# assert.sh 1.0 - bash unit testing framework -# Copyright (C) 2009, 2010, 2011, 2012 Robert Lehmann -# -# http://github.com/lehmannro/assert.sh -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . - -export DISCOVERONLY=${DISCOVERONLY:-} -export DEBUG=${DEBUG:-} -export STOP=${STOP:-} -export INVARIANT=${INVARIANT:-} - -args="$(getopt -n "$0" -l verbose,help,stop,discover,invariant vhxdi $*)" \ -|| exit -1 -for arg in $args; do - case "$arg" in - -h) - echo "$0 [-vxid] [--verbose] [--stop] [--invariant] [--discover]" - echo "`sed 's/./ /g' <<< "$0"` [-h] [--help]" - exit 0;; - --help) - cat < [stdin] - (( tests_ran++ )) - [[ -n "$DISCOVERONLY" ]] && return - # printf required for formatting - printf -v expected "x${2:-}" # x required to overwrite older results - result="$(eval 2>/dev/null $1 <<< ${3:-})" - # Note: $expected is already decorated - if [[ "x$result" == "$expected" ]]; then - [[ -n "$DEBUG" ]] && echo -n . - return - fi - [[ -n "$DEBUG" ]] && echo -n X - result="$(sed -e :a -e '$!N;s/\n/\\n/;ta' <<< "$result")" - [[ -z "$result" ]] && result="nothing" || result="\"$result\"" - [[ -z "$2" ]] && expected="nothing" || expected="\"$2\"" - failure="expected $expected${_indent}got $result" - report="test #$tests_ran \"$1${3:+ <<< $3}\" failed:${_indent}$failure" - tests_errors[$tests_failed]="$report" - (( tests_failed++ )) - if [[ -n "$STOP" ]]; then - [[ -n "$DEBUG" ]] && echo - echo "$report" - exit 1 - fi -} - -assert_raises() { - # assert_raises [stdin] - (( tests_ran++ )) - [[ -n "$DISCOVERONLY" ]] && return - (eval $1 <<< ${3:-}) > /dev/null 2>&1 - status=$? - expected=${2:-0} - if [[ "$status" -eq "$expected" ]]; then - [[ -n "$DEBUG" ]] && echo -n . - return - fi - [[ -n "$DEBUG" ]] && echo -n X - failure="program terminated with code $status instead of $expected" - report="test #$tests_ran \"$1${3:+ <<< $3}\" failed:${_indent}$failure" - tests_errors[$tests_failed]="$report" - (( tests_failed++ )) - if [[ -n "$STOP" ]]; then - [[ -n "$DEBUG" ]] && echo - echo "$report" - exit 1 - fi -} - -_assert_reset diff --git a/test/stub.sh b/test/stub.sh deleted file mode 100644 index e262fdb..0000000 --- a/test/stub.sh +++ /dev/null @@ -1,35 +0,0 @@ -# Stub commands for testing purposes. -# -# Arguments: -# - $1: Name of command to stub. -# - $2: Output will go to STDERR when $2 is "STDERR". -# -stub() { - local cmd="$1" - if [ "$2" == "STDERR" ]; then local redirect=" 1>&2"; fi - - if [[ "$(type "$cmd" | head -1)" == *"is a function" ]]; then - local source="$(type "$cmd" | tail -n +2)" - source="${source/$cmd/non_stubbed_${cmd}}" - eval "$source" - fi - eval "$(echo -e "${1}() {\n echo \"$1 stub: \$@\"$redirect\n}")" -} - -# Restore the original command/function that was stubbed with stub(). -# -# Arguments: -# - $1: Name of command to restore. -# -restore() { - local cmd="$1" - unset -f "$cmd" - if type "non_stubbed_${cmd}" &>/dev/null; then - if [[ "$(type "non_stubbed_${cmd}" | head -1)" == *"is a function" ]]; then - local source="$(type "non_stubbed_$cmd" | tail -n +2)" - source="${source/non_stubbed_${cmd}/$cmd}" - eval "$source" - unset -f "non_stubbed_${cmd}" - fi - fi -}