Skip to content

Commit 3966769

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 3966769

File tree

8 files changed

+60
-48
lines changed

8 files changed

+60
-48
lines changed

metasrv/src/api/rpc/mod.rs

Lines changed: 0 additions & 5 deletions
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

Lines changed: 0 additions & 1 deletion
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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

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

1919
pub use service::assert_meta_connection;
2020
pub use service::next_port;

metasrv/src/tests/service.rs

Lines changed: 2 additions & 1 deletion
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();

metasrv/src/tests/tls_constants.rs

Lines changed: 1 addition & 2 deletions
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,7 +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

1615
pub const TEST_CA_CERT: &str = "../tests/certs/ca.pem";
1716
pub const TEST_SERVER_CERT: &str = "../tests/certs/server.pem";

metasrv/tests/flight/main.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright 2021 Datafuse Labs.
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
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

Lines changed: 29 additions & 26 deletions
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

Lines changed: 11 additions & 12 deletions
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,17 @@ 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;
23+
use metasrv::tests::tls_constants::TEST_CA_CERT;
24+
use metasrv::tests::tls_constants::TEST_CN_NAME;
25+
use metasrv::tests::tls_constants::TEST_SERVER_CERT;
26+
use metasrv::tests::tls_constants::TEST_SERVER_KEY;
2027
use pretty_assertions::assert_eq;
2128

22-
use crate::tests::service::new_test_context;
23-
use crate::tests::start_metasrv_with_context;
24-
25-
const TEST_CA_CERT: &str = "../tests/certs/ca.pem";
26-
const TEST_SERVER_CERT: &str = "../tests/certs/server.pem";
27-
const TEST_SERVER_KEY: &str = "../tests/certs/server.key";
28-
const TEST_CN_NAME: &str = "localhost";
29-
3029
#[tokio::test(flavor = "multi_thread", worker_threads = 1)]
31-
async fn test_flight_tls() -> anyhow::Result<()> {
30+
async fn test_tls_server() -> anyhow::Result<()> {
3231
let (_log_guards, ut_span) = init_meta_ut!();
3332
let _ent = ut_span.enter();
3433

@@ -58,7 +57,7 @@ async fn test_flight_tls() -> anyhow::Result<()> {
5857
}
5958

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

@@ -73,7 +72,7 @@ async fn test_flight_tls_server_config_failure() -> anyhow::Result<()> {
7372
}
7473

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

0 commit comments

Comments
 (0)