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);
+    }
 }

Reply via email to