MCPcopy Create free account
hub / github.com/apache/fory / debug_hooks_trigger_for_struct

Function debug_hooks_trigger_for_struct

rust/tests/tests/test_debug.rs:102–187  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

100
101#[test]
102fn debug_hooks_trigger_for_struct() {
103 let _guard = HookGuard::new();
104
105 set_before_write_field_func(before_write);
106 set_after_write_field_func(after_write);
107 set_before_read_field_func(before_read);
108 set_after_read_field_func(after_read);
109
110 let mut fory = Fory::builder().xlang(false).compatible(false).build();
111 fory.register::<DebugSample>(4001).unwrap();
112 let sample = DebugSample {
113 a: 7,
114 b: "debug".to_string(),
115 };
116
117 let bytes = fory.serialize(&sample).unwrap();
118 let _: DebugSample = fory.deserialize(&bytes).unwrap();
119
120 let entries = event_log().lock().unwrap().clone();
121 assert_eq!(
122 entries.iter().filter(|e| e.starts_with("write:")).count(),
123 2
124 );
125 assert_eq!(
126 entries
127 .iter()
128 .filter(|e| e.starts_with("after_write:"))
129 .count(),
130 2
131 );
132 assert_eq!(
133 entries
134 .iter()
135 .filter(|e| e.starts_with("before_read:"))
136 .count(),
137 2
138 );
139 assert_eq!(
140 entries
141 .iter()
142 .filter(|e| e.starts_with("after_read:"))
143 .count(),
144 2
145 );
146 assert!(entries.contains(&"write:DebugSample:a".to_string()));
147 assert!(entries.contains(&"after_write:DebugSample:a".to_string()));
148 assert!(entries.contains(&"before_read:DebugSample:a".to_string()));
149 assert!(entries.contains(&"after_read:DebugSample:b".to_string()));
150
151 event_log().lock().unwrap().clear();
152
153 let mut fory_compat = Fory::builder().xlang(false).compatible(true).build();
154 fory_compat.register::<DebugSample>(4001).unwrap();
155 let compat_bytes = fory_compat.serialize(&sample).unwrap();
156 let _: DebugSample = fory_compat.deserialize(compat_bytes.as_slice()).unwrap();
157
158 let compat_entries = event_log().lock().unwrap().clone();
159 assert!(

Callers

nothing calls this directly

Calls 15

event_logFunction · 0.85
serializeMethod · 0.65
deserializeMethod · 0.65
lockMethod · 0.65
buildMethod · 0.45
compatibleMethod · 0.45
xlangMethod · 0.45
unwrapMethod · 0.45

Tested by

no test coverage detected