#!/bin/bash # # Test ICS-SimLab with generated scenario # set -e SCENARIO_DIR="$(cd "$(dirname "$0")" && pwd)/outputs/scenario_run" SIMLAB_DIR="$HOME/projects/ICS-SimLab-main/curtin-ics-simlab" echo "============================================================" echo "Testing ICS-SimLab with scenario: $SCENARIO_DIR" echo "============================================================" if [ ! -d "$SIMLAB_DIR" ]; then echo "ERROR: ICS-SimLab not found at: $SIMLAB_DIR" exit 1 fi if [ ! -f "$SCENARIO_DIR/configuration.json" ]; then echo "ERROR: Scenario not found at: $SCENARIO_DIR" echo "Run: .venv/bin/python3 build_scenario.py --overwrite" exit 1 fi cd "$SIMLAB_DIR" echo "" echo "Starting ICS-SimLab..." echo "Command: sudo ./start.sh $SCENARIO_DIR" echo "" echo "NOTES:" echo " - Check PLC2 logs for 'Exception in thread' errors (should be none)" echo " - Check PLC2 logs for 'WARNING: Callback failed' (connection retries)" echo " - Verify containers start: sudo docker ps" echo " - View PLC2 logs: sudo docker logs -f" echo " - Stop: sudo ./stop.sh" echo "" echo "Press Enter to start..." read sudo ./start.sh "$SCENARIO_DIR"