Open
Conversation
Register a single "project" scenario in the existing scenario registry. Project tests are invoked via: run-scenario --scenario project --language go --option test=helloworld Key changes: - Add ConnectionParams to ScenarioInfo for spawned processes - Extend workers/build.go with ProjectDir field for project builds - Create ProjectScenarioExecutor (build, spawn, gRPC init, execute) - Move harness to workers/go/projectharness/ (package, not separate module) - Add Go helloworld project test at workers/go/projects/helloworld/
- Harness implements the same gRPC ProjectService pattern as Go - Proto stubs generated at build time via Grpc.Tools in the csproj - Helloworld project demonstrates minimal setup Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add --project-dir to prepare-worker for building project test binaries - Extend Go and .NET Dockerfiles to COPY workers/proto for project builds Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Putting in draft to improve the build code & project dockerfiles |
… as program.csproj with conditional Project/PackageReference. dotnet/go-project.Dockerfiles map closer to existing non-project dockerfiles, but with different runtime stages
Contributor
Author
|
RFR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was changed
Added a new
projectscenario that allows running load against arbitrary projects.The idea is to allow developers to write self-contained feature tests (e.g. for Nexus operations) called projects, independently of the kitchen-sink scenario pipeline. Some advantages over the existing scenarios:
Enabling this is a simple harness comprised of a gRPC API and some hook functions:
InitRPC: one-time project initialization, provides connection parameters for the project to create clientsExecuteRPC: runs at each iteration of the executor, this is where load is drivenInitFunchook: optional hook that allows for one-time, project-specific initialization (i.e. registering Nexus endpoints), triggered during theInitRPCExecuteFunchook: required hook, this runs at eachExecuteRPC call, this determines what load you want to driveRegisterClienthook: registers a client to be used by your projectRegisterWorkerhook: register a a worker to be used by your projectCurrently, harness implementations are limited to Go and .NET.
They include sample tests:
HelloWorldHelloWorld,NexusSimpleWorkflowThere is also docker support via
go-project.Dockerfileanddotnet-project.Dockerfile.Like existing worker builds, builds for projects also support "build-from-source" (i.e.
--version <path to local repo>), so you can test against local changes.See the
README.mdfor details on how to use this scenario.Note
SteadyStateExecutor), but still effectively for throughput testing.