Commit Graph

73 Commits

Author SHA1 Message Date
Joseph Doherty
62169c82d9 feat(batch6-task6): port t1 opts reload jwt tests 2026-02-28 10:04:45 -05:00
Joseph Doherty
3c1ab92a3a feat(batch6-task5): implement f4 permissions tls websocket mqtt cli options 2026-02-28 09:58:19 -05:00
Joseph Doherty
cd24ea01c5 feat(batch6-task4): implement f3 account authorization parsing 2026-02-28 09:47:32 -05:00
Joseph Doherty
eb0ab64b42 feat(batch6-task3): implement F2 jetstream leaf tls helpers 2026-02-28 09:37:42 -05:00
Joseph Doherty
4c8fb4e344 feat(batch6-task2): implement F1 opts parsing and verify features 2026-02-28 09:29:50 -05:00
Joseph Doherty
0ad5ccaf05 feat(batch5): verify mapped jetstream error tests 2026-02-28 09:15:04 -05:00
Joseph Doherty
dc90025a37 feat(batch5): implement jetstream error constructors group11 2026-02-28 09:05:27 -05:00
Joseph Doherty
a15c8131cc feat(batch5): implement jetstream error constructors group10 2026-02-28 09:00:03 -05:00
Joseph Doherty
eee3a431dd feat(batch5): implement jetstream error constructors group09 2026-02-28 08:55:28 -05:00
Joseph Doherty
b96d3ae182 feat(batch5): implement jetstream error constructors group08 2026-02-28 08:51:21 -05:00
Joseph Doherty
a587e8e347 feat(batch5): implement jetstream error constructors group07 2026-02-28 08:47:21 -05:00
Joseph Doherty
aab2814201 feat(batch5): implement jetstream error constructors group06 2026-02-28 08:43:42 -05:00
Joseph Doherty
bc085a7da1 feat(batch5): implement jetstream error constructors group05 2026-02-28 08:40:12 -05:00
Joseph Doherty
e914b468b6 feat(batch5): implement jetstream error constructors group04 2026-02-28 08:36:38 -05:00
Joseph Doherty
802e3d6576 feat(batch5): implement jetstream error constructors group03 2026-02-28 08:32:48 -05:00
Joseph Doherty
35488a2b68 feat(batch5): implement jetstream error constructors group02 2026-02-28 08:29:20 -05:00
Joseph Doherty
9f30fe6033 feat(batch5): implement jetstream error helpers and group01 constructors 2026-02-28 08:25:56 -05:00
Joseph Doherty
5e093bea32 test(batch4-task6): port concurrency and websocket logging-mapped tests 2026-02-28 08:13:45 -05:00
Joseph Doherty
8bd65ef97f test(batch4-task5): port leaf and mqtt logging-mapped tests 2026-02-28 08:10:20 -05:00
Joseph Doherty
455e0e9572 test(batch4-task4): port gateway and route logging-mapped tests 2026-02-28 08:06:11 -05:00
Joseph Doherty
b79b5f6222 feat(batch4-task3): implement error and rate-limit logging helpers 2026-02-28 08:01:04 -05:00
Joseph Doherty
b79e7aafe9 feat(batch4-task2): implement core logger wiring features 2026-02-28 07:56:32 -05:00
Joseph Doherty
7ebbaeb6b3 feat(batch3): implement service feature group 2026-02-28 07:37:17 -05:00
Joseph Doherty
beab0e60da feat(batch3): implement send queue feature group 2026-02-28 07:31:12 -05:00
Joseph Doherty
6b67c83c0e feat(batch3): verify client proxy protocol feature group 2026-02-28 07:24:45 -05:00
Joseph Doherty
c2a73b49f7 feat(batch2): verify memstore remainder features 2026-02-28 07:17:01 -05:00
Joseph Doherty
1a0ac59df8 feat(batch2): verify sublist helper remainder features 2026-02-28 07:11:42 -05:00
Joseph Doherty
3ace39d606 feat(batch2): verify parser remainder features 2026-02-28 07:06:09 -05:00
Joseph Doherty
f17d6c6bfb Rename 29 ImplBacklog test files from .Impltests.cs to .cs to match PortTracker class names 2026-02-28 06:56:52 -05:00
Joseph Doherty
25d78b77f3 feat(batch1): complete proto/const/ciphers/nkey/jwt feature set 2026-02-28 06:37:02 -05:00
Joseph Doherty
3c98c4c4fd feat(batch1): implement proto varint encoder parity 2026-02-28 06:35:12 -05:00
Joseph Doherty
c1ae46fc66 feat(batch1): add mapped proto scan helpers with boundary tests 2026-02-28 06:33:09 -05:00
Joseph Doherty
d8d71eab95 feat(batch1): implement jwt wipe and nonce-required internal logic 2026-02-28 06:30:23 -05:00
Joseph Doherty
f9b582dcca feat(batch1): add init parity hooks for ciphers and constants 2026-02-28 06:05:06 -05:00
Joseph Doherty
27bbd63ce2 test(batch0): port account/auth/options implementable tests 2026-02-28 04:39:13 -05:00
Joseph Doherty
fe3fd7c74d Port impltests backlog batch files and complete the latest parity test slice. Update tracker/report databases so verified status matches the passing batch evidence. 2026-02-27 12:42:31 -05:00
Joseph Doherty
b94a67be6e Implement deferred core utility parity APIs/tests and refresh tracking artifacts 2026-02-27 10:27:05 -05:00
Joseph Doherty
a660e38575 Implement deferred WaitQueue, DiskAvailability, and NoOpCache behavior with tests 2026-02-27 09:58:37 -05:00
Joseph Doherty
8849265780 Eliminate PortTracker stub backlog by implementing Raft/file-store/stream/server/client/OCSP stubs and adding coverage. This makes all tracked stub features/tests executable and verified in the current porting phase. 2026-02-27 08:56:26 -05:00
Joseph Doherty
ba4f41cf71 feat: implement SubscriptionIndex + JetStreamMemStore cluster — 39 features verified
Add SubscriptionIndex factory methods, notification wrappers, and
ValidateMapping. Implement 24 MemStore methods (TTL, scheduling, SDM,
age-check, purge/compact/reset) with JetStream header helpers and
constants. Verified features: 987 → 1026.
2026-02-27 06:19:47 -05:00
Joseph Doherty
1c5921d2c1 fix(p7-10): fix integration test quality issues (server guard, parallelism, flakiness, exception propagation) 2026-02-26 20:21:29 -05:00
Joseph Doherty
3e35ffadce chore: remove UnitTest1.cs scaffolding artifact from unit test project 2026-02-26 20:17:25 -05:00
Joseph Doherty
6a1df6b6f8 feat(p7-10): mark deferred tests, add integration tests, close Phase 7
- 2126 server-integration tests marked deferred
- NatsServerBehaviorTests.cs replaces UnitTest1.cs placeholder
- Server module and all features marked verified
- stub tests cleared to deferred
2026-02-26 20:14:38 -05:00
Joseph Doherty
9552f6e7e9 fix(p7-09): move DirectoryStoreTests to Accounts/, add missing PriorityPolicy test case 2026-02-26 20:10:04 -05:00
Joseph Doherty
f0faaffe69 feat(p7-09): JetStream unit tests — versioning (12), dirstore (12), batching/errors deferred (66)
Port session P7-09: add tests from jetstream_versioning_test.go (T:1791–1808),
dirstore_test.go (T:285–296), jetstream_batching_test.go (T:716–744),
jetstream_errors_test.go (T:1381–1384), and accounts_test.go (T:80–110).

- JetStreamVersioningTests: 12 active unit tests + 6 deferred (server-required)
- DirectoryStoreTests: 12 filesystem tests using fake JWTs (no NKeys dependency)
- JetStreamBatchingTests: 29 deferred stubs (all require running JetStream cluster)
- JetStreamErrorsTests: 4 deferred stubs (NewJS* factories not yet ported)
- accounts_test.go T:80–110: 31 deferred (all use RunServerWithConfig)

Fix DirJwtStore.cs expiration bugs:
  - Use DateTimeOffset.UtcNow.UtcTicks (not Unix-relative ticks) for expiry comparison
  - Replace in-place JwtItem mutation with new-object replacement so DrainStale
    can detect stale heap entries via ReferenceEquals check

Add JetStreamVersioning.cs methods: SetStaticStreamMetadata,
SetDynamicStreamMetadata, CopyStreamMetadata, SetStaticConsumerMetadata,
SetDynamicConsumerMetadata, SetDynamicConsumerInfoMetadata, CopyConsumerMetadata.

Tests: 725 pass, 53 skipped/deferred, 0 failures.
DB: +24 complete, +66 deferred.
2026-02-26 20:02:00 -05:00
Joseph Doherty
0950580967 feat(p7-06): port memstore & store interface tests (38 tests)
Add JetStreamMemoryStoreTests (27 tests, T:2023-2056) and
StorageEngineTests (11 tests, T:2943-2957) covering the JetStream
memory store and IStreamStore interface. Fix 10 bugs in MemStore.cs
discovered during test authoring: FirstSeq constructor, Truncate(0)
SubjectTree reset, PurgeEx subject-filtered implementation,
UpdateConfig MaxMsgsPer enforcement, FilteredStateLocked partial
range scan, StoreRawMsgLocked DiscardNewPer, MultiLastSeqs maxSeq
fallback scan + LastNeedsUpdate recalculation, AllLastSeqs
LastNeedsUpdate recalculation, LoadLastLocked LazySubjectState
recalculation, GetSeqFromTime ts==last equality, and timestamp
precision (100-ns throughout). 20 tests deferred (internal fields,
benchmarks, TTL, filestore-only). All 701 unit tests pass.
2026-02-26 19:35:58 -05:00
Joseph Doherty
917cd33442 feat(p7-05): fill signal & log stubs — SignalHandlerTests, ServerLoggerTests
- Add RemovePassFromTrace, RemoveAuthTokenFromTrace, RemoveSecretsFromTrace
  static methods to ServerLogging (mirrors removeSecretsFromTrace/redact in
  server/client.go); uses same regex patterns as Go source to redact only the
  first match's value with [REDACTED].
- Update ClientConnection.RemoveSecretsFromTrace stub to delegate to
  ServerLogging.RemoveSecretsFromTrace.
- Add 2 unit tests to SignalHandlerTests (T:2919 invalid command, T:2920 invalid
  PID); mark 14 process-injection/subprocess tests as deferred ([Fact(Skip=…)]).
- Create ServerLoggerTests with 3 test methods (T:2020, T:2021, T:2022) covering
  NoPasswordsFromConnectTrace, RemovePassFromTrace (8 theory cases),
  RemoveAuthTokenFromTrace (8 theory cases).
- DB: 3 log tests → complete, 2 signal tests → complete, 14 signal tests → deferred.
- All 663 unit tests pass (was 645), 14 deferred skipped.
2026-02-26 19:15:57 -05:00
Joseph Doherty
364329cc1e feat(p7-04): fill auth & config-check stubs — 1 written, 39 deferred
auth_test.go (6): T:153 GetAuthErrClosedState written as pure unit test;
T:147/149-152 use RunServer/RunServerWithConfig → deferred.
auth_callout_test.go (31): all use NewAuthTest (RunServer) → all deferred.
config_check_test.go (3): depend on Go .conf-format parser not yet ported → deferred.
Adds 7 new test methods to AuthHandlerTests; suite grows 638→645.
2026-02-26 19:07:44 -05:00
Joseph Doherty
f0b4138459 feat(p7-02): fill opts_test.go stubs — ServerOptionsTests
Write 3 unit tests portable without a running server:
- ListenMonitoringDefault (T:2524): SetBaselineOptions propagates Host → HttpHost
- GetStorageSize (T:2576): StorageSizeJsonConverter.Parse K/M/G/T suffixes
- ClusterNameAndGatewayNameConflict (T:2571): ValidateOptions returns ErrClusterNameConfigConflict

Mark 74 opts_test.go stubs deferred: tests require either the NATS
conf-format parser (not yet ported), a running server (RunServer/NewServer),
or CLI flag-parsing infrastructure (ConfigureOptions).

Fix StorageSizeJsonConverter.Parse to return 0 for empty input,
matching Go getStorageSize("") == (0, nil).

Total unit tests: 638 passing.
2026-02-26 19:00:18 -05:00
Joseph Doherty
a0c9c0094c fix: session B — Go-faithful auth error states, NKey padding, permissions, signal disposal 2026-02-26 17:49:13 -05:00