brewery
notashelf /
2a005574d3d6791783fb70fd460753557d3e3df2

nixir

public

Import-resolving Nix IR plugin

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/nixir.git
tests/integration/run.shBash75 lines2.1 KB
1
#!/usr/bin/env bash
2
set -euo pipefail
3
4
echo ""
5
6
PLUGIN_PATH="$(pwd)/build/nix-ir-plugin.so"
7
TEST_DIR="$(pwd)/tests/integration"
8
9
if [ ! -f "$PLUGIN_PATH" ]; then
10
	echo "ERROR: Plugin not found at $PLUGIN_PATH"
11
	exit 1
12
fi
13
14
echo "Plugin path: $PLUGIN_PATH"
15
echo ""
16
17
echo "Test 1: Plugin Loading"
18
echo "----------------------"
19
if nix-instantiate --plugin-files "$PLUGIN_PATH" --eval "$TEST_DIR/simple_eval.nix" 2>&1 | grep -q "30"; then
20
	echo "[PASS] Plugin loads and evaluates correctly"
21
else
22
	echo "[FAIL] Plugin failed to load or evaluate"
23
	exit 1
24
fi
25
echo ""
26
27
echo "Test 2: Normal Nix Evaluation (No Plugin)"
28
echo "------------------------------------------"
29
result=$(nix-instantiate --eval --strict --json "$TEST_DIR/regression_normal_nix.nix" 2>&1)
30
if echo "$result" | grep -q '"math":7'; then
31
	echo "[PASS] Normal Nix evaluation works without plugin"
32
else
33
	echo "[FAIL] Normal Nix evaluation broken"
34
	echo "$result"
35
	exit 1
36
fi
37
echo ""
38
39
echo "Test 3: Normal Nix Evaluation (With Plugin)"
40
echo "--------------------------------------------"
41
result=$(nix-instantiate --plugin-files "$PLUGIN_PATH" --eval --strict --json "$TEST_DIR/regression_normal_nix.nix" 2>&1)
42
if echo "$result" | grep -q '"math":7'; then
43
	echo "[PASS] Normal Nix evaluation works with plugin loaded"
44
else
45
	echo "[FAIL] Plugin breaks normal Nix evaluation"
46
	echo "$result"
47
	exit 1
48
fi
49
echo ""
50
51
echo "Test 4: Import Builtin"
52
echo "----------------------"
53
cd "$TEST_DIR"
54
result=$(nix-instantiate --plugin-files "$PLUGIN_PATH" --eval --strict --json import_test.nix 2>&1)
55
if echo "$result" | grep -q '"value":142'; then
56
	echo "[PASS] Import builtin works correctly"
57
else
58
	echo "[FAIL] Import builtin broken"
59
	echo "$result"
60
	exit 1
61
fi
62
cd - >/dev/null
63
echo ""
64
65
echo "Test 5: IR Builtins Available"
66
echo "------------------------------"
67
result=$(nix-instantiate --plugin-files "$PLUGIN_PATH" --eval "$TEST_DIR/ir_builtins_test.nix" 2>&1)
68
if echo "$result" | grep -q "info.*="; then
69
	echo "[PASS] IR builtins (nixIR_info, nixIR_compile, nixIR_loadIR) available"
70
else
71
	echo "[WARN] IR builtins may not be available (check plugin initialization)"
72
fi
73
echo ""
74
75
echo "Integration Tests Complete"