This is an automated email from the ASF dual-hosted git repository.
zyxxoo pushed a commit to branch refactor/rust-rewrite-design
in repository https://gitbox.apache.org/repos/asf/hugegraph.git
The following commit(s) were added to refs/heads/refactor/rust-rewrite-design
by this push:
new 8bdcacafa test(rust): add deterministic RocksDB fixture coverage
8bdcacafa is described below
commit 8bdcacafabae170676beab8aaeb1e3cf1012ae0a
Author: vaughn <[email protected]>
AuthorDate: Sun Sep 13 18:34:57 2026 +0800
test(rust): add deterministic RocksDB fixture coverage
---
tools/rust-store-reader/Cargo.lock | 64 ++++++++++++++++++++++++++++++++++++++
tools/rust-store-reader/Cargo.toml | 3 ++
tools/rust-store-reader/src/lib.rs | 13 ++++++++
3 files changed, 80 insertions(+)
diff --git a/tools/rust-store-reader/Cargo.lock
b/tools/rust-store-reader/Cargo.lock
index 5bbef5a26..21d893fbb 100644
--- a/tools/rust-store-reader/Cargo.lock
+++ b/tools/rust-store-reader/Cargo.lock
@@ -135,6 +135,22 @@ version = "1.18.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
+[[package]]
+name = "errno"
+version = "0.3.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
+
[[package]]
name = "find-msvc-tools"
version = "0.1.12"
@@ -182,6 +198,7 @@ dependencies = [
"hex",
"rocksdb",
"sha2",
+ "tempfile",
]
[[package]]
@@ -258,6 +275,12 @@ dependencies = [
"vcpkg",
]
+[[package]]
+name = "linux-raw-sys"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
+
[[package]]
name = "lz4-sys"
version = "1.11.1+lz4-1.10.0"
@@ -290,6 +313,12 @@ dependencies = [
"minimal-lexical",
]
+[[package]]
+name = "once_cell"
+version = "1.21.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
+
[[package]]
name = "pkg-config"
version = "0.3.34"
@@ -365,6 +394,19 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+[[package]]
+name = "rustix"
+version = "1.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
+dependencies = [
+ "bitflags",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
[[package]]
name = "sha2"
version = "0.10.9"
@@ -399,6 +441,19 @@ dependencies = [
"unicode-ident",
]
+[[package]]
+name = "tempfile"
+version = "3.27.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
+dependencies = [
+ "fastrand",
+ "getrandom",
+ "once_cell",
+ "rustix",
+ "windows-sys",
+]
+
[[package]]
name = "typenum"
version = "1.20.1"
@@ -429,6 +484,15 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+[[package]]
+name = "windows-sys"
+version = "0.61.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
+dependencies = [
+ "windows-link",
+]
+
[[package]]
name = "zstd-sys"
version = "2.1.0+zstd.1.5.7"
diff --git a/tools/rust-store-reader/Cargo.toml
b/tools/rust-store-reader/Cargo.toml
index 98d052b76..314bfac40 100644
--- a/tools/rust-store-reader/Cargo.toml
+++ b/tools/rust-store-reader/Cargo.toml
@@ -14,3 +14,6 @@ anyhow = "1"
rocksdb = "0.22"
sha2 = "0.10"
hex = "0.4"
+
+[dev-dependencies]
+tempfile = "3"
diff --git a/tools/rust-store-reader/src/lib.rs
b/tools/rust-store-reader/src/lib.rs
index 99f1eed3e..5526f2689 100644
--- a/tools/rust-store-reader/src/lib.rs
+++ b/tools/rust-store-reader/src/lib.rs
@@ -40,4 +40,17 @@ mod tests {
fn missing_path_is_error() {
assert!(digest("/definitely/missing/hugegraph-db").is_err());
}
+
+ #[test]
+ fn digest_is_stable_for_fixture() {
+ let dir = tempfile::tempdir().unwrap();
+ let db = DB::open_default(dir.path()).unwrap();
+ db.put(b"k1", b"v1").unwrap();
+ db.put(b"k2", b"v2").unwrap();
+ drop(db);
+ let first = digest(dir.path()).unwrap();
+ let second = digest(dir.path()).unwrap();
+ assert_eq!(first.entries, 2);
+ assert_eq!(first, second);
+ }
}