-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest-lockfile.sh
More file actions
executable file
·62 lines (50 loc) · 1.94 KB
/
test-lockfile.sh
File metadata and controls
executable file
·62 lines (50 loc) · 1.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR/examples/quick-test"
# Clean state
rm -rf .capslock target
echo "=== Test 1: Create initial snapshot ==="
mvn compile capslock:snapshot -q
test -f .capslock/snapshot.json || { echo "FAIL: snapshot not created"; exit 1; }
echo "PASS: snapshot created"
echo "=== Test 2: Check passes with no changes ==="
mvn capslock:check -q
echo "PASS: check passed (no changes)"
echo "=== Test 3: Add new capability (NETWORK) ==="
cp src/main/java/com/test/SimpleApp.java src/main/java/com/test/SimpleApp.java.bak
# Add method that opens a socket (triggers NETWORK capability)
sed -i.tmp '/public void useReflection/i\
public void openSocket() throws Exception {\
java.net.Socket s = new java.net.Socket("localhost", 8080);\
s.close();\
}\
' src/main/java/com/test/SimpleApp.java
echo "=== Test 4: Verify check fails on new capabilities ==="
rm -rf target
set +e
mvn compile capslock:check -q 2>&1
EXIT_CODE=$?
set -e
if [ $EXIT_CODE -eq 0 ]; then
echo "FAIL: check should have failed on new capabilities"
mv src/main/java/com/test/SimpleApp.java.bak src/main/java/com/test/SimpleApp.java
rm -f src/main/java/com/test/SimpleApp.java.tmp
exit 1
fi
echo "PASS: check correctly failed (exit code: $EXIT_CODE)"
echo "=== Test 5: Update snapshot with new capabilities ==="
mvn capslock:snapshot -q
echo "PASS: snapshot updated"
echo "=== Test 6: Verify snapshot contains NETWORK ==="
grep -q "CAPABILITY_NETWORK" .capslock/snapshot.json || { echo "FAIL: NETWORK not in snapshot"; exit 1; }
echo "PASS: snapshot contains NETWORK capability"
echo "=== Test 7: Verify check passes after snapshot update ==="
mvn capslock:check -q
echo "PASS: check passed after snapshot update"
# Cleanup
mv src/main/java/com/test/SimpleApp.java.bak src/main/java/com/test/SimpleApp.java
rm -f src/main/java/com/test/SimpleApp.java.tmp
rm -rf .capslock target
echo ""
echo "=== All tests passed ==="