From 22f4d43b1090e87939f90e365088bff5853d8109 Mon Sep 17 00:00:00 2001 From: Weny Xu Date: Thu, 4 Jul 2024 16:22:39 +0800 Subject: [PATCH] fix(fuzz): generate valid string (#4281) * fix: generate valid string * refactor(fuzz): wait for procedure finish at first --- tests-fuzz/src/ir.rs | 7 ++++++- tests-fuzz/src/utils/migration.rs | 2 +- .../targets/migration/fuzz_migrate_mito_regions.rs | 10 +++++----- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/tests-fuzz/src/ir.rs b/tests-fuzz/src/ir.rs index 53b3e42148..b9d13ca9fb 100644 --- a/tests-fuzz/src/ir.rs +++ b/tests-fuzz/src/ir.rs @@ -40,6 +40,7 @@ use serde::{Deserialize, Serialize}; use self::insert_expr::{RowValue, RowValues}; use crate::context::TableContextRef; +use crate::fake::WordGenerator; use crate::generator::{Random, TsValueGenerator}; use crate::impl_random; use crate::ir::create_expr::ColumnOption; @@ -450,7 +451,11 @@ pub fn partible_column_options_generator( 1 => vec![ColumnOption::PrimaryKey, ColumnOption::NotNull], 2 => vec![ ColumnOption::PrimaryKey, - ColumnOption::DefaultValue(generate_random_value(rng, column_type, None)), + ColumnOption::DefaultValue(generate_random_value( + rng, + column_type, + Some(&WordGenerator), + )), ], 3 => vec![ColumnOption::PrimaryKey], _ => unreachable!(), diff --git a/tests-fuzz/src/utils/migration.rs b/tests-fuzz/src/utils/migration.rs index 385a5a93f3..e4e7e0d1e3 100644 --- a/tests-fuzz/src/utils/migration.rs +++ b/tests-fuzz/src/utils/migration.rs @@ -69,7 +69,7 @@ pub async fn wait_for_region_distribution( }) }, move |region_distribution| { - info!("Region Distribution: {:?}", region_distribution); + info!("region distribution: {:?}", region_distribution); if expected_region_distribution.keys().len() != region_distribution.keys().len() { return false; } diff --git a/tests-fuzz/targets/migration/fuzz_migrate_mito_regions.rs b/tests-fuzz/targets/migration/fuzz_migrate_mito_regions.rs index d94742ab9b..eaad2f87b1 100644 --- a/tests-fuzz/targets/migration/fuzz_migrate_mito_regions.rs +++ b/tests-fuzz/targets/migration/fuzz_migrate_mito_regions.rs @@ -222,19 +222,19 @@ async fn execute_region_migration(ctx: FuzzContext, input: FuzzInput) -> Result< } info!("Excepted new region distribution: {new_distribution:?}"); + for procedure_id in procedure_ids { + wait_for_procedure_finish(&ctx.greptime, Duration::from_secs(120), procedure_id).await; + } + // Waits for all region migrated wait_for_region_distribution( &ctx.greptime, - Duration::from_secs(120), + Duration::from_secs(60), table_ctx.name.clone(), new_distribution, ) .await; - for procedure_id in procedure_ids { - wait_for_procedure_finish(&ctx.greptime, Duration::from_secs(120), procedure_id).await; - } - // Values validation info!("Validating rows"); let ts_column = table_ctx.timestamp_column().unwrap();