#!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin mount -t proc proc /proc 2>/dev/null || true mount -t sysfs sysfs /sys 2>/dev/null || true mount -t devtmpfs devtmpfs /dev 2>/dev/null || true mkdir -p /dev/pts /dev/shm /results mount -t devpts devpts /dev/pts mount -t tmpfs -o mode=1777 tmpfs /dev/shm modprobe 9pnet_virtio modprobe 9p mount -t 9p -o trans=virtio,version=9p2000.L results /results ip link set lo up modprobe virtio_net for link in /sys/class/net/*; do interface=${link##*/} [ "$interface" != lo ] && break done ip link set "$interface" up ip addr add 10.0.2.15/24 dev "$interface" ip route add default via 10.0.2.2 echo 'nameserver 10.0.2.3' > /etc/resolv.conf sysctl -w net.ipv4.conf.all.route_localnet=1 export FIREGEX_HOST=0.0.0.0 NTHREADS=2 export FIREGEX_MCP_TEST_DB=/execute/db/mcp/control.sqlite3 export FIREGEX_TEST_DEPS_READY=1 cd /execute sh docker-entrypoint.sh > /results/backend.log 2>&1 & backend_pid=$! cd /test/tests if [ -f /results/selection.json ]; then mapfile -t selection < <(python3 -c 'import json; print("\n".join(json.load(open("/results/selection.json"))))') else selection=(unit integration/test_mcp.py -q) fi # Run the same public test entry point as on a normal Linux Docker host. bash run_tests.sh --set-pass "${selection[@]}" --junitxml=/results/mcp-1.xml > /results/tests-1.log 2>&1 first_status=$? echo "$first_status" > /results/exit-1 if [ "$first_status" != 0 ]; then sync poweroff -f fi bash run_tests.sh "${selection[@]}" --junitxml=/results/mcp-2.xml > /results/tests-2.log 2>&1 echo $? > /results/exit-2 .venv/bin/python mcp_restart_probe.py prepare > /results/restart.log 2>&1 prepare_status=$? kill -TERM "$backend_pid" wait "$backend_pid" sleep 6 cd /execute sh docker-entrypoint.sh >> /results/backend.log 2>&1 & for i in {1..60}; do curl -fsS http://127.0.0.1:4444/api/status > /dev/null && break sleep 1 done if [ "$prepare_status" = 0 ]; then /test/tests/.venv/bin/python /test/tests/mcp_restart_probe.py verify >> /results/restart.log 2>&1 echo $? > /results/exit-restart else echo "$prepare_status" > /results/exit-restart fi sync poweroff -f