46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# FileBox Fallback Smoke Test
|
||
|
|
# Tests all three NYASH_FILEBOX_MODE modes: auto, core-ro, plugin-only
|
||
|
|
|
||
|
|
set -e
|
||
|
|
|
||
|
|
# Build first
|
||
|
|
echo "=== Building hakorune ==="
|
||
|
|
cargo build --release
|
||
|
|
|
||
|
|
HAKO="./target/release/hakorune"
|
||
|
|
TEST_FILE="local_tests/test_filebox_fallback.hako"
|
||
|
|
|
||
|
|
# Test 1: Auto mode (default) - should fallback to builtin
|
||
|
|
echo ""
|
||
|
|
echo "=== Test 1: Auto mode (default, plugins disabled) ==="
|
||
|
|
if NYASH_DISABLE_PLUGINS=1 NYASH_FILEBOX_MODE=auto "$HAKO" "$TEST_FILE" 2>&1 | grep -E "FileBox.*builtin.*core-ro.*fallback|created successfully"; then
|
||
|
|
echo "✓ Test 1 passed: Auto mode uses builtin fallback"
|
||
|
|
else
|
||
|
|
echo "✗ Test 1 failed"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Test 2: Core-ro mode - should use builtin directly
|
||
|
|
echo ""
|
||
|
|
echo "=== Test 2: Core-ro mode ==="
|
||
|
|
if NYASH_DISABLE_PLUGINS=1 NYASH_FILEBOX_MODE=core-ro "$HAKO" "$TEST_FILE" 2>&1 | grep -E "FileBox.*builtin.*core-ro|created successfully"; then
|
||
|
|
echo "✓ Test 2 passed: Core-ro mode uses builtin"
|
||
|
|
else
|
||
|
|
echo "✗ Test 2 failed"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Test 3: Plugin-only mode - should fail when plugins disabled
|
||
|
|
echo ""
|
||
|
|
echo "=== Test 3: Plugin-only mode (should fail) ==="
|
||
|
|
if ! NYASH_DISABLE_PLUGINS=1 NYASH_FILEBOX_MODE=plugin-only "$HAKO" "$TEST_FILE" 2>&1; then
|
||
|
|
echo "✓ Test 3 passed: Plugin-only mode correctly fails when plugins disabled"
|
||
|
|
else
|
||
|
|
echo "✗ Test 3 failed: Plugin-only mode should have failed"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
echo ""
|
||
|
|
echo "=== All fallback tests passed! ==="
|