milvus/tests/integration
wei liu 5d752498e7
fix: Skip release duplicate l0 segment (#31540)
issue: #31480 #31481

release duplicate l0 segment task, which execute on old delegator may
cause segment lack, and execute on new delegator may break new
delegator's leader view.

This PR skip release duplicate l0 segment by segment_checker, cause l0
segment will be released with unsub channel

---------

Signed-off-by: Wei Liu <wei.liu@zilliz.com>
2024-03-27 12:53:10 +08:00
..
alias feat: Implement DescribeAlias and ListAliases interfaces (#29641) 2024-01-11 19:12:51 +08:00
balance fix: Skip release duplicate l0 segment (#31540) 2024-03-27 12:53:10 +08:00
coorddownsearch fix: [skip e2e]Increase graceful time to ensure that bounded search executing normally (#31064) 2024-03-07 10:53:00 +08:00
coordrecovery enhance: Save collection targets by batches (#31616) 2024-03-27 00:09:08 +08:00
crossclusterrouting enhance: Simplify cross cluster routing integration test (#29873) 2024-01-11 14:00:52 +08:00
datanode fix: Skip unstable compaction test it (#31116) 2024-03-08 10:23:00 +08:00
expression enhance: Support more relational operators for binary expressions (#30902) 2024-03-01 16:57:00 +08:00
getvector Add float16 approve for multi-type part (#28427) 2024-01-11 15:48:51 +08:00
hellomilvus enhance: Set log level to INFO for integration test (#31136) 2024-03-08 14:33:00 +08:00
hybridsearch fix: create new HybridSearch request in case of data race (#29771) 2024-01-09 09:54:48 +08:00
import feat: Add disk quota checks for import V2 (#31131) 2024-03-15 14:43:03 +08:00
indexstat fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
insert fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
jsonexpr feat: Support for multiple forms of JSON (#31052) 2024-03-11 19:55:02 +08:00
querynode enhance: add configurable memory index load predict memory usage factor (#30561) 2024-03-01 15:23:00 +08:00
rangesearch fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
refreshconfig Decoupling client and server API in types interface (#27186) 2023-09-26 09:57:25 +08:00
replicas/balance fix: Grpcclient return unrecoverable error (#31256) 2024-03-15 10:03:05 +08:00
target enhance: Speed up target recovery after query coord restart (#31240) 2024-03-15 14:19:03 +08:00
upsert fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
meta_watcher_test.go fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
meta_watcher.go fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
minicluster_v2.go enhance: Speed up target recovery after query coord restart (#31240) 2024-03-15 14:19:03 +08:00
OWNERS Trigger main workflow when integration test changed (#24020) 2023-05-11 09:51:19 +08:00
querynodev2_test.go fix: Repair integration test framework (#28308) 2023-11-24 10:26:23 +08:00
README.md Add README for integration test (#24441) 2023-05-26 15:55:27 +08:00
suite.go enhance: Auto release in integration test tear down (#31147) 2024-03-09 11:17:00 +08:00
util_index.go feat: Support multiple vector search (#29433) 2024-01-08 15:34:48 +08:00
util_insert.go test: removing deprecated code (#30484) 2024-02-06 10:46:01 +08:00
util_query.go enhance:Add integration test for searching when coord down (#30717) 2024-03-01 17:07:00 +08:00
util_schema.go Add float16 approve for multi-type part (#28427) 2024-01-11 15:48:51 +08:00

Integration test

This folder contains the integration test for Milvus components.

How to run integration test locally

Integration test still need some thirdparty components to start:

cd [milvus-folder]/deployments/docker/dev && docker-compose up -d

Run following script to start the full integration test:

cd [milvus-folder]
make milvus # milvus needs to be compiled to make cpp build ready
./scripts/run_intergration_test.sh

If you want to run single test case, you could execute command like this example

# mq, etcd, minio ready before
cd [milvus-folder]
source scripts/setenv.sh
cd tests/integration/[testcase-folder]/
go test -run "$testCaseName^" -testify.m "$subTestifyCaseName^" -race -v

Using suite

MiniClusterandMiniClusterSuite` provides lots of comment preset tool function to execute intergration test.

It is recommend to add a new test with testify/suite


import (
    // ...
    "github.com/milvus-io/milvus/tests/integration"
)

type NewSuite struct {
    integration.MiniClusterSuite
}


// Setups and teardowns, optional if no custom logic needed
// example to suite setup & teardown, same logic applies to test setup&teardown

func (s *NewSuite) SetupSuite() {
    s.MiniClusterSuite.SetupSuite()
    // customized setup
}

func (s *NewSuite) TearDownSuite() {
    s.MiniClusterSuite.TearDownSuite()
    // customized teardown
}

New folder for each new scenario

It's a known issue that integration test cases run in same process might affect due to some singleton component not fully cleaned.

As a temp solution, test cases are separated into different packages to run independently.