Skip to content

test: add automated Struct Array enhancement regression coverage - #55237

Open
zhuwenxing wants to merge 4 commits into
milvus-io:masterfrom
zhuwenxing:test-struct-array-enhance-ci
Open

zhuwenxing wants to merge 4 commits into
milvus-io:masterfrom
zhuwenxing:test-struct-array-enhance-ci

Conversation

@zhuwenxing

Copy link
Copy Markdown
Contributor

Struct Array enhancement coverage from feature validation is now retained as named CI cases with deterministic data oracles and a non-interactive regression entrypoint. The Python cases cover nullable children, nested arrays, schema evolution, mutations, imports, vector/index/metric combinations, properties and bounded concurrent histories. Go SDK and REST v2 cases focus on their own schema/data encoding, request options, response decoding and error contracts through real-server round trips.

The change adds 31 Python testcase modules, five REST testcase modules, two Go SDK testcase files and two C++ regression controls. Shared models and helpers live outside testcase modules. The manifest runner preserves pytest exit status and emits JUnit, Allure results and source/selection metadata. Special-configuration and authenticated RBAC cases use L3; normal cases use the existing L0/L1/L2 selection. PyMilvus is updated to 3.1.0rc105 and the Python Allure adapter to 2.16.0, which was verified with the existing pytest 8.3.4 runner.

Validation

Server commit: 37f36f60964a97e4459fba0905b755aecb0531cd; standalone with Woodpecker, Storage V3 and schema-version backfill compaction enabled.

  • Python: 490 collected, including 474 regular and 16 specialized cases. Reconciled across baseline runs and focused reruns: 467 regular PASS and 7 strict XFAIL. Three authenticated RBAC cases also passed; the other 13 specialized cases were not rerun in this CI validation.
  • The original remaining baseline retained 423 PASS / 3 FAIL. Those three DISKANN score failures were subsequently rerun as 3 strict XFAIL, with two passing score controls. Concurrent child-drop failures were independently reproduced, reconciled against stored data after reload, and rerun with narrow issue-linked classifiers. This is evidence across runs, not one all-green full-suite execution.
  • REST v2: 35 new + 9 existing cases passed after reducing repeated server lifecycle coverage.
  • Go SDK: 4 new + 2 existing top-level test groups passed, including nested NULL columns, mutation options, schema options and public search offsets/result slicing.
  • C++: 40 tests passed in the selected StructElementOffsetsTest suite and growing-segment missing-representative test.
  • Code-Check: Ruff 0.15.11 lint/format for all 51 changed Python files, Go 1.26.10 with golangci-lint 2.11.3 package lint and separate gci/gofmt/gofumpt/goimports checks, source headers, manifest/collection and whitespace checks passed. Clang-format 15.0.7 passed for the two C++ files. C++ cpplint retained 10 existing diagnostics, with no new diagnostics; a clean full cpplint run is not claimed.

Expected failures and scope

Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
Signed-off-by: zhuwenxing <wenxing.zhu@zilliz.com>
@sre-ci-robot sre-ci-robot added area/test sig/testing size/XXL Denotes a PR that changes 1000+ lines. labels Nov 6, 2026
@sre-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
To complete the pull request process, please ask for approval from zhuwenxing after the PR has been reviewed.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@mergify mergify Bot added dco-passed DCO check passed. kind/test labels Nov 6, 2026
@sre-ci-robot

Copy link
Copy Markdown
Contributor

[ci-v2-notice]
Notice: New ci-v2 system is enabled for this PR.

To rerun ci-v2 checks, comment with:

  • /ci-rerun-code-check // for ci-v2/code-check
  • /ci-rerun-code-check-macos // for Code Checker MacOS (GitHub Actions)
  • /ci-rerun-build // for ci-v2/build
  • /ci-rerun-build-all // for ci-v2/build-all (multi-arch builds)
  • /ci-rerun-buildenv // for ci-v2/build-env (build milvus-env builder images; update .env after the new tag is ready)
  • /ci-rerun-ut-integration // for ci-v2/ut-integration, will rerun ci-v2/build
  • /ci-rerun-ut-go // for ci-v2/ut-go, will rerun ci-v2/build
  • /ci-rerun-ut-cpp // for ci-v2/ut-cpp
  • /ci-rerun-ut // for all ci-v2/ut-integration, ci-v2/ut-go, ci-v2/ut-cpp, will rerun ci-v2/build
  • /ci-rerun-e2e-default // for ci-v2/e2e-default
  • /ci-rerun-e2e-pulsar-wp // for ci-v2/e2e-pulsar-wp (GCP branch-equivalent Pulsar + Woodpecker Python E2E)
  • /ci-rerun-e2e-amd // for ci-v2/e2e-amd (e2e pool dispatcher)
  • /ci-rerun-e2e-dist-wp // for ci-v2/e2e-dist-wp (Tencent distributed woodpecker-service boundary)
  • /ci-rerun-build-ut-cov // for ci-v2/build-ut-cov (build + unit tests in one pipeline)
  • /ci-rerun-build-ut-cov-tcus // force TC-US build-ut-cov; respects Portal limit, never falls back to AWS
  • /ci-rerun-gosdk // for ci-v2/go-sdk (Go SDK E2E tests, ARM)
  • /ci-rerun-gosdk-std // for ci-v2/go-sdk-std (Go SDK E2E, standalone)
  • /ci-rerun-gosdk-dist-wp // for ci-v2/go-sdk-dist-wp (Go SDK E2E, distributed + Woodpecker service)

If you have any questions or requests, please contact @zhikunyao.

@sre-ci-robot

Copy link
Copy Markdown
Contributor

✅ CI Loop Results 7455e50

Stage Result Duration Tests
✅ Build SUCCESS 10.0min -
✅ Code-Check SUCCESS 5.7min -
✅ UT-Integration SUCCESS 41.2min -
✅ UT-GO SUCCESS 35.8min -
✅ UT-CPP-Cov SUCCESS 39.5min 23015 total, 23015 passed, 0 failed

Total: 60min | Pipeline | Artifacts

Overall Coverage: 79.1%
Diff Coverage: CPP 98.2% (56 hit, 1 miss, 57 measurable lines, 35 unmeasured)
Diff Coverage HTML: view changed lines
Total Patch Coverage: 98.2% (56/57 measurable lines, 35 unmeasured)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/test dco-passed DCO check passed. kind/test sig/testing size/XXL Denotes a PR that changes 1000+ lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants