aboutsummaryrefslogtreecommitdiff
path: root/tests/rt_generic.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/rt_generic.sh')
-rw-r--r--tests/rt_generic.sh87
1 files changed, 87 insertions, 0 deletions
diff --git a/tests/rt_generic.sh b/tests/rt_generic.sh
new file mode 100644
index 0000000..200f66f
--- /dev/null
+++ b/tests/rt_generic.sh
@@ -0,0 +1,87 @@
+#!/usr/bin/env bash
+set -x
+unset STASIS_SYSCONFDIR
+if [ -n "$GITHUB_TOKEN" ] && [ -z "$STASIS_GH_TOKEN"]; then
+ export STASIS_GH_TOKEN="$GITHUB_TOKEN"
+else
+ export STASIS_GH_TOKEN="anonymous"
+fi
+
+topdir=$(pwd)
+
+ws="rt_workspace"
+mkdir -p "$ws"
+ws="$(realpath $ws)"
+
+prefix="$ws"/local
+mkdir -p "$prefix"
+
+bdir="$ws"/build
+mkdir -p "$bdir"
+
+pushd "$bdir"
+cmake -DCMAKE_INSTALL_PREFIX="$prefix" "${topdir}"/../..
+make install
+export PATH="$prefix/bin:$PATH"
+popd
+
+pushd "$ws"
+ type -P stasis
+ type -P stasis_indexer
+
+ stasis --no-docker --no-artifactory --unbuffered -v "$topdir"/generic.ini
+ retcode=$?
+
+ set +x
+
+ echo "#### Files ####"
+ find stasis/*/output | sort
+ echo
+
+ echo "#### Contents ####"
+ files=$(find stasis/*/output -type f \( -name '*.yml' -o -name '*.md' -o -name '*.stasis' \) | sort)
+ for x in $files; do
+ echo
+ echo "FILENAME: $x"
+ echo
+ cat "$x"
+ echo "[EOF]"
+ echo
+
+ fail_on_main=(
+ "(null)"
+ )
+ for cond in "${fail_on_main[@]}"; do
+ if grep --color -H -n "$cond" "$x" >&2; then
+ echo "ERROR DETECTED IN $x!" >&2
+ retcode=2
+ fi
+ done
+ done
+
+ # Something above failed, so drop out. Don't bother indexing.
+ # Don't clean up either.
+ (( retcode )) && exit $retcode
+
+ fail_on_indexer=(
+ "(null)"
+ )
+ logfile="stasis_indexer.log"
+ set -x
+ stasis_indexer --web --unbuffered -v stasis/* 2>&1 | tee "$logfile"
+
+ set +x
+ find output
+
+ for cond in "${fail_on_indexer[@]}"; do
+ if grep --color -H -n "$cond" "$logfile" >&2; then
+ echo "ERROR DETECTED IN INDEX OPERATION!" >&2
+ exit 1
+ fi
+ done
+
+popd
+
+rm -rf "$ws"
+
+exit $retcode \ No newline at end of file