Files
greptimedb/tests-fuzz/Cargo.toml
T
Ning Sun af52dfafd8 chore(deps): upgrade sqlx to 0.9 to pick up webpki-roots 1.0.10 (#9862)
sqlx 0.8 pins the unmaintained webpki-roots 0.26 line for its rustls
trust store, which still contains the recently compromised e-Tugra CA
root. Upgrading sqlx to 0.9 switches its dependency to webpki-roots
1.x, and the lockfile now resolves to 1.0.10 where the distrusted
root has been removed from the compiled-in Mozilla trust store.

sqlx 0.9 requires dynamic SQL strings to be explicitly audited via
the new SqlSafeStr trait: only &'static str literals are accepted
as-is. All affected call sites (MySQL KV backend, MySQL election,
integration tests and fuzz targets) now wrap their internally
generated SQL templates in AssertSqlSafe; the wrapped SQL is built
from operator config or test-local identifiers only, and dynamic
data keeps flowing through bind parameters.

The mysql-rsa feature is enabled alongside mysql to preserve 0.8
authentication behavior: sqlx 0.9 gates non-TLS RSA password auth
(caching_sha2_password / sha256_password) behind it.

Signed-off-by: Ning Sun <sunning@greptime.com>
2026-10-22 07:27:19 +00:00

201 lines
4.4 KiB
TOML

[package]
name = "tests-fuzz"
version.workspace = true
edition.workspace = true
license.workspace = true
[lints]
workspace = true
[package.metadata]
cargo-fuzz = true
[features]
default = []
unstable = ["nix"]
[dependencies]
arbitrary = { version = "1.3.0", features = ["derive"] }
async-trait = { workspace = true }
axum.workspace = true
chrono = { workspace = true }
clap.workspace = true
common-base = { workspace = true }
common-error = { workspace = true }
common-macro = { workspace = true }
common-meta = { workspace = true }
common-query = { workspace = true }
common-runtime = { workspace = true }
common-telemetry = { workspace = true }
common-time = { workspace = true }
datatypes = { workspace = true }
derive_builder = { workspace = true }
dotenv = "0.15"
futures = { workspace = true }
humantime = { workspace = true }
k8s-openapi = { version = "0.22", features = ["v1_30"] }
kube = { version = "0.92", features = [
"runtime",
"derive",
"client",
"admission",
] }
lazy_static = { workspace = true }
libfuzzer-sys = "0.4"
nix = { version = "0.28", features = ["process", "signal"], optional = true }
partition = { workspace = true }
paste.workspace = true
rand = { workspace = true }
rand_chacha = "0.9"
reqwest = { workspace = true }
rskafka.workspace = true
rustls = { workspace = true, default-features = false, features = ["aws_lc_rs", "std", "tls12"] }
schemars = "0.8"
serde = { workspace = true }
serde_json = { workspace = true }
serde_yaml = "0.9"
snafu = { workspace = true }
sql = { workspace = true }
sqlparser.workspace = true
sqlx = { workspace = true, features = [
"mysql",
"mysql-rsa",
"chrono",
] }
store-api = { workspace = true }
strum.workspace = true
tinytemplate = "1.2"
tokio = { workspace = true }
[dev-dependencies]
dotenv.workspace = true
[[bin]]
name = "fuzz_create_table"
path = "targets/ddl/fuzz_create_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_create_logical_table"
path = "targets/ddl/fuzz_create_logical_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_insert"
path = "targets/fuzz_insert.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_insert_logical_table"
path = "targets/fuzz_insert_logical_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_repartition_table"
path = "targets/ddl/fuzz_repartition_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_repartition_table_chaos"
path = "targets/ddl/fuzz_repartition_table_chaos.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_repartition_metric_table"
path = "targets/ddl/fuzz_repartition_metric_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_alter_table"
path = "targets/ddl/fuzz_alter_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_alter_logical_table"
path = "targets/ddl/fuzz_alter_logical_table.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_create_database"
path = "targets/ddl/fuzz_create_database.rs"
test = false
bench = false
doc = false
[[bin]]
name = "unstable_fuzz_create_table_standalone"
path = "targets/unstable/fuzz_create_table_standalone.rs"
test = false
bench = false
doc = false
required-features = ["unstable"]
[[bin]]
name = "fuzz_failover_mito_regions"
path = "targets/failover/fuzz_failover_mito_regions.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_failover_metric_regions"
path = "targets/failover/fuzz_failover_metric_regions.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_migrate_mito_regions"
path = "targets/migration/fuzz_migrate_mito_regions.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_migrate_metric_regions"
path = "targets/migration/fuzz_migrate_metric_regions.rs"
test = false
bench = false
doc = false
[[bin]]
name = "fuzz_remote_wal_logical_prune"
path = "targets/wal/fuzz_remote_wal_logical_prune.rs"
test = false
bench = false
doc = false
[[bin]]
name = "kafka_wal_helper"
path = "utils/kafka_wal_helper.rs"
test = false
bench = false
doc = false
[package.metadata.cargo-shear]
# `common-error` is required by `common-macro`'s `stack_trace_debug`: the
# generated code references `::common_error` paths, so it must stay a direct
# dependency.
# `k8s-openapi` is a feature-pinning dependency: it enables the `v1_30`
# version feature required by the transitive `kube` -> `k8s-openapi` chain,
# but is never referenced by name in source code.
ignored = ["common-error", "k8s-openapi"]