Super basic testing framework

main
Brian Picciano 9 months ago
parent 3d6ed8604a
commit e66f67da4a
  1. 6
      default.nix
  2. 3
      test.sh
  3. 2
      tests/00-version.sh
  4. 27
      tests/entrypoint.sh

@ -169,4 +169,10 @@ in rec {
mv Isle-* "$out"/bin/isle
'';
};
tests = pkgs.writeShellScript "isle-tests" ''
export PATH=$PATH:${appImage}/bin
test_dir=${./tests}
exec $SHELL $test_dir/entrypoint.sh
'';
}

@ -0,0 +1,3 @@
#!/usr/bin/env sh
$(nix-build --no-out-link -A tests)

@ -0,0 +1,2 @@
version="$(isle version)"
test "$(echo "$version" | wc -l)" -gt 0

@ -0,0 +1,27 @@
set -e
# cd into script's directory
cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null
tmp="$(mktemp --tmpdir -d isle-tests.XXXXXX)"
trap 'rm -rf $tmp' EXIT
export TMPDIR="$tmp"
echo "tmp dir is $TMPDIR"
echo -e '\nrunning all tests...\n'
for file in $(find . -type f -name '*.sh' | grep -v entrypoint.sh | sort -n); do
echo "running test $file"
if ! $SHELL -e -x "$file" >"$tmp/$file.log" 2>&1; then
echo "TEST FAILED"
echo "output of test is as follows"
echo "------------------------------"
cat "$tmp/$file.log"
echo "------------------------------"
exit 1
fi
done
echo -e '\ntests succeeded!'
Loading…
Cancel
Save