mirror of https://codeberg.org/glenneth/stash.git
40 lines
1009 B
Bash
Executable File
40 lines
1009 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# Exit on error
|
|
set -e
|
|
|
|
# Directory setup
|
|
PROJECT_ROOT="$PWD"
|
|
MODULE_DIR="$PROJECT_ROOT/modules"
|
|
TEST_DIR="$PROJECT_ROOT/tests"
|
|
|
|
# Add project directories to GUILE_LOAD_PATH
|
|
export GUILE_LOAD_PATH="$PROJECT_ROOT:$MODULE_DIR:$TEST_DIR:$GUILE_LOAD_PATH"
|
|
export GUILE_LOAD_COMPILED_PATH="$MODULE_DIR:$TEST_DIR:$GUILE_LOAD_COMPILED_PATH"
|
|
|
|
# Disable auto-compilation during tests
|
|
export GUILE_AUTO_COMPILE=0
|
|
|
|
# Compile all Scheme files first
|
|
echo "Compiling Scheme modules..."
|
|
find "$MODULE_DIR" -name "*.scm" -type f -exec guild compile {} \;
|
|
echo "Compiling test files..."
|
|
find "$TEST_DIR" -name "*.scm" -type f -exec guild compile {} \;
|
|
|
|
# Function to run a test file
|
|
run_test() {
|
|
local test_file="$1"
|
|
echo "Running tests in $test_file..."
|
|
guile --no-auto-compile "$test_file"
|
|
}
|
|
|
|
# Run all test files
|
|
echo "Running tests..."
|
|
for test_file in "$TEST_DIR"/*-test.scm; do
|
|
if [ -f "$test_file" ]; then
|
|
run_test "$test_file"
|
|
fi
|
|
done
|
|
|
|
echo "All tests completed successfully!"
|