rename Fence to Greywall as GreyHaven sandboxing component
Rebrand the project from Fence to Greywall, the sandboxing layer of the GreyHaven platform. This updates: - Go module path to gitea.app.monadical.io/monadical/greywall - Binary name, CLI help text, and all usage examples - Config paths (~/.config/greywall/greywall.json), env vars (GREYWALL_*) - Log prefixes ([greywall:*]), temp file prefixes (greywall-*) - All documentation, scripts, CI workflows, and example files - README rewritten with GreyHaven branding and Fence attribution Directory/file renames: cmd/fence → cmd/greywall, pkg/fence → pkg/greywall, docs/why-fence.md → docs/why-greywall.md, example JSON files, and banner.
This commit is contained in:
@@ -10,7 +10,7 @@
|
||||
# ./scripts/benchmark.sh [options]
|
||||
#
|
||||
# Options:
|
||||
# -b, --binary PATH Path to fence binary (default: ./fence or builds one)
|
||||
# -b, --binary PATH Path to greywall binary (default: ./greywall or builds one)
|
||||
# -o, --output DIR Output directory for results (default: ./benchmarks)
|
||||
# -n, --runs N Minimum runs per benchmark (default: 30)
|
||||
# -q, --quick Quick mode: fewer runs, skip slow benchmarks
|
||||
@@ -19,7 +19,7 @@
|
||||
#
|
||||
# Requirements:
|
||||
# - hyperfine (brew install hyperfine / apt install hyperfine)
|
||||
# - go (for building fence if needed)
|
||||
# - go (for building greywall if needed)
|
||||
# - Optional: python3 (for local-server.py network benchmarks)
|
||||
|
||||
set -euo pipefail
|
||||
@@ -32,7 +32,7 @@ BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
# Defaults
|
||||
FENCE_BIN=""
|
||||
GREYWALL_BIN=""
|
||||
OUTPUT_DIR="./benchmarks"
|
||||
MIN_RUNS=30
|
||||
WARMUP=3
|
||||
@@ -43,7 +43,7 @@ NETWORK=false
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
-b|--binary)
|
||||
FENCE_BIN="$2"
|
||||
GREYWALL_BIN="$2"
|
||||
shift 2
|
||||
;;
|
||||
-o|--output)
|
||||
@@ -75,21 +75,21 @@ while [[ $# -gt 0 ]]; do
|
||||
esac
|
||||
done
|
||||
|
||||
# Find or build fence binary
|
||||
if [[ -z "$FENCE_BIN" ]]; then
|
||||
if [[ -x "./fence" ]]; then
|
||||
FENCE_BIN="./fence"
|
||||
elif [[ -x "./dist/fence" ]]; then
|
||||
FENCE_BIN="./dist/fence"
|
||||
# Find or build greywall binary
|
||||
if [[ -z "$GREYWALL_BIN" ]]; then
|
||||
if [[ -x "./greywall" ]]; then
|
||||
GREYWALL_BIN="./greywall"
|
||||
elif [[ -x "./dis./greywall" ]]; then
|
||||
GREYWALL_BIN="./dis./greywall"
|
||||
else
|
||||
echo -e "${BLUE}Building fence...${NC}"
|
||||
go build -o ./fence ./cmd/fence
|
||||
FENCE_BIN="./fence"
|
||||
echo -e "${BLUE}Building greywall...${NC}"
|
||||
go build -o ./greywall ./cm./greywall
|
||||
GREYWALL_BIN="./greywall"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -x "$FENCE_BIN" ]]; then
|
||||
echo -e "${RED}Error: fence binary not found at $FENCE_BIN${NC}"
|
||||
if [[ ! -x "$GREYWALL_BIN" ]]; then
|
||||
echo -e "${RED}Error: greywall binary not found at $GREYWALL_BIN${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@@ -109,7 +109,7 @@ WORKSPACE=$(mktemp -d -p .)
|
||||
trap 'rm -rf "$WORKSPACE"' EXIT
|
||||
|
||||
# Create settings file for sandbox
|
||||
SETTINGS_FILE="$WORKSPACE/fence.json"
|
||||
SETTINGS_FILE="$WORKSPAC./greywall.json"
|
||||
cat > "$SETTINGS_FILE" << EOF
|
||||
{
|
||||
"filesystem": {
|
||||
@@ -131,13 +131,13 @@ RESULTS_MD="$OUTPUT_DIR/${OS,,}-${ARCH}-${TIMESTAMP}.md"
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}==========================================${NC}"
|
||||
echo -e "${BLUE}Fence Sandbox Benchmarks${NC}"
|
||||
echo -e "${BLUE}Greywall Sandbox Benchmarks${NC}"
|
||||
echo -e "${BLUE}==========================================${NC}"
|
||||
echo ""
|
||||
echo "Platform: $OS $ARCH"
|
||||
echo "Kernel: $KERNEL"
|
||||
echo "Date: $DATE"
|
||||
echo "Fence: $FENCE_BIN"
|
||||
echo "Greywall: $GREYWALL_BIN"
|
||||
echo "Output: $OUTPUT_DIR"
|
||||
echo "Min runs: $MIN_RUNS"
|
||||
echo ""
|
||||
@@ -169,11 +169,11 @@ echo ""
|
||||
|
||||
run_bench "true" \
|
||||
--command-name "unsandboxed" "true" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -- true"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -- true"
|
||||
|
||||
run_bench "echo" \
|
||||
--command-name "unsandboxed" "echo hello >/dev/null" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -c 'echo hello' >/dev/null"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -c 'echo hello' >/dev/null"
|
||||
|
||||
# ============================================================================
|
||||
# Tool compatibility benchmarks
|
||||
@@ -185,7 +185,7 @@ echo ""
|
||||
if command -v python3 &> /dev/null; then
|
||||
run_bench "python" \
|
||||
--command-name "unsandboxed" "python3 -c 'pass'" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -c \"python3 -c 'pass'\""
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -c \"python3 -c 'pass'\""
|
||||
else
|
||||
echo -e "${YELLOW}Skipping python3 (not found)${NC}"
|
||||
fi
|
||||
@@ -193,7 +193,7 @@ fi
|
||||
if command -v node &> /dev/null && [[ "$QUICK" == "false" ]]; then
|
||||
run_bench "node" \
|
||||
--command-name "unsandboxed" "node -e ''" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -c \"node -e ''\""
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -c \"node -e ''\""
|
||||
else
|
||||
echo -e "${YELLOW}Skipping node (not found or quick mode)${NC}"
|
||||
fi
|
||||
@@ -208,7 +208,7 @@ echo ""
|
||||
if command -v git &> /dev/null && [[ -d .git ]]; then
|
||||
run_bench "git-status" \
|
||||
--command-name "unsandboxed" "git status --porcelain >/dev/null" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -- git status --porcelain >/dev/null"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -- git status --porcelain >/dev/null"
|
||||
else
|
||||
echo -e "${YELLOW}Skipping git status (not in a git repo)${NC}"
|
||||
fi
|
||||
@@ -216,7 +216,7 @@ fi
|
||||
if command -v rg &> /dev/null && [[ "$QUICK" == "false" ]]; then
|
||||
run_bench "ripgrep" \
|
||||
--command-name "unsandboxed" "rg -n 'package' -S . >/dev/null 2>&1 || true" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -c \"rg -n 'package' -S . >/dev/null 2>&1\" || true"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -c \"rg -n 'package' -S . >/dev/null 2>&1\" || true"
|
||||
else
|
||||
echo -e "${YELLOW}Skipping ripgrep (not found or quick mode)${NC}"
|
||||
fi
|
||||
@@ -230,11 +230,11 @@ echo ""
|
||||
|
||||
run_bench "file-write" \
|
||||
--command-name "unsandboxed" "echo 'test' > $WORKSPACE/test.txt" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -c \"echo 'test' > $WORKSPACE/test.txt\""
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -c \"echo 'test' > $WORKSPACE/test.txt\""
|
||||
|
||||
run_bench "file-read" \
|
||||
--command-name "unsandboxed" "cat $WORKSPACE/test.txt >/dev/null" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -c 'cat $WORKSPACE/test.txt' >/dev/null"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -c 'cat $WORKSPACE/test.txt' >/dev/null"
|
||||
|
||||
# ============================================================================
|
||||
# Monitor mode benchmarks (optional)
|
||||
@@ -245,8 +245,8 @@ if [[ "$QUICK" == "false" ]]; then
|
||||
echo ""
|
||||
|
||||
run_bench "monitor-true" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $SETTINGS_FILE -- true" \
|
||||
--command-name "sandboxed+monitor" "$FENCE_BIN -m -s $SETTINGS_FILE -- true"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $SETTINGS_FILE -- true" \
|
||||
--command-name "sandboxed+monitor" "$GREYWALL_BIN -m -s $SETTINGS_FILE -- true"
|
||||
fi
|
||||
|
||||
# ============================================================================
|
||||
@@ -266,7 +266,7 @@ if [[ "$NETWORK" == "true" ]]; then
|
||||
sleep 1
|
||||
|
||||
# Create network settings
|
||||
NET_SETTINGS="$WORKSPACE/fence-net.json"
|
||||
NET_SETTINGS="$WORKSPAC./greywall-net.json"
|
||||
cat > "$NET_SETTINGS" << EOF
|
||||
{
|
||||
"network": {
|
||||
@@ -281,7 +281,7 @@ EOF
|
||||
if command -v curl &> /dev/null; then
|
||||
run_bench "network-curl" \
|
||||
--command-name "unsandboxed" "curl -s http://127.0.0.1:8765/ >/dev/null" \
|
||||
--command-name "sandboxed" "$FENCE_BIN -s $NET_SETTINGS -c 'curl -s http://127.0.0.1:8765/' >/dev/null"
|
||||
--command-name "sandboxed" "$GREYWALL_BIN -s $NET_SETTINGS -c 'curl -s http://127.0.0.1:8765/' >/dev/null"
|
||||
fi
|
||||
|
||||
kill $SERVER_PID 2>/dev/null || true
|
||||
@@ -303,7 +303,7 @@ echo " \"platform\": \"$OS\"," >> "$RESULTS_JSON"
|
||||
echo " \"arch\": \"$ARCH\"," >> "$RESULTS_JSON"
|
||||
echo " \"kernel\": \"$KERNEL\"," >> "$RESULTS_JSON"
|
||||
echo " \"date\": \"$DATE\"," >> "$RESULTS_JSON"
|
||||
echo " \"fence_version\": \"$($FENCE_BIN --version 2>/dev/null || echo unknown)\"," >> "$RESULTS_JSON"
|
||||
echo " \"greywall_version\": \"$($GREYWALL_BIN --version 2>/dev/null || echo unknown)\"," >> "$RESULTS_JSON"
|
||||
echo " \"benchmarks\": {" >> "$RESULTS_JSON"
|
||||
|
||||
first=true
|
||||
@@ -324,12 +324,12 @@ echo "}" >> "$RESULTS_JSON"
|
||||
|
||||
# Generate Markdown report
|
||||
cat > "$RESULTS_MD" << EOF
|
||||
# Fence Benchmark Results
|
||||
# Greywall Benchmark Results
|
||||
|
||||
**Platform:** $OS $ARCH
|
||||
**Kernel:** $KERNEL
|
||||
**Date:** $DATE
|
||||
**Fence:** $($FENCE_BIN --version 2>/dev/null || echo unknown)
|
||||
**Greywall:** $($GREYWALL_BIN --version 2>/dev/null || echo unknown)
|
||||
|
||||
## Summary
|
||||
|
||||
|
||||
@@ -150,4 +150,4 @@ git push origin "$NEW_VERSION"
|
||||
echo ""
|
||||
info "✓ Released $NEW_VERSION"
|
||||
info "GitHub Actions will now build and publish the release."
|
||||
info "Watch progress at: https://github.com/Use-Tusk/fence/actions"
|
||||
info "Watch progress at: https://gitea.app.monadical.io/monadical/greywall/actions"
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
#!/bin/bash
|
||||
# smoke_test.sh - Run smoke tests against the fence binary
|
||||
# smoke_test.sh - Run smoke tests against the greywall binary
|
||||
#
|
||||
# This script tests the compiled fence binary to ensure basic functionality works.
|
||||
# This script tests the compiled greywall binary to ensure basic functionality works.
|
||||
# Unlike integration tests (which test internal APIs), smoke tests verify the
|
||||
# final artifact behaves correctly.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/smoke_test.sh [path-to-fence-binary]
|
||||
# ./scripts/smoke_test.sh [path-to-greywall-binary]
|
||||
#
|
||||
# If no path is provided, it will look for ./fence or use 'go run'.
|
||||
# If no path is provided, it will look for ./greywall or use 'go run'.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
@@ -21,25 +21,25 @@ PASSED=0
|
||||
FAILED=0
|
||||
SKIPPED=0
|
||||
|
||||
FENCE_BIN="${1:-}"
|
||||
if [[ -z "$FENCE_BIN" ]]; then
|
||||
if [[ -x "./fence" ]]; then
|
||||
FENCE_BIN="./fence"
|
||||
elif [[ -x "./dist/fence" ]]; then
|
||||
FENCE_BIN="./dist/fence"
|
||||
GREYWALL_BIN="${1:-}"
|
||||
if [[ -z "$GREYWALL_BIN" ]]; then
|
||||
if [[ -x "./greywall" ]]; then
|
||||
GREYWALL_BIN="./greywall"
|
||||
elif [[ -x "./dis./greywall" ]]; then
|
||||
GREYWALL_BIN="./dis./greywall"
|
||||
else
|
||||
echo "Building fence..."
|
||||
go build -o ./fence ./cmd/fence
|
||||
FENCE_BIN="./fence"
|
||||
echo "Building greywall..."
|
||||
go build -o ./greywall ./cm./greywall
|
||||
GREYWALL_BIN="./greywall"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ ! -x "$FENCE_BIN" ]]; then
|
||||
echo "Error: fence binary not found at $FENCE_BIN"
|
||||
if [[ ! -x "$GREYWALL_BIN" ]]; then
|
||||
echo "Error: greywall binary not found at $GREYWALL_BIN"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Using fence binary: $FENCE_BIN"
|
||||
echo "Using greywall binary: $GREYWALL_BIN"
|
||||
echo "=============================================="
|
||||
|
||||
# Create temp workspace in current directory (not /tmp, which gets overlaid by bwrap --tmpfs)
|
||||
@@ -100,16 +100,16 @@ echo "=== Basic Functionality ==="
|
||||
echo ""
|
||||
|
||||
# Test: Version flag works
|
||||
run_test "version flag" "pass" "$FENCE_BIN" --version
|
||||
run_test "version flag" "pass" "$GREYWALL_BIN" --version
|
||||
|
||||
# Test: Echo works
|
||||
run_test "echo command" "pass" "$FENCE_BIN" -c "echo hello"
|
||||
run_test "echo command" "pass" "$GREYWALL_BIN" -c "echo hello"
|
||||
|
||||
# Test: ls works
|
||||
run_test "ls command" "pass" "$FENCE_BIN" -- ls
|
||||
run_test "ls command" "pass" "$GREYWALL_BIN" -- ls
|
||||
|
||||
# Test: pwd works
|
||||
run_test "pwd command" "pass" "$FENCE_BIN" -- pwd
|
||||
run_test "pwd command" "pass" "$GREYWALL_BIN" -- pwd
|
||||
|
||||
echo ""
|
||||
echo "=== Filesystem Restrictions ==="
|
||||
@@ -117,11 +117,11 @@ echo ""
|
||||
|
||||
# Test: Read existing file works
|
||||
echo "test content" > "$WORKSPACE/test.txt"
|
||||
run_test "read file in workspace" "pass" "$FENCE_BIN" -c "cat $WORKSPACE/test.txt"
|
||||
run_test "read file in workspace" "pass" "$GREYWALL_BIN" -c "cat $WORKSPACE/test.txt"
|
||||
|
||||
# Test: Write outside workspace blocked
|
||||
# Create a settings file that only allows write to current workspace
|
||||
SETTINGS_FILE="$WORKSPACE/fence.json"
|
||||
SETTINGS_FILE="$WORKSPAC./greywall.json"
|
||||
cat > "$SETTINGS_FILE" << EOF
|
||||
{
|
||||
"filesystem": {
|
||||
@@ -131,14 +131,14 @@ cat > "$SETTINGS_FILE" << EOF
|
||||
EOF
|
||||
|
||||
# Note: Use /var/tmp since /tmp is mounted as tmpfs (writable but ephemeral) inside the sandbox
|
||||
OUTSIDE_FILE="/var/tmp/outside-fence-test-$$.txt"
|
||||
run_test "write outside workspace blocked" "fail" "$FENCE_BIN" -s "$SETTINGS_FILE" -c "touch $OUTSIDE_FILE"
|
||||
OUTSIDE_FILE="/var/tmp/outside-greywall-test-$$.txt"
|
||||
run_test "write outside workspace blocked" "fail" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "touch $OUTSIDE_FILE"
|
||||
|
||||
# Cleanup in case it wasn't blocked
|
||||
rm -f "$OUTSIDE_FILE" 2>/dev/null || true
|
||||
|
||||
# Test: Write inside workspace allowed (using the workspace path in -c)
|
||||
run_test "write inside workspace allowed" "pass" "$FENCE_BIN" -s "$SETTINGS_FILE" -c "touch $WORKSPACE/new-file.txt"
|
||||
run_test "write inside workspace allowed" "pass" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "touch $WORKSPACE/new-file.txt"
|
||||
|
||||
# Check file was actually created
|
||||
if [[ -f "$WORKSPACE/new-file.txt" ]]; then
|
||||
@@ -166,16 +166,16 @@ cat > "$SETTINGS_FILE" << EOF
|
||||
EOF
|
||||
|
||||
# Test: Denied command is blocked
|
||||
run_test "blocked command (rm -rf)" "fail" "$FENCE_BIN" -s "$SETTINGS_FILE" -c "rm -rf /tmp/test"
|
||||
run_test "blocked command (rm -rf)" "fail" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "rm -rf /tmp/test"
|
||||
|
||||
# Test: Similar but not blocked command works (rm without -rf)
|
||||
run_test "allowed command (echo)" "pass" "$FENCE_BIN" -s "$SETTINGS_FILE" -c "echo safe command"
|
||||
run_test "allowed command (echo)" "pass" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "echo safe command"
|
||||
|
||||
# Test: Chained command with blocked command
|
||||
run_test "chained blocked command" "fail" "$FENCE_BIN" -s "$SETTINGS_FILE" -c "ls && rm -rf /tmp/test"
|
||||
run_test "chained blocked command" "fail" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "ls && rm -rf /tmp/test"
|
||||
|
||||
# Test: Nested shell with blocked command
|
||||
run_test "nested shell blocked command" "fail" "$FENCE_BIN" -s "$SETTINGS_FILE" -c 'bash -c "rm -rf /tmp/test"'
|
||||
run_test "nested shell blocked command" "fail" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c 'bash -c "rm -rf /tmp/test"'
|
||||
|
||||
echo ""
|
||||
echo "=== Network Restrictions ==="
|
||||
@@ -196,7 +196,7 @@ EOF
|
||||
if command_exists curl; then
|
||||
# Test: Network blocked by default - curl should fail or return blocked message
|
||||
# Use curl's own timeout (no need for external timeout command)
|
||||
output=$("$FENCE_BIN" -s "$SETTINGS_FILE" -c "curl -s --connect-timeout 2 --max-time 3 http://example.com" 2>&1) || true
|
||||
output=$("$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "curl -s --connect-timeout 2 --max-time 3 http://example.com" 2>&1) || true
|
||||
if echo "$output" | grep -qi "blocked\|refused\|denied\|timeout\|error"; then
|
||||
echo -e "Testing: network blocked (curl)... ${GREEN}PASS${NC}"
|
||||
PASSED=$((PASSED + 1))
|
||||
@@ -218,8 +218,8 @@ else
|
||||
skip_test "network blocked (curl)" "curl not installed"
|
||||
fi
|
||||
|
||||
# Test with allowed domain (only if FENCE_TEST_NETWORK is set)
|
||||
if [[ "${FENCE_TEST_NETWORK:-}" == "1" ]]; then
|
||||
# Test with allowed domain (only if GREYWALL_TEST_NETWORK is set)
|
||||
if [[ "${GREYWALL_TEST_NETWORK:-}" == "1" ]]; then
|
||||
cat > "$SETTINGS_FILE" << EOF
|
||||
{
|
||||
"network": {
|
||||
@@ -231,12 +231,12 @@ if [[ "${FENCE_TEST_NETWORK:-}" == "1" ]]; then
|
||||
}
|
||||
EOF
|
||||
if command_exists curl; then
|
||||
run_test "allowed domain works" "pass" "$FENCE_BIN" -s "$SETTINGS_FILE" -c "curl -s --connect-timeout 5 --max-time 10 https://httpbin.org/get"
|
||||
run_test "allowed domain works" "pass" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c "curl -s --connect-timeout 5 --max-time 10 https://httpbin.org/get"
|
||||
else
|
||||
skip_test "allowed domain works" "curl not installed"
|
||||
fi
|
||||
else
|
||||
skip_test "allowed domain works" "FENCE_TEST_NETWORK not set"
|
||||
skip_test "allowed domain works" "GREYWALL_TEST_NETWORK not set"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
@@ -244,25 +244,25 @@ echo "=== Tool Compatibility ==="
|
||||
echo ""
|
||||
|
||||
if command_exists python3; then
|
||||
run_test "python3 works" "pass" "$FENCE_BIN" -c "python3 -c 'print(1+1)'"
|
||||
run_test "python3 works" "pass" "$GREYWALL_BIN" -c "python3 -c 'print(1+1)'"
|
||||
else
|
||||
skip_test "python3 works" "python3 not installed"
|
||||
fi
|
||||
|
||||
if command_exists node; then
|
||||
run_test "node works" "pass" "$FENCE_BIN" -c "node -e 'console.log(1+1)'"
|
||||
run_test "node works" "pass" "$GREYWALL_BIN" -c "node -e 'console.log(1+1)'"
|
||||
else
|
||||
skip_test "node works" "node not installed"
|
||||
fi
|
||||
|
||||
if command_exists git; then
|
||||
run_test "git version works" "pass" "$FENCE_BIN" -- git --version
|
||||
run_test "git version works" "pass" "$GREYWALL_BIN" -- git --version
|
||||
else
|
||||
skip_test "git version works" "git not installed"
|
||||
fi
|
||||
|
||||
if command_exists rg; then
|
||||
run_test "ripgrep works" "pass" "$FENCE_BIN" -- rg --version
|
||||
run_test "ripgrep works" "pass" "$GREYWALL_BIN" -- rg --version
|
||||
else
|
||||
skip_test "ripgrep works" "rg not installed"
|
||||
fi
|
||||
@@ -271,8 +271,8 @@ echo ""
|
||||
echo "=== Environment ==="
|
||||
echo ""
|
||||
|
||||
# Test: FENCE_SANDBOX env var is set
|
||||
run_test "FENCE_SANDBOX set" "pass" "$FENCE_BIN" -c 'test "$FENCE_SANDBOX" = "1"'
|
||||
# Test: GREYWALL_SANDBOX env var is set
|
||||
run_test "GREYWALL_SANDBOX set" "pass" "$GREYWALL_BIN" -c 'test "$GREYWALL_SANDBOX" = "1"'
|
||||
|
||||
# Test: Proxy env vars are set when network is configured
|
||||
cat > "$SETTINGS_FILE" << EOF
|
||||
@@ -286,7 +286,7 @@ cat > "$SETTINGS_FILE" << EOF
|
||||
}
|
||||
EOF
|
||||
|
||||
run_test "HTTP_PROXY set" "pass" "$FENCE_BIN" -s "$SETTINGS_FILE" -c 'test -n "$HTTP_PROXY"'
|
||||
run_test "HTTP_PROXY set" "pass" "$GREYWALL_BIN" -s "$SETTINGS_FILE" -c 'test -n "$HTTP_PROXY"'
|
||||
|
||||
echo ""
|
||||
echo "=============================================="
|
||||
|
||||
Reference in New Issue
Block a user