mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-18 09:52:27 +00:00
* test: cut integration test time and make the storage matrix meaningful
tests-integration is ~85% of workspace test CPU, and 81% of that is the
S3/S3WithCache variants of the HTTP and gRPC suites. Those suites do not
touch the object store: of the 70 matrix HTTP tests only one flushed and
read back an SST, so the matrix was paying real AWS round trips to
re-prove protocol parsing.
- Point the PR CI object-store matrix at the MinIO already started by
tests-integration/fixtures. Three GT_S3_* consumers did not read
GT_S3_ENDPOINT_URL and would have hit real AWS with MinIO credentials;
they now do.
- Add a nightly Linux job against real AWS S3, and pass GT_S3_* into the
release integration-test container. The release previously ran every
remote-backend case as a skip and only exercised the file backend.
- Give each S3WithCache test its own read cache directory. They shared
/tmp/greptimedb_cache, which the datanode wipes on startup, so a
starting test deleted the read cache of a running one.
- Add flush -> read-back assertions to the tests whose columns have a
non-trivial SST representation: JSON/JSON2 columns, native histograms,
metric-engine logical tables, and tables carrying fulltext or skipping
indexes whose puffin files only exist after a flush.
- Move eight tests that create no table out of the storage matrix.
- Make the event recorder flush interval a constructor parameter and
shorten it in the event tests, which otherwise wait a 5s window per DDL
they assert on. It is skipped by serde and never reaches config files.
- Drop duplicates: test_grpc_zstd_compression was a verbatim copy of
test_grpc_message_size_ok and is now rewritten to assert the negotiated
grpc-encoding; test_execute_copy_to_{s3,oss,gcs,azblob} were strict
prefixes of their copy_from siblings; two standalone/distributed event
test pairs shared one assertion body.
- Fix and un-ignore stddev_by_label. stddev_pop merges partial aggregates
in a parallelism-dependent order, so its last digits are unstable; the
test now compares values with a tolerance.
- Rebase the jaeger v1 fixture on the current instant. It carries
ttl=7d with 2025 timestamps, so its rows were only readable as long as
they stayed in the memtable.
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
* test: address review — wire nightly real-S3 job into check-status, keep the short event interval
The nightly `check-status` job did not depend on the new real-S3 job, so a
failure there would not have reached the status or Slack notification.
In database_ddl_event the short interval was set by a first
`with_event_recorder_options` call and then overwritten by the pre-existing
one, which carries `..Default::default()`. Merged into a single call.
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
---------
Signed-off-by: Dennis Zhuang <killme2008@gmail.com>
84 lines
2.1 KiB
Rust
84 lines
2.1 KiB
Rust
// Copyright 2023 Greptime Team
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
#![recursion_limit = "256"]
|
|
|
|
mod admin_function_event;
|
|
mod database_ddl_event;
|
|
mod dict_groupby_sst;
|
|
mod event_recorder_test_util;
|
|
#[macro_use]
|
|
mod grpc;
|
|
#[macro_use]
|
|
mod http;
|
|
mod flow_ddl_event;
|
|
mod gc_event;
|
|
mod json2;
|
|
mod jsonbench;
|
|
#[macro_use]
|
|
mod sql;
|
|
#[macro_use]
|
|
mod region_migration;
|
|
mod table_ddl_event;
|
|
#[macro_use]
|
|
mod repartition;
|
|
mod repartition_event;
|
|
#[macro_use]
|
|
mod repartition_expr_version;
|
|
mod export_logical_tables;
|
|
mod mysql;
|
|
mod reconciliation_event;
|
|
mod view_ddl_event;
|
|
mod wal_prune_event;
|
|
|
|
#[rstest_reuse::template]
|
|
#[rstest::rstest]
|
|
#[case::standalone(false)]
|
|
#[case::distributed(true)]
|
|
#[tokio::test(flavor = "multi_thread")]
|
|
fn both_deployment_cases(#[case] distributed: bool) {}
|
|
|
|
grpc_tests!(File, S3, S3WithCache, Oss, Azblob, Gcs);
|
|
|
|
http_tests!(File, S3, S3WithCache, Oss, Azblob, Gcs);
|
|
|
|
http_local_tests!(
|
|
test_health_api,
|
|
test_status_api,
|
|
test_metrics_api,
|
|
test_splunk_health,
|
|
test_splunk_health_is_public,
|
|
test_dynamic_tracer_toggle,
|
|
test_dashboard_path,
|
|
test_test_pipeline_api,
|
|
);
|
|
|
|
#[tokio::test(flavor = "multi_thread")]
|
|
async fn test_http_auth_from_standalone_user_provider_config() {
|
|
http::test_http_auth_from_standalone_user_provider_config().await;
|
|
}
|
|
|
|
sql_tests!(File);
|
|
|
|
region_migration_tests!(File);
|
|
|
|
repartition_tests!(File);
|
|
|
|
repartition_tests!(S3, S3WithCache, Oss, Azblob, Gcs);
|
|
|
|
repartition_expr_version_tests!(File);
|
|
|
|
repartition_expr_version_tests!(S3, S3WithCache, Oss, Azblob, Gcs);
|
|
// TODO(niebayes): add integration tests for remote wal.
|