Files
SirRoboGarage/tools/robocode_shim/run_smoke.sh
SirStone ef16dd982d robocode_shim: generalize bridge to any legacy bot; validate 28 champions as sparring partners
Generalize the classic-Robocode shim so the hosted bot's main class, jar, extra
classpath and data directory are configurable (SHIM_BOT_CLASS / SHIM_BOT_JAR /
SHIM_EXTRA_CP / SHIM_DATA), with DrussGT kept as the default so every existing
script, fixture and generated bot dir behaves identically.

- LegacyBotBridge: generalized bridge (DrussGTBridge kept as an alias).
- BotHost: (mainClass, jar, extraJars, dataDir); disableShield -> generic
  disableStaticBoolean.
- ClassicPeer: implement ITeamRobotPeer; synthesize StatusEvent each turn;
  make move/turnBody/turnGun/turnRadar the immediate (turn-ending) variants;
  guard re-entrant execute() from event handlers; record delivered events.
- make_botdir.sh / run_bridge_battle.sh / run_smoke.sh generalized, legacy
  invocations unchanged; generated launcher uses a per-process mktemp data dir
  so concurrent bots/battles cannot clobber one classic data directory.

Validated 35 legacy bots against a real Tank Royale battle (2 rounds vs sample
SpinBot): 28 usable (27 effective + DrussGT), 5 weak-but-playing, 2 failing.
Adds robots.json (manifest) and LEGACY_BOTS.md (how-to, status, missing-API
costs). No third-party jar is committed.
2026-09-26 00:25:33 +02:00

18 lines
795 B
Bash
Executable File

#!/usr/bin/env bash
# Runtime (triage) proof for Approach (B): load the real bot jar, drive it
# through ClassicPeer for 200 synthetic ticks and assert it emits movement
# intents. No Tank Royale server / physics is involved.
#
# ./run_smoke.sh # DrussGT (default, unchanged)
# SHIM_BOT_JAR=/tmp/bots/Diamond.jar SHIM_BOT_CLASS=voidious.Diamond ./run_smoke.sh
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
ROBOCODE_JAR="${ROBOCODE_JAR:-/tmp/robocode/install/libs/robocode.jar}"
JAR="${SHIM_BOT_JAR:-${DRUSSGT_JAR:-/tmp/drussgt/DrussGT.jar}}"
CLASS="${SHIM_BOT_CLASS:-jk.mega.DrussGT}"
OUT="${OUT:-$HERE/out}"
WORK="$(mktemp -d /tmp/shim_smoke.XXXXXX)"
java -cp "$OUT:$ROBOCODE_JAR" robocode_shim.SmokeTest "$JAR" "$WORK" "$CLASS"