Split test_deserializing into smaller, more focused tests.

This makes it easier to compare the input with the expected output. It also
reduces the probability of merge conflicts in the tests.

PiperOrigin-RevId: 397264484
diff --git a/rs_bindings_from_cc/ir.rs b/rs_bindings_from_cc/ir.rs
index 4cff1a7..592186f 100644
--- a/rs_bindings_from_cc/ir.rs
+++ b/rs_bindings_from_cc/ir.rs
@@ -78,10 +78,28 @@
     use super::*;
 
     #[test]
-    fn test_deserializing() {
+    fn test_used_headers() {
         let input = r#"
         {
             "used_headers": [{ "name": "foo/bar.h" }],
+            "functions": [],
+            "records": []
+        }
+        "#;
+        let ir = deserialize_ir(input.as_bytes()).unwrap();
+        let expected = IR {
+            used_headers: vec![HeaderName { name: "foo/bar.h".to_string() }],
+            functions: vec![],
+            records: vec![],
+        };
+        assert_eq!(ir, expected);
+    }
+
+    #[test]
+    fn test_functions() {
+        let input = r#"
+        {
+            "used_headers": [],
             "functions": [
                 {
                     "identifier": { "identifier": "hello_world" },
@@ -96,40 +114,12 @@
                     "is_inline": false
                 }
             ],
-            "records": [
-                {
-                    "identifier": {"identifier": "SomeStruct" },
-                    "fields": [
-                        {
-                            "identifier": {"identifier": "public_int" },
-                            "type": {"rs_name": "i32", "cc_name": "int", "type_params": [] },
-                            "access": "Public"
-                        },
-                        {
-                            "identifier": {"identifier": "protected_int" },
-                            "type": {"rs_name": "i32", "cc_name": "int", "type_params": [] },
-                            "access": "Protected"
-                        },
-                        {
-                            "identifier": {"identifier": "private_int" },
-                            "type": {"rs_name": "i32", "cc_name": "int", "type_params": [] },
-                            "access": "Private"
-                        },
-                        {
-                            "identifier": {"identifier": "ptr" },
-                            "type": {"rs_name": "*mut", "cc_name": "*", "type_params": [
-                                {"rs_name": "SomeStruct", "cc_name": "SomeStruct", "type_params": []}
-                            ] },
-                            "access": "Public"
-                        }
-                    ]
-                }
-            ]
+            "records": []
         }
         "#;
         let ir = deserialize_ir(input.as_bytes()).unwrap();
         let expected = IR {
-            used_headers: vec![HeaderName { name: "foo/bar.h".to_string() }],
+            used_headers: vec![],
             functions: vec![Func {
                 identifier: Identifier { identifier: "hello_world".to_string() },
                 mangled_name: "$$mangled_name$$".to_string(),
@@ -148,6 +138,45 @@
                 }],
                 is_inline: false,
             }],
+            records: vec![],
+        };
+        assert_eq!(ir, expected);
+    }
+
+    #[test]
+    fn test_member_access_specifiers() {
+        let input = r#"
+        {
+            "used_headers": [],
+            "functions": [],
+            "records": [
+                {
+                    "identifier": {"identifier": "SomeStruct" },
+                    "fields": [
+                        {
+                            "identifier": {"identifier": "public_int" },
+                            "type": {"rs_name": "i32", "cc_name": "int", "type_params": [] },
+                            "access": "Public"
+                        },
+                        {
+                            "identifier": {"identifier": "protected_int" },
+                            "type": {"rs_name": "i32", "cc_name": "int", "type_params": [] },
+                            "access": "Protected"
+                        },
+                        {
+                            "identifier": {"identifier": "private_int" },
+                            "type": {"rs_name": "i32", "cc_name": "int", "type_params": [] },
+                            "access": "Private"
+                        }
+                    ]
+                }
+            ]
+        }
+        "#;
+        let ir = deserialize_ir(input.as_bytes()).unwrap();
+        let expected = IR {
+            used_headers: vec![],
+            functions: vec![],
             records: vec![Record {
                 identifier: Identifier { identifier: "SomeStruct".to_string() },
                 fields: vec![
@@ -178,22 +207,55 @@
                         },
                         access: AccessSpecifier::Private,
                     },
-                    Field {
-                        identifier: Identifier { identifier: "ptr".to_string() },
-                        type_: IRType {
-                            rs_name: "*mut".to_string(),
-                            cc_name: "*".to_string(),
-                            type_params: vec![IRType {
-                                rs_name: "SomeStruct".to_string(),
-                                cc_name: "SomeStruct".to_string(),
-                                type_params: vec![],
-                            }],
-                        },
-                        access: AccessSpecifier::Public,
-                    },
                 ],
             }],
         };
         assert_eq!(ir, expected);
     }
+
+    #[test]
+    fn test_pointer_member_variable() {
+        let input = r#"
+        {
+            "used_headers": [],
+            "functions": [],
+            "records": [
+                {
+                    "identifier": {"identifier": "SomeStruct" },
+                    "fields": [
+                        {
+                            "identifier": {"identifier": "ptr" },
+                            "type": {"rs_name": "*mut", "cc_name": "*", "type_params": [
+                                {"rs_name": "SomeStruct", "cc_name": "SomeStruct", "type_params": []}
+                            ] },
+                            "access": "Public"
+                        }
+                    ]
+                }
+            ]
+        }
+        "#;
+        let ir = deserialize_ir(input.as_bytes()).unwrap();
+        let expected = IR {
+            used_headers: vec![],
+            functions: vec![],
+            records: vec![Record {
+                identifier: Identifier { identifier: "SomeStruct".to_string() },
+                fields: vec![Field {
+                    identifier: Identifier { identifier: "ptr".to_string() },
+                    type_: IRType {
+                        rs_name: "*mut".to_string(),
+                        cc_name: "*".to_string(),
+                        type_params: vec![IRType {
+                            rs_name: "SomeStruct".to_string(),
+                            cc_name: "SomeStruct".to_string(),
+                            type_params: vec![],
+                        }],
+                    },
+                    access: AccessSpecifier::Public,
+                }],
+            }],
+        };
+        assert_eq!(ir, expected);
+    }
 }