diff --git a/test/0-init-fail-json.sh b/test/0-init-fail-json.sh index 63ebb5a..20cad0f 100755 --- a/test/0-init-fail-json.sh +++ b/test/0-init-fail-json.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-fail-pack" deps="logger PACKAGE_DONT_EXIST" # would be very unlucky if it does exist... diff --git a/test/0-init-fail.sh b/test/0-init-fail.sh index db594b2..e577260 100755 --- a/test/0-init-fail.sh +++ b/test/0-init-fail.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-fail-pack" deps="logger PACKAGE_DONT_EXIST" # would be very unlucky if it does exist... diff --git a/test/0-init-interactive.sh b/test/0-init-interactive.sh index 65065f3..ddc8016 100755 --- a/test/0-init-interactive.sh +++ b/test/0-init-interactive.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-interactive" echo -e "sdl\ntest\ndesc\nauthor\ngpl\ncopy\n\n" | $DUB init $packname diff --git a/test/0-init-multi-json.sh b/test/0-init-multi-json.sh index c9fd92d..a48257e 100755 --- a/test/0-init-multi-json.sh +++ b/test/0-init-multi-json.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-multi-pack" deps="openssl logger" type="vibe.d" diff --git a/test/0-init-multi.sh b/test/0-init-multi.sh index a03694e..3248dbb 100755 --- a/test/0-init-multi.sh +++ b/test/0-init-multi.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-multi-pack" deps="openssl logger" type="vibe.d" diff --git a/test/0-init-simple-json.sh b/test/0-init-simple-json.sh index a18bd3d..445baf8 100755 --- a/test/0-init-simple-json.sh +++ b/test/0-init-simple-json.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-simple-pack" $DUB init -n $packname -f json diff --git a/test/0-init-simple.sh b/test/0-init-simple.sh index 6b25f5a..0da2c97 100755 --- a/test/0-init-simple.sh +++ b/test/0-init-simple.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh packname="0-init-simple-pack" $DUB init -n $packname --format sdl diff --git a/test/4-describe-data-1-list.sh b/test/4-describe-data-1-list.sh index aefbf78..e30ace3 100755 --- a/test/4-describe-data-1-list.sh +++ b/test/4-describe-data-1-list.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/describe-project diff --git a/test/4-describe-data-2-dmd.sh b/test/4-describe-data-2-dmd.sh index 3f30769..d323bc5 100755 --- a/test/4-describe-data-2-dmd.sh +++ b/test/4-describe-data-2-dmd.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh if [ "${DC}" != "dmd" ]; then echo Skipping DMD-centric test on configuration that lacks DMD. diff --git a/test/4-describe-data-3-zero-delim.sh b/test/4-describe-data-3-zero-delim.sh index 2d6738b..aee4d08 100755 --- a/test/4-describe-data-3-zero-delim.sh +++ b/test/4-describe-data-3-zero-delim.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/describe-project diff --git a/test/4-describe-import-paths.sh b/test/4-describe-import-paths.sh index ba03205..375bc40 100755 --- a/test/4-describe-import-paths.sh +++ b/test/4-describe-import-paths.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/describe-project diff --git a/test/4-describe-json.sh b/test/4-describe-json.sh index 5641595..21f5105 100755 --- a/test/4-describe-json.sh +++ b/test/4-describe-json.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/describe-project diff --git a/test/4-describe-string-import-paths.sh b/test/4-describe-string-import-paths.sh index aa64979..c1106a6 100755 --- a/test/4-describe-string-import-paths.sh +++ b/test/4-describe-string-import-paths.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/describe-project diff --git a/test/5-convert-stdout.sh b/test/5-convert-stdout.sh index 86cba02..a1a9bd7 100755 --- a/test/5-convert-stdout.sh +++ b/test/5-convert-stdout.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash -set -e +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/1-exec-simple diff --git a/test/5-convert.sh b/test/5-convert.sh index fac1360..3bbbe2f 100755 --- a/test/5-convert.sh +++ b/test/5-convert.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/5-convert diff --git a/test/common.sh b/test/common.sh new file mode 100644 index 0000000..6ea6db9 --- /dev/null +++ b/test/common.sh @@ -0,0 +1,8 @@ +SOURCE_FILE=$_ + +set -ueEo pipefail + +function error { + >&2 echo "Error: $SOURCE_FILE failed at line $1" +} +trap 'error $LINENO' ERR diff --git a/test/ddox.sh b/test/ddox.sh index c68e023..44f836e 100755 --- a/test/ddox.sh +++ b/test/ddox.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh (cd $CURR_DIR/ddox/default && $DUB build -b ddox) grep -qF ddox_project $CURR_DIR/ddox/default/docs/index.html diff --git a/test/feat663-search.sh b/test/feat663-search.sh index 1f6f3a4..2bf824c 100755 --- a/test/feat663-search.sh +++ b/test/feat663-search.sh @@ -1,5 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh ${DUB} search 2>/dev/null && exit 1 ${DUB} search nonexistent123456789package 2>/dev/null && exit 1 ${DUB} search dub | grep -q '^dub' || exit 1 diff --git a/test/interactive-remove.sh b/test/interactive-remove.sh index a0bb59e..639e923 100755 --- a/test/interactive-remove.sh +++ b/test/interactive-remove.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -euo pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh $DUB fetch dub --version=0.9.20 && [ -d $HOME/.dub/packages/dub-0.9.20/dub ] $DUB fetch dub --version=0.9.21 && [ -d $HOME/.dub/packages/dub-0.9.21/dub ] diff --git a/test/issue1004-override-config.sh b/test/issue1004-override-config.sh index 7bcd443..b9b11b7 100755 --- a/test/issue1004-override-config.sh +++ b/test/issue1004-override-config.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue1004-override-config ${DUB} build --bare main --override-config a/success || exit 1 diff --git a/test/issue1005-configuration-resolution.sh b/test/issue1005-configuration-resolution.sh index 3665a5e..71b8097 100755 --- a/test/issue1005-configuration-resolution.sh +++ b/test/issue1005-configuration-resolution.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue1005-configuration-resolution ${DUB} build --bare main || exit 1 diff --git a/test/issue1024-selective-upgrade.sh b/test/issue1024-selective-upgrade.sh index a159216..59bded1 100755 --- a/test/issue1024-selective-upgrade.sh +++ b/test/issue1024-selective-upgrade.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue1024-selective-upgrade echo "{\"fileVersion\": 1,\"versions\": {\"a\": \"1.0.0\", \"b\": \"1.0.0\"}}" > main/dub.selections.json $DUB upgrade --bare --root=main a || exit 1 diff --git a/test/issue103-single-file-package.sh b/test/issue103-single-file-package.sh index 64c5848..393e9f5 100755 --- a/test/issue103-single-file-package.sh +++ b/test/issue103-single-file-package.sh @@ -1,5 +1,5 @@ -#!/bin/sh -set -e +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR} rm -f single-file-test diff --git a/test/issue1091-bogus-rebuild.sh b/test/issue1091-bogus-rebuild.sh index 689f572..828dd29 100755 --- a/test/issue1091-bogus-rebuild.sh +++ b/test/issue1091-bogus-rebuild.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash -set -e +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/1-exec-simple rm -f dub.selections.json diff --git a/test/issue346-redundant-flags.sh b/test/issue346-redundant-flags.sh index fb88526..502ed94 100755 --- a/test/issue346-redundant-flags.sh +++ b/test/issue346-redundant-flags.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue346-redundant-flags ${DUB} build --bare --force --compiler=${DC} -a x86_64 -v main 2>&1 | grep -e "-m64 -m64" -c && exit 1 || exit 0 diff --git a/test/issue361-optional-deps.sh b/test/issue361-optional-deps.sh index 69b7f0f..8656990 100755 --- a/test/issue361-optional-deps.sh +++ b/test/issue361-optional-deps.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue361-optional-deps rm -rf a/.dub rm -rf a/b/.dub diff --git a/test/issue564-invalid-upgrade-dependency.sh b/test/issue564-invalid-upgrade-dependency.sh index a1af6bd..729005b 100755 --- a/test/issue564-invalid-upgrade-dependency.sh +++ b/test/issue564-invalid-upgrade-dependency.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue564-invalid-upgrade-dependency rm -rf a-1.0.0/.dub rm -rf a-1.1.0/.dub diff --git a/test/issue586-subpack-dep.sh b/test/issue586-subpack-dep.sh index fe0ad5f..6f8fff4 100755 --- a/test/issue586-subpack-dep.sh +++ b/test/issue586-subpack-dep.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue586-subpack-dep rm -rf a/.dub rm -rf a/b/.dub diff --git a/test/issue613-dynlib-pic.sh b/test/issue613-dynlib-pic.sh index d7e90b7..c90d8d8 100755 --- a/test/issue613-dynlib-pic.sh +++ b/test/issue613-dynlib-pic.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue613-dynlib-pic rm -rf .dub if [ "${DC}" = "dmd" ]; then diff --git a/test/issue616-describe-vs-generate-commands.sh b/test/issue616-describe-vs-generate-commands.sh index 8f85c09..698ef63 100755 --- a/test/issue616-describe-vs-generate-commands.sh +++ b/test/issue616-describe-vs-generate-commands.sh @@ -1,5 +1,5 @@ -#!/bin/bash -set -e -o pipefail +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd "$CURR_DIR"/issue616-describe-vs-generate-commands diff --git a/test/issue672-upgrade-optional.sh b/test/issue672-upgrade-optional.sh index 8c16aa6..3ec6cbc 100755 --- a/test/issue672-upgrade-optional.sh +++ b/test/issue672-upgrade-optional.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue672-upgrade-optional rm -rf b/.dub echo "{\"fileVersion\": 1,\"versions\": {\"dub\": \"1.0.0\"}}" > dub.selections.json diff --git a/test/issue672-upgrade-optional/dub.selections.json b/test/issue672-upgrade-optional/dub.selections.json index 44b07d4..712a9f6 100644 --- a/test/issue672-upgrade-optional/dub.selections.json +++ b/test/issue672-upgrade-optional/dub.selections.json @@ -1,6 +1,6 @@ { "fileVersion": 1, "versions": { - "dub": "1.0.0" + "dub": "1.1.0" } } diff --git a/test/issue674-concurrent-dub.sh b/test/issue674-concurrent-dub.sh index d1cfadd..96584ba 100755 --- a/test/issue674-concurrent-dub.sh +++ b/test/issue674-concurrent-dub.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -e -o pipefail +. $(dirname "${BASH_SOURCE[0]}")/common.sh TMPDIR=$(mktemp -d $(basename $0).XXXXXX) diff --git a/test/issue686-multiple-march.sh b/test/issue686-multiple-march.sh index cdf2cde..8cb8135 100755 --- a/test/issue686-multiple-march.sh +++ b/test/issue686-multiple-march.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash -set -e +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue686-multiple-march diff --git a/test/issue782-gtkd-pkg-config.sh b/test/issue782-gtkd-pkg-config.sh index 434ca02..6e9a884 100755 --- a/test/issue782-gtkd-pkg-config.sh +++ b/test/issue782-gtkd-pkg-config.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh if [ "${DC}" != "dmd" ]; then echo "Skipping issue782-dtkd-pkg-config test for ${DC}..." else diff --git a/test/issue813-fixed-dependency.sh b/test/issue813-fixed-dependency.sh index 2785cdb..d150e3c 100755 --- a/test/issue813-fixed-dependency.sh +++ b/test/issue813-fixed-dependency.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue813-fixed-dependency rm -rf main/.dub rm -rf sub/.dub diff --git a/test/issue813-pure-sub-dependency.sh b/test/issue813-pure-sub-dependency.sh index 85ab84e..0945d9c 100755 --- a/test/issue813-pure-sub-dependency.sh +++ b/test/issue813-pure-sub-dependency.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue813-pure-sub-dependency rm -rf main/.dub rm -rf sub/.dub diff --git a/test/issue820-extra-fields-after-convert.sh b/test/issue820-extra-fields-after-convert.sh index ec9e935..a0e69e3 100755 --- a/test/issue820-extra-fields-after-convert.sh +++ b/test/issue820-extra-fields-after-convert.sh @@ -1,6 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash -set -e +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/1-exec-simple diff --git a/test/issue884-init-defer-file-creation.sh b/test/issue884-init-defer-file-creation.sh index 38c393e..d895cc1 100755 --- a/test/issue884-init-defer-file-creation.sh +++ b/test/issue884-init-defer-file-creation.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -e +. $(dirname "${BASH_SOURCE[0]}")/common.sh TMPDIR=${CURR_DIR}tmppack echo $TMPDIR diff --git a/test/issue895-local-configuration.sh b/test/issue895-local-configuration.sh index 8edc10f..2727041 100755 --- a/test/issue895-local-configuration.sh +++ b/test/issue895-local-configuration.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -set -e +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR} mkdir ../etc diff --git a/test/issue923-subpackage-deps.sh b/test/issue923-subpackage-deps.sh index f35d58c..2d415ad 100755 --- a/test/issue923-subpackage-deps.sh +++ b/test/issue923-subpackage-deps.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue923-subpackage-deps rm -rf main/.dub rm -rf a/.dub diff --git a/test/issue934-path-dep.sh b/test/issue934-path-dep.sh index 6aa477a..67703f9 100755 --- a/test/issue934-path-dep.sh +++ b/test/issue934-path-dep.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue934-path-dep rm -rf main/.dub rm -rf a/.dub diff --git a/test/issue990-download-optional-selected.sh b/test/issue990-download-optional-selected.sh index 1d5355c..2335f5b 100755 --- a/test/issue990-download-optional-selected.sh +++ b/test/issue990-download-optional-selected.sh @@ -1,5 +1,6 @@ -#!/bin/sh +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh cd ${CURR_DIR}/issue990-download-optional-selected rm -rf b/.dub ${DUB} remove gitcompatibledubpackage -n --version=* diff --git a/test/run-unittest.sh b/test/run-unittest.sh index deaf166..7a4b4d6 100755 --- a/test/run-unittest.sh +++ b/test/run-unittest.sh @@ -1,6 +1,6 @@ -#!/bin/bash +#!/usr/bin/env bash -set -v +. $(dirname "${BASH_SOURCE[0]}")/common.sh function log() { echo -e "\033[0;33m[INFO] "$@"\033[0m" @@ -19,11 +19,11 @@ export -f log export -f die -if [ -z ${DUB} ]; then +if [ -z ${DUB:-} ]; then die 'Error: Variable $DUB must be defined to run the tests.' fi -if [ -z ${DC} ]; then +if [ -z ${DC:-} ]; then log '$DC not defined, assuming dmd...' DC=dmd fi @@ -31,8 +31,8 @@ CURR_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd) for script in $(ls $CURR_DIR/*.sh); do - if [ "$script" = "$(readlink -f ${BASH_SOURCE[0]})" ]; then continue; fi - if [ -e $script.min_frontend ] && [ ! -z "$FRONTEND" -a "$FRONTEND" \< $(cat $script.min_frontend) ]; then continue; fi + if [ "$script" = "$(readlink -f ${BASH_SOURCE[0]})" ] || [ "$(basename $script)" = "common.sh" ]; then continue; fi + if [ -e $script.min_frontend ] && [ ! -z ${FRONTEND:-} -a ${FRONTEND:-} \< $(cat $script.min_frontend) ]; then continue; fi log "Running $script..." DUB=$DUB DC=$DC CURR_DIR="$CURR_DIR" $script || logError "Script failure." done diff --git a/test/test-version-opt.sh b/test/test-version-opt.sh index 2931868..3abf31b 100755 --- a/test/test-version-opt.sh +++ b/test/test-version-opt.sh @@ -1,3 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash +. $(dirname "${BASH_SOURCE[0]}")/common.sh $DUB --version | grep -qF 'DUB version'