Skip to content

Commit 4d84d5e

Browse files
committed
[metasrv] refactor: organized integration test in the rust-crate style: move flight api test into metasrv/tests/
- According to databendlabs#1866 https://matklad.github.io/2021/02/27/delete-cargo-integration-tests.html
1 parent 46c6cc2 commit 4d84d5e

File tree

7 files changed

+41
-47
lines changed

7 files changed

+41
-47
lines changed

metasrv/src/api/rpc/mod.rs

-5
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,6 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
#[cfg(test)]
16-
mod flight_service_test;
17-
#[cfg(test)]
18-
mod tls_flight_service_test;
19-
2015
mod flight_service;
2116

2217
pub use flight_service::FlightStream;

metasrv/src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ pub mod protobuf {
1717
include!(concat!(env!("OUT_DIR"), concat!("/meta.rs")));
1818
}
1919

20-
#[cfg(test)]
2120
#[macro_use]
2221
pub mod tests;
2322

metasrv/src/tests/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
#[macro_use]
1616
pub mod service;
17-
pub(crate) mod tls_constants;
1817

1918
pub use service::assert_meta_connection;
2019
pub use service::next_port;

metasrv/src/tests/service.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,11 @@ pub async fn assert_meta_connection(addr: &str) -> anyhow::Result<()> {
161161
/// 1. Open a temp sled::Db for all tests.
162162
/// 2. Initialize a global tracing.
163163
/// 3. Create a span for a test case. One needs to enter it by `span.enter()` and keeps the guard held.
164+
#[macro_export]
164165
macro_rules! init_meta_ut {
165166
() => {{
166167
let t = tempfile::tempdir().expect("create temp dir to sled db");
167-
crate::meta_service::raft_db::init_temp_sled_db(t);
168+
$crate::meta_service::raft_db::init_temp_sled_db(t);
168169

169170
// common_tracing::init_tracing(&format!("ut-{}", name), "./_logs")
170171
common_tracing::init_default_ut_tracing();
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2020 Datafuse Labs.
1+
// Copyright 2021 Datafuse Labs.
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -11,9 +11,6 @@
1111
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
14-
//
1514

16-
pub const TEST_CA_CERT: &str = "../tests/certs/ca.pem";
17-
pub const TEST_SERVER_CERT: &str = "../tests/certs/server.pem";
18-
pub const TEST_SERVER_KEY: &str = "../tests/certs/server.key";
19-
pub const TEST_CN_NAME: &str = "localhost";
15+
pub mod metasrv_flight_api;
16+
pub mod metasrv_flight_tls;

metasrv/src/api/rpc/flight_service_test.rs renamed to metasrv/tests/flight/metasrv_flight_api.rs

+29-26
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2020 Datafuse Labs.
1+
// Copyright 2021 Datafuse Labs.
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -12,6 +12,8 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15+
//! Test arrow-flight API of metasrv
16+
1517
use std::time::SystemTime;
1618
use std::time::UNIX_EPOCH;
1719

@@ -23,11 +25,12 @@ use common_store_api_sdk::kv_api_impl::UpsertKVActionResult;
2325
use common_store_api_sdk::KVApi;
2426
use common_store_api_sdk::StoreClient;
2527
use common_tracing::tracing;
28+
use metasrv::init_meta_ut;
2629
use pretty_assertions::assert_eq;
2730

2831
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
29-
async fn test_flight_restart() -> anyhow::Result<()> {
30-
// Issue 1134 https://github.com/datafuselabs/databend/issues/1134
32+
async fn test_restart() -> anyhow::Result<()> {
33+
// Fix: Issue 1134 https://github.com/datafuselabs/databend/issues/1134
3134
// - Start a metasrv server.
3235
// - create db and create table
3336
// - restart
@@ -36,7 +39,7 @@ async fn test_flight_restart() -> anyhow::Result<()> {
3639
let (_log_guards, ut_span) = init_meta_ut!();
3740
let _ent = ut_span.enter();
3841

39-
let (mut tc, addr) = crate::tests::start_metasrv().await?;
42+
let (mut tc, addr) = metasrv::tests::start_metasrv().await?;
4043

4144
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
4245

@@ -91,7 +94,7 @@ async fn test_flight_restart() -> anyhow::Result<()> {
9194

9295
// restart by opening existent meta db
9396
tc.config.meta_config.boot = false;
94-
crate::tests::start_metasrv_with_context(&mut tc).await?;
97+
metasrv::tests::start_metasrv_with_context(&mut tc).await?;
9598
}
9699

97100
tokio::time::sleep(tokio::time::Duration::from_millis(10_000)).await;
@@ -118,14 +121,14 @@ async fn test_flight_restart() -> anyhow::Result<()> {
118121
}
119122

120123
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
121-
async fn test_flight_generic_kv_mget() -> anyhow::Result<()> {
124+
async fn test_generic_kv_mget() -> anyhow::Result<()> {
122125
let (_log_guards, ut_span) = init_meta_ut!();
123126
let _ent = ut_span.enter();
124127
{
125-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv_list");
128+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv_list");
126129
let _ent = span.enter();
127130

128-
let (_tc, addr) = crate::tests::start_metasrv().await?;
131+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
129132

130133
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
131134

@@ -166,14 +169,14 @@ async fn test_flight_generic_kv_mget() -> anyhow::Result<()> {
166169
}
167170

168171
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
169-
async fn test_flight_generic_kv_list() -> anyhow::Result<()> {
172+
async fn test_generic_kv_list() -> anyhow::Result<()> {
170173
let (_log_guards, ut_span) = init_meta_ut!();
171174
let _ent = ut_span.enter();
172175
{
173-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv_list");
176+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv_list");
174177
let _ent = span.enter();
175178

176-
let (_tc, addr) = crate::tests::start_metasrv().await?;
179+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
177180

178181
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
179182

@@ -214,14 +217,14 @@ async fn test_flight_generic_kv_list() -> anyhow::Result<()> {
214217
}
215218

216219
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
217-
async fn test_flight_generic_kv_delete() -> anyhow::Result<()> {
220+
async fn test_generic_kv_delete() -> anyhow::Result<()> {
218221
let (_log_guards, ut_span) = init_meta_ut!();
219222
let _ent = ut_span.enter();
220223
{
221-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv_list");
224+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv_list");
222225
let _ent = span.enter();
223226

224-
let (_tc, addr) = crate::tests::start_metasrv().await?;
227+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
225228

226229
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
227230

@@ -282,14 +285,14 @@ async fn test_flight_generic_kv_delete() -> anyhow::Result<()> {
282285
}
283286

284287
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
285-
async fn test_flight_generic_kv_update() -> anyhow::Result<()> {
288+
async fn test_generic_kv_update() -> anyhow::Result<()> {
286289
let (_log_guards, ut_span) = init_meta_ut!();
287290
let _ent = ut_span.enter();
288291
{
289-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv_list");
292+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv_list");
290293
let _ent = span.enter();
291294

292-
let (_tc, addr) = crate::tests::start_metasrv().await?;
295+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
293296

294297
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
295298

@@ -386,16 +389,16 @@ async fn test_flight_generic_kv_update() -> anyhow::Result<()> {
386389
}
387390

388391
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
389-
async fn test_flight_generic_kv_update_meta() -> anyhow::Result<()> {
392+
async fn test_generic_kv_update_meta() -> anyhow::Result<()> {
390393
// Only update meta, do not touch the value part.
391394

392395
let (_log_guards, ut_span) = init_meta_ut!();
393396
let _ent = ut_span.enter();
394397
{
395-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv_update_meta");
398+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv_update_meta");
396399
let _ent = span.enter();
397400

398-
let (_tc, addr) = crate::tests::start_metasrv().await?;
401+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
399402

400403
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
401404

@@ -489,7 +492,7 @@ async fn test_flight_generic_kv_update_meta() -> anyhow::Result<()> {
489492
}
490493

491494
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
492-
async fn test_flight_generic_kv_timeout() -> anyhow::Result<()> {
495+
async fn test_generic_kv_timeout() -> anyhow::Result<()> {
493496
// - Test get expired and non-expired.
494497
// - Test mget expired and non-expired.
495498
// - Test list expired and non-expired.
@@ -498,10 +501,10 @@ async fn test_flight_generic_kv_timeout() -> anyhow::Result<()> {
498501
let (_log_guards, ut_span) = init_meta_ut!();
499502
let _ent = ut_span.enter();
500503
{
501-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv_timeout");
504+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv_timeout");
502505
let _ent = span.enter();
503506

504-
let (_tc, addr) = crate::tests::start_metasrv().await?;
507+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
505508

506509
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
507510

@@ -607,15 +610,15 @@ async fn test_flight_generic_kv_timeout() -> anyhow::Result<()> {
607610
}
608611

609612
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
610-
async fn test_flight_generic_kv() -> anyhow::Result<()> {
613+
async fn test_generic_kv() -> anyhow::Result<()> {
611614
let (_log_guards, ut_span) = init_meta_ut!();
612615
let _ent = ut_span.enter();
613616

614617
{
615-
let span = tracing::span!(tracing::Level::INFO, "test_flight_generic_kv");
618+
let span = tracing::span!(tracing::Level::INFO, "test_generic_kv");
616619
let _ent = span.enter();
617620

618-
let (_tc, addr) = crate::tests::start_metasrv().await?;
621+
let (_tc, addr) = metasrv::tests::start_metasrv().await?;
619622

620623
let client = StoreClient::try_create(addr.as_str(), "root", "xxx").await?;
621624

metasrv/src/api/rpc/tls_flight_service_test.rs renamed to metasrv/tests/flight/metasrv_flight_tls.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Copyright 2020 Datafuse Labs.
1+
// Copyright 2021 Datafuse Labs.
22
//
33
// Licensed under the Apache License, Version 2.0 (the "License");
44
// you may not use this file except in compliance with the License.
@@ -17,18 +17,18 @@ use common_runtime::tokio;
1717
use common_store_api_sdk::MetaApi;
1818
use common_store_api_sdk::RpcClientTlsConfig;
1919
use common_store_api_sdk::StoreClient;
20+
use metasrv::init_meta_ut;
21+
use metasrv::tests::service::new_test_context;
22+
use metasrv::tests::start_metasrv_with_context;
2023
use pretty_assertions::assert_eq;
2124

22-
use crate::tests::service::new_test_context;
23-
use crate::tests::start_metasrv_with_context;
24-
2525
const TEST_CA_CERT: &str = "../tests/certs/ca.pem";
2626
const TEST_SERVER_CERT: &str = "../tests/certs/server.pem";
2727
const TEST_SERVER_KEY: &str = "../tests/certs/server.key";
2828
const TEST_CN_NAME: &str = "localhost";
2929

3030
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
31-
async fn test_flight_tls() -> anyhow::Result<()> {
31+
async fn test_tls_server() -> anyhow::Result<()> {
3232
let (_log_guards, ut_span) = init_meta_ut!();
3333
let _ent = ut_span.enter();
3434

@@ -58,7 +58,7 @@ async fn test_flight_tls() -> anyhow::Result<()> {
5858
}
5959

6060
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
61-
async fn test_flight_tls_server_config_failure() -> anyhow::Result<()> {
61+
async fn test_tls_server_config_failure() -> anyhow::Result<()> {
6262
let (_log_guards, ut_span) = init_meta_ut!();
6363
let _ent = ut_span.enter();
6464

@@ -73,7 +73,7 @@ async fn test_flight_tls_server_config_failure() -> anyhow::Result<()> {
7373
}
7474

7575
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
76-
async fn test_flight_tls_client_config_failure() -> anyhow::Result<()> {
76+
async fn test_tls_client_config_failure() -> anyhow::Result<()> {
7777
let (_log_guards, ut_span) = init_meta_ut!();
7878
let _ent = ut_span.enter();
7979

0 commit comments

Comments
 (0)