mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-01-04 12:22:55 +00:00
feat(fuzz): enable create-if-not-exists option (#3732)
This commit is contained in:
@@ -17,7 +17,7 @@
|
||||
use common_telemetry::info;
|
||||
use libfuzzer_sys::arbitrary::{Arbitrary, Unstructured};
|
||||
use libfuzzer_sys::fuzz_target;
|
||||
use rand::SeedableRng;
|
||||
use rand::{Rng, SeedableRng};
|
||||
use rand_chacha::ChaChaRng;
|
||||
use snafu::ResultExt;
|
||||
use sqlx::{MySql, Pool};
|
||||
@@ -57,11 +57,13 @@ impl Arbitrary<'_> for FuzzInput {
|
||||
|
||||
fn generate_expr(input: FuzzInput) -> Result<CreateDatabaseExpr> {
|
||||
let mut rng = ChaChaRng::seed_from_u64(input.seed);
|
||||
let if_not_exists = rng.gen_bool(0.5);
|
||||
let create_database_generator = CreateDatabaseExprGeneratorBuilder::default()
|
||||
.name_generator(Box::new(MappedGenerator::new(
|
||||
WordGenerator,
|
||||
merge_two_word_map_fn(random_capitalize_map, uppercase_and_keyword_backtick_map),
|
||||
)))
|
||||
.if_not_exists(if_not_exists)
|
||||
.build()
|
||||
.unwrap();
|
||||
create_database_generator.generate(&mut rng)
|
||||
|
||||
@@ -62,6 +62,7 @@ impl Arbitrary<'_> for FuzzInput {
|
||||
fn generate_expr(input: FuzzInput) -> Result<CreateTableExpr> {
|
||||
let mut rng = ChaChaRng::seed_from_u64(input.seed);
|
||||
let metric_engine = rng.gen_bool(0.5);
|
||||
let if_not_exists = rng.gen_bool(0.5);
|
||||
if metric_engine {
|
||||
let create_table_generator = CreateTableExprGeneratorBuilder::default()
|
||||
.name_generator(Box::new(MappedGenerator::new(
|
||||
@@ -70,6 +71,7 @@ fn generate_expr(input: FuzzInput) -> Result<CreateTableExpr> {
|
||||
)))
|
||||
.columns(input.columns)
|
||||
.engine("metric")
|
||||
.if_not_exists(if_not_exists)
|
||||
.with_clause([("physical_metric_table".to_string(), "".to_string())])
|
||||
.build()
|
||||
.unwrap();
|
||||
@@ -82,6 +84,7 @@ fn generate_expr(input: FuzzInput) -> Result<CreateTableExpr> {
|
||||
)))
|
||||
.columns(input.columns)
|
||||
.engine("mito")
|
||||
.if_not_exists(if_not_exists)
|
||||
.build()
|
||||
.unwrap();
|
||||
create_table_generator.generate(&mut rng)
|
||||
|
||||
Reference in New Issue
Block a user