123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #!/usr/bin/env bash
- # Function to perform cleanup
- cleanup() {
- echo "Cleaning up..."
- if [ -n "$FAKE_AUTH_MINT_PID" ]; then
- echo "Killing the fake auth mint process"
- kill -2 $FAKE_AUTH_MINT_PID 2>/dev/null || true
- wait $FAKE_AUTH_MINT_PID 2>/dev/null || true
- fi
- echo "Mint binary terminated"
-
- # Remove the temporary directory
- if [ -n "$CDK_ITESTS_DIR" ] && [ -d "$CDK_ITESTS_DIR" ]; then
- rm -rf "$CDK_ITESTS_DIR"
- echo "Temp directory removed: $CDK_ITESTS_DIR"
- fi
- # Unset all environment variables
- unset CDK_ITESTS_DIR
- unset CDK_ITESTS_MINT_ADDR
- unset CDK_ITESTS_MINT_PORT
- unset FAKE_AUTH_MINT_PID
- }
- # Set up trap to call cleanup on script exit
- trap cleanup EXIT INT TERM
- # Create a temporary directory
- export CDK_ITESTS_DIR=$(mktemp -d)
- export CDK_ITESTS_MINT_ADDR="127.0.0.1"
- export CDK_ITESTS_MINT_PORT=8087
- # Check if the temporary directory was created successfully
- if [[ ! -d "$CDK_ITESTS_DIR" ]]; then
- echo "Failed to create temp directory"
- exit 1
- fi
- echo "Temp directory created: $CDK_ITESTS_DIR"
- # Check if a database type was provided as first argument, default to sqlite
- export MINT_DATABASE="${1:-sqlite}"
- # Check if OPENID_DISCOVERY was provided as second argument, default to a test value
- export OPENID_DISCOVERY="${2:-http://127.0.0.1:8080/realms/cdk-test-realm/.well-known/openid-configuration}"
- # Build the project
- cargo build -p cdk-integration-tests
- # Auth configuration
- export CDK_TEST_OIDC_USER="cdk-test"
- export CDK_TEST_OIDC_PASSWORD="cdkpassword"
- # Start the fake auth mint in the background
- echo "Starting fake auth mint with discovery URL: $OPENID_DISCOVERY"
- echo "Using temp directory: $CDK_ITESTS_DIR"
- cargo run -p cdk-integration-tests --bin start_fake_auth_mint -- --enable-logging "$MINT_DATABASE" "$CDK_ITESTS_DIR" "$OPENID_DISCOVERY" "$CDK_ITESTS_MINT_PORT" &
- # Store the PID of the mint process
- FAKE_AUTH_MINT_PID=$!
- # Wait a moment for the mint to start
- sleep 5
- # Check if the mint is running
- if ! kill -0 $FAKE_AUTH_MINT_PID 2>/dev/null; then
- echo "Failed to start fake auth mint"
- exit 1
- fi
- echo "Fake auth mint started with PID: $FAKE_AUTH_MINT_PID"
- # Run cargo test
- echo "Running fake auth integration tests..."
- cargo test -p cdk-integration-tests --test fake_auth
- # Capture the exit status of cargo test
- test_status=$?
- # Exit with the status of the test
- exit $test_status
|