Migrate cpp.rs to googletest-rust

PiperOrigin-RevId: 582335925
diff --git a/rust/BUILD b/rust/BUILD
index 61f8236..2bd06ae 100644
--- a/rust/BUILD
+++ b/rust/BUILD
@@ -113,6 +113,9 @@
     name = "protobuf_cpp_test",
     crate = ":protobuf_cpp",
     rustc_flags = ["--cfg=cpp_kernel"],
+    deps = [
+        "@crate_index//:googletest",
+    ],
 )
 
 rust_library(
diff --git a/rust/cpp.rs b/rust/cpp.rs
index d1f670b..4346d41 100644
--- a/rust/cpp.rs
+++ b/rust/cpp.rs
@@ -322,6 +322,7 @@
 #[cfg(test)]
 mod tests {
     use super::*;
+    use googletest::prelude::*;
     use std::boxed::Box;
 
     // We need to allocate the byte array so SerializedData can own it and
@@ -335,30 +336,30 @@
     #[test]
     fn test_serialized_data_roundtrip() {
         let (ptr, len) = allocate_byte_array(b"Hello world");
-        let serialized_data = SerializedData { data: NonNull::new(ptr).unwrap(), len: len };
-        assert_eq!(&*serialized_data, b"Hello world");
+        let serialized_data = SerializedData { data: NonNull::new(ptr).unwrap(), len };
+        assert_that!(&*serialized_data, eq(b"Hello world"));
     }
 
     #[test]
     fn repeated_field() {
         let mut r = RepeatedField::<i32>::new();
-        assert_eq!(r.len(), 0);
+        assert_that!(r.len(), eq(0));
         r.push(32);
-        assert_eq!(r.get(0), Some(32));
+        assert_that!(r.get(0), eq(Some(32)));
 
         let mut r = RepeatedField::<u32>::new();
-        assert_eq!(r.len(), 0);
+        assert_that!(r.len(), eq(0));
         r.push(32);
-        assert_eq!(r.get(0), Some(32));
+        assert_that!(r.get(0), eq(Some(32)));
 
         let mut r = RepeatedField::<f64>::new();
-        assert_eq!(r.len(), 0);
+        assert_that!(r.len(), eq(0));
         r.push(0.1234f64);
-        assert_eq!(r.get(0), Some(0.1234));
+        assert_that!(r.get(0), eq(Some(0.1234)));
 
         let mut r = RepeatedField::<bool>::new();
-        assert_eq!(r.len(), 0);
+        assert_that!(r.len(), eq(0));
         r.push(true);
-        assert_eq!(r.get(0), Some(true));
+        assert_that!(r.get(0), eq(Some(true)));
     }
 }