[GH-ISSUE #3752] [CI/Build] Run mooncake-common etcd wrapper Go tests in CI #957

Closed
opened 2026-10-29 21:21:19 +00:00 by bsakaguchi · 2 comments
Owner

Originally created by @Aionw on GitHub (Aug 28, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/3752

Bug Report

Description

The Go etcd wrapper currently has no unit-test execution path in Mooncake's
build or CI configuration.

mooncake-common/etcd/CMakeLists.txt only builds the shared library with:

go build -buildmode=c-shared -o ... etcd_wrapper.go

This does not compile or execute *_test.go files. Existing workflows also do
not run go test in mooncake-common/etcd; the Store Go integration tests run
in a different Go module.

Consequently, Go unit tests added for the etcd wrapper can silently remain
unexecuted while the normal build and CTest jobs pass.

Steps to reproduce

  1. Add a deliberately failing test under
    mooncake-common/etcd/*_test.go.
  2. Run the normal STORE_USE_ETCD=ON build and CTest workflow.
  3. Observe that the build and tests pass without executing the failing Go test.

Expected behavior

Mooncake CI should run the etcd wrapper's Go unit tests and fail when one of
them fails to compile or execute.

A direct command would be:

cd mooncake-common/etcd
go test ./...

This could be integrated into CTest or added as a dedicated CI step.

Acceptance criteria

  • CI executes the etcd wrapper's Go unit tests.
  • A failing *_test.go causes the CI job to fail.
  • The test command can also be run locally and is documented or exposed through
    the existing build/test tooling.
  • If #2643 changes the wrapper location to
    mooncake-common/ha-wrapper, equivalent test coverage is retained there.

PR #2643 proposes moving the etcd wrapper into a unified Go HA wrapper. It is
related because the proposed CMake configuration also builds the Go shared
library without running its unit tests, but it does not currently address this
test coverage gap.

Before submitting

  • Searched existing issues and open PRs for equivalent Go/etcd wrapper test
    coverage work.
Originally created by @Aionw on GitHub (Aug 28, 2026). Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/3752 ## Bug Report ### Description The Go etcd wrapper currently has no unit-test execution path in Mooncake's build or CI configuration. `mooncake-common/etcd/CMakeLists.txt` only builds the shared library with: ```bash go build -buildmode=c-shared -o ... etcd_wrapper.go ``` This does not compile or execute `*_test.go` files. Existing workflows also do not run `go test` in `mooncake-common/etcd`; the Store Go integration tests run in a different Go module. Consequently, Go unit tests added for the etcd wrapper can silently remain unexecuted while the normal build and CTest jobs pass. ### Steps to reproduce 1. Add a deliberately failing test under `mooncake-common/etcd/*_test.go`. 2. Run the normal `STORE_USE_ETCD=ON` build and CTest workflow. 3. Observe that the build and tests pass without executing the failing Go test. ### Expected behavior Mooncake CI should run the etcd wrapper's Go unit tests and fail when one of them fails to compile or execute. A direct command would be: ```bash cd mooncake-common/etcd go test ./... ``` This could be integrated into CTest or added as a dedicated CI step. ### Acceptance criteria - CI executes the etcd wrapper's Go unit tests. - A failing `*_test.go` causes the CI job to fail. - The test command can also be run locally and is documented or exposed through the existing build/test tooling. - If #2643 changes the wrapper location to `mooncake-common/ha-wrapper`, equivalent test coverage is retained there. ### Related work PR #2643 proposes moving the etcd wrapper into a unified Go HA wrapper. It is related because the proposed CMake configuration also builds the Go shared library without running its unit tests, but it does not currently address this test coverage gap. ### Before submitting - [x] Searched existing issues and open PRs for equivalent Go/etcd wrapper test coverage work.
bsakaguchi 2026-10-29 21:21:19 +00:00
Author
Owner

@github-actions[bot] commented on GitHub (Aug 28, 2026):

Thanks for opening this issue, @Aionw!

Field Value
Issue #3752
GitHub user ID 41376987
Reporter @Aionw

A maintainer will triage this when possible. To help us respond faster, please include:

  • Mooncake version or commit SHA
  • Environment (OS, CUDA/driver, RDMA stack if relevant)
  • Steps to reproduce and expected vs. actual behavior

Useful links: Documentation · Contributing guide

This message was posted automatically by the issue bot.

<!-- gh-comment-id:5451890159 --> @github-actions[bot] commented on GitHub (Aug 28, 2026): Thanks for opening this issue, @Aionw! | Field | Value | |-------|-------| | **Issue** | #3752 | | **GitHub user ID** | `41376987` | | **Reporter** | @Aionw | A maintainer will triage this when possible. To help us respond faster, please include: - Mooncake version or commit SHA - Environment (OS, CUDA/driver, RDMA stack if relevant) - Steps to reproduce and expected vs. actual behavior Useful links: [Documentation](https://kvcache-ai.github.io/Mooncake/) · [Contributing guide](https://github.com/kvcache-ai/Mooncake/blob/main/CONTRIBUTING.md) > This message was posted automatically by the issue bot.
Author
Owner

@migarci2 commented on GitHub (Aug 28, 2026):

I would like to take this. I will wire the etcd wrapper Go tests into the existing CTest path so they run locally and in the current etcd-enabled CI job.

<!-- gh-comment-id:5452339190 --> @migarci2 commented on GitHub (Aug 28, 2026): I would like to take this. I will wire the etcd wrapper Go tests into the existing CTest path so they run locally and in the current etcd-enabled CI job.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/Mooncake#957
No description provided.