From 264b49f96a88a5fc594bd67232b4d49683223bb4 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 23 Feb 2026 06:24:41 -0500 Subject: [PATCH] test: add go jetstream parity runner --- docs/plans/jetstream-go-suite-map.md | 14 +++++++++++++ scripts/run-go-jetstream-parity.sh | 18 ++++++++++++++++ .../NATS.Server.Tests/GoParityRunnerTests.cs | 21 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 docs/plans/jetstream-go-suite-map.md create mode 100755 scripts/run-go-jetstream-parity.sh create mode 100644 tests/NATS.Server.Tests/GoParityRunnerTests.cs diff --git a/docs/plans/jetstream-go-suite-map.md b/docs/plans/jetstream-go-suite-map.md new file mode 100644 index 0000000..820fb2a --- /dev/null +++ b/docs/plans/jetstream-go-suite-map.md @@ -0,0 +1,14 @@ +# JetStream Go Suite Map + +This map tracks the Go suite families included by `scripts/run-go-jetstream-parity.sh`. + +- `TestJetStream`: core stream/consumer API and data-path behavior. +- `TestJetStreamCluster`: clustered JetStream semantics, placement, and failover. +- `TestLongCluster`: long-running clustered behaviors and stabilization scenarios. +- `TestRaft`: RAFT election, replication, and snapshot behavior used by JetStream. + +Runner command: + +```bash +go test -v -run 'TestJetStream|TestJetStreamCluster|TestLongCluster|TestRaft' ./server -count=1 -timeout=180m +``` diff --git a/scripts/run-go-jetstream-parity.sh b/scripts/run-go-jetstream-parity.sh new file mode 100755 index 0000000..8b28711 --- /dev/null +++ b/scripts/run-go-jetstream-parity.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -euo pipefail + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +repo_root="$(cd "${script_dir}/.." && pwd)" + +go_root="${repo_root}/golang/nats-server" +if [[ ! -d "${go_root}" && -d "/Users/dohertj2/Desktop/natsdotnet/golang/nats-server" ]]; then + go_root="/Users/dohertj2/Desktop/natsdotnet/golang/nats-server" +fi + +if [[ ! -d "${go_root}" ]]; then + echo "Unable to locate golang/nats-server checkout." >&2 + exit 1 +fi + +cd "${go_root}" +go test -v -run 'TestJetStream|TestJetStreamCluster|TestLongCluster|TestRaft' ./server -count=1 -timeout=180m diff --git a/tests/NATS.Server.Tests/GoParityRunnerTests.cs b/tests/NATS.Server.Tests/GoParityRunnerTests.cs new file mode 100644 index 0000000..534130f --- /dev/null +++ b/tests/NATS.Server.Tests/GoParityRunnerTests.cs @@ -0,0 +1,21 @@ +namespace NATS.Server.Tests; + +public class GoParityRunnerTests +{ + [Fact] + public void Go_parity_runner_builds_expected_suite_filter() + { + var cmd = GoParityRunner.BuildCommand(); + cmd.ShouldContain("go test"); + cmd.ShouldContain("TestJetStream"); + cmd.ShouldContain("TestRaft"); + } +} + +internal static class GoParityRunner +{ + public static string BuildCommand() + { + return "go test -v -run 'TestJetStream|TestJetStreamCluster|TestLongCluster|TestRaft' ./server -count=1 -timeout=180m"; + } +}