()
| 193 | |
| 194 | #[test] |
| 195 | fn basic_data_context() { |
| 196 | let mut data = DataDescription::new(); |
| 197 | assert_eq!(data.init, Init::Uninitialized); |
| 198 | assert!(data.function_decls.is_empty()); |
| 199 | assert!(data.data_decls.is_empty()); |
| 200 | assert!(data.function_relocs.is_empty()); |
| 201 | assert!(data.data_relocs.is_empty()); |
| 202 | |
| 203 | data.define_zeroinit(256); |
| 204 | |
| 205 | let _func_a = data.import_function(ModuleRelocTarget::user(0, 0)); |
| 206 | let func_b = data.import_function(ModuleRelocTarget::user(0, 1)); |
| 207 | let func_c = data.import_function(ModuleRelocTarget::user(0, 2)); |
| 208 | let _data_a = data.import_global_value(ModuleRelocTarget::user(0, 3)); |
| 209 | let data_b = data.import_global_value(ModuleRelocTarget::user(0, 4)); |
| 210 | |
| 211 | data.write_function_addr(8, func_b); |
| 212 | data.write_function_addr(16, func_c); |
| 213 | data.write_data_addr(32, data_b, 27); |
| 214 | |
| 215 | assert_eq!(data.init, Init::Zeros { size: 256 }); |
| 216 | assert_eq!(data.function_decls.len(), 3); |
| 217 | assert_eq!(data.data_decls.len(), 2); |
| 218 | assert_eq!(data.function_relocs.len(), 2); |
| 219 | assert_eq!(data.data_relocs.len(), 1); |
| 220 | |
| 221 | data.clear(); |
| 222 | |
| 223 | assert_eq!(data.init, Init::Uninitialized); |
| 224 | assert!(data.function_decls.is_empty()); |
| 225 | assert!(data.data_decls.is_empty()); |
| 226 | assert!(data.function_relocs.is_empty()); |
| 227 | assert!(data.data_relocs.is_empty()); |
| 228 | |
| 229 | let contents = vec![33, 34, 35, 36]; |
| 230 | let contents_clone = contents.clone(); |
| 231 | data.define(contents.into_boxed_slice()); |
| 232 | |
| 233 | assert_eq!( |
| 234 | data.init, |
| 235 | Init::Bytes { |
| 236 | contents: contents_clone.into_boxed_slice() |
| 237 | } |
| 238 | ); |
| 239 | assert_eq!(data.function_decls.len(), 0); |
| 240 | assert_eq!(data.data_decls.len(), 0); |
| 241 | assert_eq!(data.function_relocs.len(), 0); |
| 242 | assert_eq!(data.data_relocs.len(), 0); |
| 243 | } |
| 244 | } |
nothing calls this directly
no test coverage detected