Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
819d2ee
refactor: response handling to use Result[T] type for type safety
meling Nov 26, 2025
2322fff
feat: add echoSrv and update testSrv to support GetValue
meling Nov 26, 2025
c615dba
fix: rename Incomplete error to ErrIncomplete for consistency
meling Nov 26, 2025
219a934
feat: add client-side interceptor-based quorum call architecture
meling Nov 26, 2025
d2e0f50
fix: underscore unused parameters and remove unused receiver parameter
meling Nov 26, 2025
c161818
fix: quorum size calculation and add tests for even node scenarios
meling Nov 26, 2025
376f0bd
fix: QuorumSpecInterceptor doc comment
meling Nov 26, 2025
e5b480d
fix: typos in ErrIncomplete doc comment
meling Nov 26, 2025
0d3c937
chore: remove extra " typo
meling Nov 26, 2025
424f760
refactor: iterator API to use single-value Results[T] type as receiver
meling Nov 27, 2025
176976e
fix: check if a quorumcall failed with deadline exceeded
meling Nov 27, 2025
bdee346
fix: iterate at most expectedReplies times in Response()
meling Nov 27, 2025
d1c45c5
doc: fixed test doc comment issue raised by copilot in code review
meling Nov 27, 2025
24af70c
fix: checkQuorumCall: avoid passing in ctx (deepsource)
meling Nov 27, 2025
407b2d7
doc: updated doc comments mentioned by copilot in code review
meling Nov 27, 2025
0d4f85e
refactor: rename Result to NodeResponse and Results to Responses
meling Nov 27, 2025
453e3bc
refactor: remove per_node_arg and custom_return type and update tmpls
meling Nov 27, 2025
719dd9f
refactor: second part of the template update
meling Nov 28, 2025
d0ec554
refactor: replace QuorumCallOption with CallOption
meling Nov 28, 2025
b54c2f9
feat: WithQuorumInterceptors and use variadic opts
meling Nov 28, 2025
a1b9c52
refactor: replace opts with waitSendDone bool in request struct
meling Nov 28, 2025
839525c
test: add test for custom return type
meling Nov 28, 2025
f96dc53
refactor: update getCallOptions to use variadic CallOption parameters
meling Nov 28, 2025
6c5c113
refactor: rename WithQuorumInterceptors and WithPerNodeTransform
meling Nov 28, 2025
491eb6f
refactor: extract interceptor extraction logic into a separate function
meling Nov 28, 2025
a68e89e
refactor: move register transform logic to call option
meling Nov 28, 2025
0df4b60
test: add tests for chaining transform functions
meling Nov 28, 2025
701383b
feat: add support for Map to replace PerNodeTransform and more
meling Nov 28, 2025
c743195
refactor: replace responseFunc with responses in ClientCtx for clarity
meling Nov 28, 2025
a01f534
chore: rename Transform CallOption to MapRequest
meling Nov 28, 2025
04675c7
refactor: to generated functions instead of methods on Configuration
meling Nov 29, 2025
bc37fb9
feat: add ConfigContext for simplified quorum call function signature
meling Nov 29, 2025
ab7fa29
refactor: correctable and async call handling in gorums
meling Nov 29, 2025
41cdfcb
refactor: migrate multicast, unicast, rpc to function-based calling (p1)
meling Nov 29, 2025
cb8424e
refactor: migrate multicast, unicast, rpc to function-based calling (p2)
meling Nov 29, 2025
e41be3a
refactor: migrate multicast, unicast, rpc to function-based calling (p3)
meling Nov 29, 2025
796574d
refactor: remove deprecated configuration and manager structures (p1)
meling Nov 29, 2025
82bbbf4
chore: regenerate _gorums.pb.go after removing
meling Nov 29, 2025
2797188
refactor: updated to gorums.Raw* types for oneway and node calltypes
meling Nov 29, 2025
d3a8f4a
refactor: configuration and quorum handling to use gorums.Raw types
meling Nov 29, 2025
4fd2084
refactor: add new quorum function benchmarks
meling Nov 29, 2025
d5bda88
chore: remove the legacy qf quorum function benchmark
meling Nov 29, 2025
06479e9
chore: rename quorum function benchmarks to quorumcall_bench_test.go
meling Nov 29, 2025
af96823
chore: use pointers for reserved identifiers Configuration, Manager, …
meling Nov 29, 2025
bd2d743
feat: use pointers for reserved identifiers Configuration, Manager, Node
meling Nov 29, 2025
c70a5b3
chore: updated correctable call _gorum.pb.go files
meling Nov 30, 2025
268dce4
feat: add newNodeResponse function for type conversion in NodeResponse
meling Nov 30, 2025
fbbd6e4
fix: skip issue in Correctable call; fix signatures
meling Nov 30, 2025
b698f1d
refactor: benchmark tool to use the new quorum function design
meling Nov 30, 2025
a668b3e
refactor: updated storage/repl to use new quorum function design
meling Nov 30, 2025
6eb7d6a
refactor: replace correctableQF with std quorumFunc and more
meling Nov 30, 2025
c54406e
refactor: redesign quorum call API to use fluent terminal methods
meling Dec 1, 2025
3fc4d00
refactor(v2): simplify Responses to single type parameter
meling Dec 1, 2025
3643cd2
chore: removed two unused functions in generator code
meling Dec 1, 2025
be2f200
refactor: move response handling logic to new file
meling Dec 1, 2025
ad60cd3
refactor: replace manual Responses creation with NewResponses function
meling Dec 1, 2025
0102a22
feat: consolidate client context management for all calltypes
meling Dec 1, 2025
e28780c
feat: add support for builder pattern to construct clientCtx
meling Dec 1, 2025
cf9860c
refactor: rename Raw types to non-Raw
meling Dec 1, 2025
0b9d116
refactor: rename Raw constructors to their non-Raw counterparts
meling Dec 1, 2025
ac56392
chore: regenerated _gorums.pb.go following Raw types rename
meling Dec 1, 2025
9c32d34
refactor: rename getMsgID to nextMsgID and update references for clarity
meling Dec 1, 2025
562d938
chore: updated some documention Raw references no longer valid
meling Dec 1, 2025
43396ef
refactor: make gorumsStream type safe with Gorums_NodeStreamClient
meling Dec 1, 2025
fdfe15b
test: add tests and benchmarks for stream ready and reconnection
meling Dec 2, 2025
0fdf131
feat: add streamReady channel to signal when stream becomes available
meling Dec 2, 2025
6e7794f
chore: define fixed test duration across ordering tests
meling Dec 2, 2025
a995db3
feat: add stress tests for ordering tests using iter.Seq
meling Dec 2, 2025
ab4af0b
fix: reduce iteration count for Unresponsive test
meling Dec 2, 2025
47ee0b9
refactor: consolidate test setup and teardown with robust test helpers
meling Dec 2, 2025
d686056
refactor: consolidate test helpers: SetupConfiguration, SetupNode
meling Dec 2, 2025
24fe5d7
fix: TestServers to work in benchmarks
meling Dec 2, 2025
9b98405
refactor: use SetupConfiguration in correctable_test.go
meling Dec 2, 2025
133fd23
chore: remove unused NewTestConfigContext
meling Dec 2, 2025
b7e46cd
refactor: simplify test setup by consolidating server initialization
meling Dec 2, 2025
23773b7
refactor: removed unused NewTestConfig and SetupNodes
meling Dec 2, 2025
419ba3f
refactor: clarify need for setupWithNodeMap for consistent node IDs
meling Dec 2, 2025
5e4af41
feat: add TestContext for consistency and clarity
meling Dec 2, 2025
a45ff71
chore: replace context.WithTimeout with TestContext for improved clarity
meling Dec 2, 2025
9d86335
refactor: streamline setup in tests for improved readability
meling Dec 2, 2025
4f2dc5c
feat: add testing options for improved server management and teardown
meling Dec 2, 2025
2a4e572
feat: enhance test setup with TestOption for flexible config mgnt
meling Dec 2, 2025
c00567f
feat: add Manager method to Configuration and add TestOption type
meling Dec 3, 2025
51eb487
chore: simplify TestServerCallback using SetupNode
meling Dec 3, 2025
431e288
chore: minor comments and if err contraction
meling Dec 3, 2025
12e1eee
refactor: replace newNodeWithServer with SetupNode
meling Dec 3, 2025
215644e
refactor: rename WithTeardown to WithPreConnect and update related tests
meling Dec 3, 2025
3ec9f8d
refactor: add WithStopFunc option and remove newNodeWithStoppableServer
meling Dec 3, 2025
53477a7
refactor: move preConnect option to testOptions
meling Dec 3, 2025
69904fb
refactor: remove TestSetup function and update doc for TestServers
meling Dec 3, 2025
2ba5319
refactor: rename NewTestNode with testNodeWithoutServer
meling Dec 3, 2025
a6db001
refactor: rename SetupNode, SetupConfiguration to Test*
meling Dec 3, 2025
e22f411
refactor: remove gorums.async option and use helper funcs instead
meling Dec 3, 2025
3eb681e
refactor: replace QuorumCallWithInterceptor with QuorumCall*
meling Dec 3, 2025
1e03735
refactor: correctable functionality and remove deprecated options
meling Dec 4, 2025
2a49e00
refactor: unexport the Update method for Correctable[Resp]
meling Dec 4, 2025
ff2926f
chore: reorganization of repsonse handling methods
meling Dec 5, 2025
de215df
fix: BenchmarkGetCallOptions()
meling Dec 5, 2025
5f43659
refactor: reorganized tests and various fixes
meling Dec 5, 2025
a3b46a3
chore: clean up various tests and remove old cruft
meling Dec 6, 2025
20cde1c
refactor: return error from Unicast and Multicast methods (part 1)
meling Dec 6, 2025
37e7319
refactor: return error from Unicast and Multicast methods (part 2)
meling Dec 6, 2025
1e9b991
refactor: rename call option WithNoSendWaiting() to IgnoreErrors()
meling Dec 6, 2025
addcb2d
fix: doc comments and add forwarding funcs to generated code
meling Dec 6, 2025
aced390
chore: regenerated _gorums.pb.go with forwarding funcs
meling Dec 6, 2025
75e7aff
chore: rename WithGrpcDialOptions to WithDialOptions
meling Dec 6, 2025
2723909
feat: add NewConfig helper to create configurations without Manager
meling Dec 6, 2025
757a3ea
chore: regenerate _gorums.pb.go files
meling Dec 6, 2025
c5862fe
fix: stream benchmark slowness
meling Dec 6, 2025
c15f39b
fix: revised the AGENTS.md file
meling Dec 6, 2025
0695038
feat: lazy stream connection to avoid blocking on NewConfiguration
meling Dec 9, 2025
3d2b192
feat: add latency tracking to channel and corresponding test
meling Dec 9, 2025
d2450ec
chore: unexported addNode in test (move test to gorums pkg)
meling Dec 9, 2025
8b8c81d
refactor: partially decouple node and channel
meling Dec 10, 2025
c233e3d
refactor: replace WithNoConnect with InsecureDialOptions in tests
meling Dec 10, 2025
d533a26
refactor: remove legacy NewNode functions
meling Dec 10, 2025
0e68457
chore: updated generated code to remove NewNode
meling Dec 10, 2025
361f10e
chore: update nextMsgID to use msgIDGen for message ID generation
meling Dec 10, 2025
a536134
refactor: reduce coupling between channel and node
meling Dec 11, 2025
7ef675e
refactor: remove logger from channel and node
meling Dec 14, 2025
317a678
fix: error handling for multicast and unicast operations
meling Dec 14, 2025
4e5a208
refactor: stop function with variadic args to stop individual srvs
meling Dec 14, 2025
2fd0640
refactor: QuorumCallError to remove replies field and support Unwarp
meling Dec 14, 2025
b3c1a22
test: add TestPartialFailures for multicast and quorumcall
meling Dec 14, 2025
1fe9928
feat: add WithoutErrors to Configuration for excluding failed nodes
meling Dec 14, 2025
828b02f
refactor: simplify update logic in Correctable and Threshold methods
meling Dec 14, 2025
31047ea
chore: switch to new protobuf vscode plugin; update settings
meling Dec 14, 2025
570b7d1
chore: remove unnecessary variable declaration for nodes in mgr_test.go
meling Dec 14, 2025
df47d55
fix: rename missing WaitForLevel to Correctable
meling Dec 14, 2025
2621f82
feat: implement ParseInteger function for generic integer parsing
meling Dec 14, 2025
6d9ce38
fix: refactor serverState start method to run synchronously
meling Dec 14, 2025
ee2ca07
fix: remove unused outPrefix field and hasAllMethodOption function
meling Dec 14, 2025
77c9112
fix: rename new param to newNodes in WithNewNodes function
meling Dec 14, 2025
a732911
fix: remove receiver var for test methods where not needed
meling Dec 14, 2025
96d95e1
fix: remove duplicate import
meling Dec 14, 2025
44a8a49
fix: remove unused parameters in function signatures across test files
meling Dec 14, 2025
2a6942e
fix: add skipcq comments to suppress linting warnings in test files
meling Dec 14, 2025
46b5b4c
fix: rename send function to sendReq
meling Dec 14, 2025
8fe944a
fix: rename internal quorumCall to invokeQuorumCall
meling Dec 14, 2025
15c9ff2
fix: simplify var declaration for CorrectableResponse in test
meling Dec 14, 2025
a9b1912
doc: update user guide and options guide for Gorums; add migration guide
meling Dec 15, 2025
729ecbf
refactor: context handling for node and configuration
meling Dec 15, 2025
f5c011e
test: add custom aggregation pattern tests for Responses
meling Dec 17, 2025
e44cf37
doc: add recommended patterns for custom quorum functions
meling Dec 17, 2025
cbc1304
doc: clarify API behavior and streaming support in method options
meling Dec 17, 2025
85b82bf
refactor: make interceptor design more flexible with next argument
meling Dec 17, 2025
0a9575f
doc: improve user guide
meling Dec 17, 2025
b502e3c
refactor: ordering, method, and type handling in gorums generator
meling Dec 20, 2025
bce7580
chore: update Go version and dependencies to latest versions
meling Dec 20, 2025
670a7d8
chore: update protoc-gen-go and protoc versions to v1.36.11 and v6.33.2
meling Dec 20, 2025
8b2e36e
chore: update protoc-gen-go-grpc and protoc to v1.6.0 and v6.33.2
meling Dec 20, 2025
a762a3b
chore: update protoc version to v6.33.2 in zorums generated files
meling Dec 20, 2025
fdbfe22
chore: updated gorums in generated test and example files
meling Dec 20, 2025
f849770
doc: add storage.proto for the gorumsexample service used in the tuto…
meling Dec 21, 2025
08fbeef
chore: update examples/Makefile with docs for debug flags
meling Dec 21, 2025
883425e
chore: keep only one .gitignore
meling Dec 21, 2025
bb57284
chore: replace clang-format with buf format via protobuf-vsc extension
meling Dec 21, 2025
c8f1be4
chore: update examples/storage.proto resolve lint issues
meling Dec 21, 2025
11df72f
chore: update benchmark proto resolve lint issues
meling Dec 21, 2025
02cdac4
refactor: remove MemoryStatList from benchmark
meling Dec 21, 2025
2306fac
refactor: rename MessageID to message_seq_no in ordering.proto
meling Dec 21, 2025
4e99c28
feat: add gorums.System and proper io.Closer support
meling Dec 25, 2025
59cde08
fix(channel): eliminate race condition in ensureStream
meling Dec 26, 2025
de30aa2
refactor(channel): move ensureStream closer to related newNodeStream
meling Dec 26, 2025
a67cb52
feat: add benchmark validation and measurement targets in Makefile
meling Dec 26, 2025
11e293e
refactor(sync): replace RWMutex with Mutex
meling Dec 26, 2025
4183fb7
refactor(channel): improve ensureStream doc and helper func rename
meling Dec 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,21 @@ Session.vim
.netrwhist
*~

*.xo
# IDE and scratch files
.vscode/*.log
.idea/
*.xo
z-scratch/

# binary files
# Binary files
cmd/benchmark/benchmark
examples/storage/storage

# Gorums generated backup files
cmd/protoc-gen-gorums/gengorums/template_static.go.bak

# Ignore the generated code for the tutorial example
examples/gorumsexample/storage.pb.go
examples/gorumsexample/storage_gorums.pb.go

go.work.sum
6 changes: 2 additions & 4 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
{
"recommendations": [
"xaver.clang-format",
"streetsidesoftware.code-spell-checker",
"golang.go",
"davidanson.vscode-markdownlint",
"zxh404.vscode-proto3",
"github.vscode-pull-request-github",
"redhat.vscode-yaml"
"drblury.protobuf-vsc",
"github.vscode-pull-request-github"
]
}
9 changes: 9 additions & 0 deletions .vscode/gorums.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
Ansible
benchgraph
benchtest
benchtime
bootstrapgorums
calltype
calltypes
Expand All @@ -19,6 +21,7 @@ errgroup
extendee
Frausing's
fset
GCFLAGS
gengorums
genproto
GOBIN
Expand Down Expand Up @@ -51,11 +54,14 @@ memprofile
mktemp
multicast
naddr
netrwhist
obj's
objc
oneway
Paxos
Pedersen
pkgs
pluginpb
proto
protobuf
protoc
Expand All @@ -78,10 +84,13 @@ RPC's
RPCs
semver
shlex
skipcq
srvs
stressdev
stressgen
stresstest
struct
subtests
syncrq
testprotos
testrace
Expand Down
32 changes: 19 additions & 13 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
},
"files.exclude": {
"**/.git": true,
"**/.jj": true,
"**/.DS_Store": true,
},
"files.insertFinalNewline": true,
Expand All @@ -53,19 +54,24 @@
"usePlaceholders": true,
"staticcheck": false
},
"protoc": {
"compile_on_save": false,
"options": [
"--proto_path=${workspaceRoot}",
"--proto_path=${workspaceRoot}/cmd/protoc-gen-gorums/dev",
"--proto_path=${workspaceRoot}/third_party"
]
},
"clang-format.executable": "/usr/bin/clang-format",
"clang-format.style": "{ IndentWidth: 4, BasedOnStyle: google, AlignConsecutiveAssignments: true, ColumnLimit: 120 }",
"[proto3]": {
"editor.defaultFormatter": "zxh404.vscode-proto3"
},
"protobuf.protoc.path": "protoc",
"protobuf.formatOnSave": true,
"protobuf.formatter.enabled": true,
"protobuf.formatter.alignFields": true,
"protobuf.protoc.options": [
"--proto_path=${workspaceFolder}",
"--proto_path=${workspaceFolder}/cmd/protoc-gen-gorums/dev",
"--proto_path=${workspaceFolder}/third_party",
"--go_opt=paths=source_relative",
"--go-grpc_opt=paths=source_relative",
"--gorums_opt=paths=source_relative",
"--go_opt=default_api_level=API_OPAQUE"
],
"protobuf.buf.path": "buf",
"protobuf.externalLinter.bufPath": "buf",
"protobuf.externalLinter.enabled": true,
"protobuf.externalLinter.runOnSave": true,
"protobuf.externalLinter.linter": "buf",
"markdownlint.config": {
"MD024": false,
"default": true,
Expand Down
37 changes: 23 additions & 14 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Agent Instructions for Gorums Project

You are working on the Gorums project - a framework for building fault-tolerant distributed systems using quorum-based abstractions. This document provides critical context and rules for AI coding assistants.
Gorums is a framework for building fault-tolerant distributed systems using quorum-based abstractions.
This document provides context and rules for AI coding assistants.

## Project Overview

Expand Down Expand Up @@ -34,7 +35,7 @@ gorums/
└── *.go # Core library files
```

## Critical Development Rules
## Development Rules

### Code Generation Workflow

Expand All @@ -43,28 +44,26 @@ gorums/
These files are generated from templates. Instead:

1. **For Template Changes:**
- Edit the corresponding template in `cmd/protoc-gen-gorums/gengorums/template_*.go`
- Run `make` to regenerate code
- The `zorums_*` files will be automatically updated
- Edit template in `cmd/protoc-gen-gorums/gengorums/template_*.go`
- Run `make dev` to regenerate `zorums_*_gorums.pb.go` files

2. **For Static Code Changes:**
- Edit files in `cmd/protoc-gen-gorums/dev/` that are NOT prefixed with `zorums_*`
- Run `make` to bundle changes into `template_static.go`
- Changes propagate to generated code automatically
- Run `make dev` to bundle changes into `template_static.go`

3. **After Any Template or Static Code Changes:**

```bash
make # Normal rebuild
make -B # Force rebuild (e.g., after protoc update)
```
- Run `make dev` to regenerate `zorums_*_gorums.pb.go` files
- Or run `make genproto` to regenerate all _gorums.pb.go files

### Testing Requirements

- **Run tests after every change:** `make test`
- Tests verify the correctness and stability of generated code
- ALL test failures must be addressed before considering work complete
- Never delete failing tests - fix the underlying issue
- If suitable, tests should be table-driven
- If suitable, tests should be organized as subtests
- Test names should be capitalized, like TestFileNameFeatureName, e.g., TestQuorumCallFeatureName, for some feature in `quorumcall_test.go`

### Code Style and Conventions

Expand Down Expand Up @@ -105,6 +104,12 @@ These files are generated from templates. Instead:
### Common Commands

```bash
# Generate `zorums_*_gorums.pb.go` files in `cmd/protoc-gen-gorums/dev/`
make dev

# Generate _gorums.pb.go files across the project
make genproto

# Build everything
make

Expand All @@ -114,6 +119,9 @@ make -B
# Run tests
make test

# Ensure tests are actually run (not skipped by cache)
go test ./... -count=1

# Install protoc-gen-gorums plugin
make installgorums

Expand Down Expand Up @@ -152,7 +160,7 @@ Gorums provides custom protobuf options defined in `gorums.proto`:

- Method-level options for quorum call types
- Configuration options for RPC behavior
- See `doc/method-options.md` for details
- See `doc/user-guide.md` for details

## Documentation

Expand All @@ -161,8 +169,9 @@ Before making significant changes, consult:
- `doc/user-guide.md` - Understanding the API and usage patterns
- `doc/dev-guide.md` - Development workflow and architecture
- `doc/design-doc-layering.md` - System architecture and layering
- `doc/method-options.md` - Protocol buffer options reference

- `README.md` - Project overview and getting started
- When editing markdown files, use one sentences per line, so that diffs are easier to read.

## Common Pitfalls to Avoid

Expand Down
29 changes: 26 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ static_file := $(gen_path)/template_static.go
static_files := $(shell find $(dev_path) -name "*.go" -not -name "zorums*" -not -name "*_test.go")
proto_path := $(dev_path):third_party:.

plugin_deps := gorums.pb.go internal/correctable/opts.pb.go $(static_file)
plugin_deps := gorums.pb.go $(static_file)
runtime_deps := ordering/ordering.pb.go ordering/ordering_grpc.pb.go
benchmark_deps := benchmark/benchmark.pb.go benchmark/benchmark_gorums.pb.go

.PHONY: all dev tools bootstrapgorums installgorums benchmark test compiletests genproto
.PHONY: all dev tools bootstrapgorums installgorums benchmark test compiletests genproto benchtest bench

all: dev benchmark compiletests

Expand Down Expand Up @@ -56,12 +56,35 @@ endif
compiletests: installgorums
@$(MAKE) --no-print-directory -C ./internal/tests all

test: compiletests
test: compiletests benchtest
@go test ./...

testrace: compiletests
go test -race -cpu=1,2,4 ./...

# Run benchmarks with validation (short runs to verify they don't fail).
# Uses -benchtime=100x for limited iterations to avoid port exhaustion on macOS.
# Suppresses output on success; shows details on failure.
benchtest: compiletests
@if ! go test -run=^$$ -bench=. -benchtime=100x -count=1 ./... > /tmp/benchtest.out 2>&1; then \
echo "Benchmark validation failed:"; \
cat /tmp/benchtest.out; \
exit 1; \
fi
@echo "Benchmark validation passed"

# Run benchmarks with proper measurement (longer runs for performance analysis).
# Use -count=10 or more for statistically significant results.
# This only runs benchmarks in the main module and in internal/tests/oneway
# (when adding benchmarks elsewhere, update this target accordingly).
bench: compiletests
go test -run=^$$ -bench=. -benchtime=1s -count=10 . ./internal/tests/oneway

# Run stress tests that use longer durations for thorough testing.
# These tests are excluded from normal test runs via the 'stress' build tag.
stresstest: compiletests
go test -tags=stress ./...

# Warning: will probably run for 10 minutes; the timeout does not work
stressdev: tools
go test -c $(dev_path)
Expand Down
Loading