bevy_reflect: Update serde tests for Set (#14616)
				
					
				
			# Objective Support for reflecting set-like types (e.g. `HashSet`) was added in #13014. However, we didn't add any serialization tests to verify that serialization works as expected. ## Solution Update the serde tests. ## Testing You can test locally by running: ``` cargo test --package bevy_reflect ```
This commit is contained in:
		
							parent
							
								
									70a18d26e2
								
							
						
					
					
						commit
						0caeaa2ca9
					
				| @ -1220,7 +1220,7 @@ mod tests { | |||||||
|     use serde::de::DeserializeSeed; |     use serde::de::DeserializeSeed; | ||||||
|     use serde::Deserialize; |     use serde::Deserialize; | ||||||
| 
 | 
 | ||||||
|     use bevy_utils::HashMap; |     use bevy_utils::{HashMap, HashSet}; | ||||||
| 
 | 
 | ||||||
|     use crate as bevy_reflect; |     use crate as bevy_reflect; | ||||||
|     use crate::serde::{ReflectDeserializer, ReflectSerializer, TypedReflectDeserializer}; |     use crate::serde::{ReflectDeserializer, ReflectSerializer, TypedReflectDeserializer}; | ||||||
| @ -1235,6 +1235,7 @@ mod tests { | |||||||
|         list_value: Vec<i32>, |         list_value: Vec<i32>, | ||||||
|         array_value: [i32; 5], |         array_value: [i32; 5], | ||||||
|         map_value: HashMap<u8, usize>, |         map_value: HashMap<u8, usize>, | ||||||
|  |         set_value: HashSet<u8>, | ||||||
|         struct_value: SomeStruct, |         struct_value: SomeStruct, | ||||||
|         tuple_struct_value: SomeTupleStruct, |         tuple_struct_value: SomeTupleStruct, | ||||||
|         unit_struct: SomeUnitStruct, |         unit_struct: SomeUnitStruct, | ||||||
| @ -1325,6 +1326,7 @@ mod tests { | |||||||
|         registry.register::<[i32; 5]>(); |         registry.register::<[i32; 5]>(); | ||||||
|         registry.register::<Vec<i32>>(); |         registry.register::<Vec<i32>>(); | ||||||
|         registry.register::<HashMap<u8, usize>>(); |         registry.register::<HashMap<u8, usize>>(); | ||||||
|  |         registry.register::<HashSet<u8>>(); | ||||||
|         registry.register::<Option<SomeStruct>>(); |         registry.register::<Option<SomeStruct>>(); | ||||||
|         registry.register::<Option<String>>(); |         registry.register::<Option<String>>(); | ||||||
|         registry.register_type_data::<Option<String>, ReflectDeserialize>(); |         registry.register_type_data::<Option<String>, ReflectDeserialize>(); | ||||||
| @ -1335,6 +1337,9 @@ mod tests { | |||||||
|         let mut map = HashMap::new(); |         let mut map = HashMap::new(); | ||||||
|         map.insert(64, 32); |         map.insert(64, 32); | ||||||
| 
 | 
 | ||||||
|  |         let mut set = HashSet::new(); | ||||||
|  |         set.insert(64); | ||||||
|  | 
 | ||||||
|         MyStruct { |         MyStruct { | ||||||
|             primitive_value: 123, |             primitive_value: 123, | ||||||
|             option_value: Some(String::from("Hello world!")), |             option_value: Some(String::from("Hello world!")), | ||||||
| @ -1343,6 +1348,7 @@ mod tests { | |||||||
|             list_value: vec![-2, -1, 0, 1, 2], |             list_value: vec![-2, -1, 0, 1, 2], | ||||||
|             array_value: [-2, -1, 0, 1, 2], |             array_value: [-2, -1, 0, 1, 2], | ||||||
|             map_value: map, |             map_value: map, | ||||||
|  |             set_value: set, | ||||||
|             struct_value: SomeStruct { foo: 999999999 }, |             struct_value: SomeStruct { foo: 999999999 }, | ||||||
|             tuple_struct_value: SomeTupleStruct(String::from("Tuple Struct")), |             tuple_struct_value: SomeTupleStruct(String::from("Tuple Struct")), | ||||||
|             unit_struct: SomeUnitStruct, |             unit_struct: SomeUnitStruct, | ||||||
| @ -1389,6 +1395,9 @@ mod tests { | |||||||
|                 map_value: { |                 map_value: { | ||||||
|                     64: 32, |                     64: 32, | ||||||
|                 }, |                 }, | ||||||
|  |                 set_value: [ | ||||||
|  |                     64, | ||||||
|  |                 ], | ||||||
|                 struct_value: ( |                 struct_value: ( | ||||||
|                     foo: 999999999, |                     foo: 999999999, | ||||||
|                 ), |                 ), | ||||||
| @ -1626,12 +1635,12 @@ mod tests { | |||||||
|             0, 0, 219, 15, 73, 64, 57, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, |             0, 0, 219, 15, 73, 64, 57, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 254, 255, 255, | ||||||
|             255, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 254, 255, 255, 255, 255, |             255, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 254, 255, 255, 255, 255, | ||||||
|             255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 32, 0, |             255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 32, 0, | ||||||
|             0, 0, 0, 0, 0, 0, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 84, 117, 112, |             0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, 0, | ||||||
|             108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, 1, 0, 0, 0, 123, 0, 0, 0, 0, 0, |             0, 0, 0, 0, 0, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, 1, | ||||||
|             0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, 3, 0, 0, 0, 20, 0, 0, 0, 0, 0, |             0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, 3, | ||||||
|             0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97, |             0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, | ||||||
|             108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, |             97, 110, 116, 32, 118, 97, 108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, | ||||||
|             0, |             0, 0, 101, 0, 0, 0, 0, 0, 0, 0, | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         let deserializer = ReflectDeserializer::new(®istry); |         let deserializer = ReflectDeserializer::new(®istry); | ||||||
| @ -1653,15 +1662,15 @@ mod tests { | |||||||
|         let input = vec![ |         let input = vec![ | ||||||
|             129, 217, 40, 98, 101, 118, 121, 95, 114, 101, 102, 108, 101, 99, 116, 58, 58, 115, |             129, 217, 40, 98, 101, 118, 121, 95, 114, 101, 102, 108, 101, 99, 116, 58, 58, 115, | ||||||
|             101, 114, 100, 101, 58, 58, 100, 101, 58, 58, 116, 101, 115, 116, 115, 58, 58, 77, 121, |             101, 114, 100, 101, 58, 58, 100, 101, 58, 58, 116, 101, 115, 116, 115, 58, 58, 77, 121, | ||||||
|             83, 116, 114, 117, 99, 116, 220, 0, 19, 123, 172, 72, 101, 108, 108, 111, 32, 119, 111, |             83, 116, 114, 117, 99, 116, 220, 0, 20, 123, 172, 72, 101, 108, 108, 111, 32, 119, 111, | ||||||
|             114, 108, 100, 33, 145, 123, 146, 202, 64, 73, 15, 219, 205, 5, 57, 149, 254, 255, 0, |             114, 108, 100, 33, 145, 123, 146, 202, 64, 73, 15, 219, 205, 5, 57, 149, 254, 255, 0, | ||||||
|             1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 206, 59, 154, 201, 255, 145, 172, 84, |             1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 64, 145, 206, 59, 154, 201, 255, 145, | ||||||
|             117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, 105, 116, 129, |             172, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, 105, | ||||||
|             167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, 101, 146, 202, |             116, 129, 167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, 101, | ||||||
|             63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, 99, 116, 145, |             146, 202, 63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, 99, | ||||||
|             180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97, 108, |             116, 145, 180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, | ||||||
|             117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165, 84, 117, 112, |             118, 97, 108, 117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165, | ||||||
|             108, 101, 144, 146, 100, 145, 101, |             84, 117, 112, 108, 101, 144, 146, 100, 145, 101, | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         let mut reader = std::io::BufReader::new(input.as_slice()); |         let mut reader = std::io::BufReader::new(input.as_slice()); | ||||||
|  | |||||||
| @ -567,7 +567,7 @@ mod tests { | |||||||
|     use crate::serde::ReflectSerializer; |     use crate::serde::ReflectSerializer; | ||||||
|     use crate::{self as bevy_reflect, Struct}; |     use crate::{self as bevy_reflect, Struct}; | ||||||
|     use crate::{Reflect, ReflectSerialize, TypeRegistry}; |     use crate::{Reflect, ReflectSerialize, TypeRegistry}; | ||||||
|     use bevy_utils::HashMap; |     use bevy_utils::{HashMap, HashSet}; | ||||||
|     use ron::extensions::Extensions; |     use ron::extensions::Extensions; | ||||||
|     use ron::ser::PrettyConfig; |     use ron::ser::PrettyConfig; | ||||||
|     use serde::Serialize; |     use serde::Serialize; | ||||||
| @ -583,6 +583,7 @@ mod tests { | |||||||
|         list_value: Vec<i32>, |         list_value: Vec<i32>, | ||||||
|         array_value: [i32; 5], |         array_value: [i32; 5], | ||||||
|         map_value: HashMap<u8, usize>, |         map_value: HashMap<u8, usize>, | ||||||
|  |         set_value: HashSet<u8>, | ||||||
|         struct_value: SomeStruct, |         struct_value: SomeStruct, | ||||||
|         tuple_struct_value: SomeTupleStruct, |         tuple_struct_value: SomeTupleStruct, | ||||||
|         unit_struct: SomeUnitStruct, |         unit_struct: SomeUnitStruct, | ||||||
| @ -672,6 +673,10 @@ mod tests { | |||||||
|     fn get_my_struct() -> MyStruct { |     fn get_my_struct() -> MyStruct { | ||||||
|         let mut map = HashMap::new(); |         let mut map = HashMap::new(); | ||||||
|         map.insert(64, 32); |         map.insert(64, 32); | ||||||
|  | 
 | ||||||
|  |         let mut set = HashSet::new(); | ||||||
|  |         set.insert(64); | ||||||
|  | 
 | ||||||
|         MyStruct { |         MyStruct { | ||||||
|             primitive_value: 123, |             primitive_value: 123, | ||||||
|             option_value: Some(String::from("Hello world!")), |             option_value: Some(String::from("Hello world!")), | ||||||
| @ -680,6 +685,7 @@ mod tests { | |||||||
|             list_value: vec![-2, -1, 0, 1, 2], |             list_value: vec![-2, -1, 0, 1, 2], | ||||||
|             array_value: [-2, -1, 0, 1, 2], |             array_value: [-2, -1, 0, 1, 2], | ||||||
|             map_value: map, |             map_value: map, | ||||||
|  |             set_value: set, | ||||||
|             struct_value: SomeStruct { foo: 999999999 }, |             struct_value: SomeStruct { foo: 999999999 }, | ||||||
|             tuple_struct_value: SomeTupleStruct(String::from("Tuple Struct")), |             tuple_struct_value: SomeTupleStruct(String::from("Tuple Struct")), | ||||||
|             unit_struct: SomeUnitStruct, |             unit_struct: SomeUnitStruct, | ||||||
| @ -733,6 +739,9 @@ mod tests { | |||||||
|         map_value: { |         map_value: { | ||||||
|             64: 32, |             64: 32, | ||||||
|         }, |         }, | ||||||
|  |         set_value: [ | ||||||
|  |             64, | ||||||
|  |         ], | ||||||
|         struct_value: ( |         struct_value: ( | ||||||
|             foo: 999999999, |             foo: 999999999, | ||||||
|         ), |         ), | ||||||
| @ -888,12 +897,12 @@ mod tests { | |||||||
|             0, 0, 0, 0, 219, 15, 73, 64, 57, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 254, 255, |             0, 0, 0, 0, 219, 15, 73, 64, 57, 5, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 254, 255, | ||||||
|             255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 254, 255, 255, 255, |             255, 255, 255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 254, 255, 255, 255, | ||||||
|             255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 32, |             255, 255, 255, 255, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 32, | ||||||
|             0, 0, 0, 0, 0, 0, 0, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 84, 117, |             0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64, 255, 201, 154, 59, 0, 0, 0, 0, 12, 0, | ||||||
|             112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, 1, 0, 0, 0, 123, 0, 0, 0, 0, |             0, 0, 0, 0, 0, 0, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 0, 0, 0, 0, | ||||||
|             0, 0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, 3, 0, 0, 0, 20, 0, 0, 0, 0, |             1, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 164, 112, 157, 63, 164, 112, 77, 64, | ||||||
|             0, 0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97, |             3, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, | ||||||
|             108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0, 101, 0, 0, 0, 0, 0, 0, |             97, 110, 116, 32, 118, 97, 108, 117, 101, 1, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, | ||||||
|             0, |             0, 0, 101, 0, 0, 0, 0, 0, 0, 0, | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         assert_eq!(expected, bytes); |         assert_eq!(expected, bytes); | ||||||
| @ -910,15 +919,15 @@ mod tests { | |||||||
|         let expected: Vec<u8> = vec![ |         let expected: Vec<u8> = vec![ | ||||||
|             129, 217, 41, 98, 101, 118, 121, 95, 114, 101, 102, 108, 101, 99, 116, 58, 58, 115, |             129, 217, 41, 98, 101, 118, 121, 95, 114, 101, 102, 108, 101, 99, 116, 58, 58, 115, | ||||||
|             101, 114, 100, 101, 58, 58, 115, 101, 114, 58, 58, 116, 101, 115, 116, 115, 58, 58, 77, |             101, 114, 100, 101, 58, 58, 115, 101, 114, 58, 58, 116, 101, 115, 116, 115, 58, 58, 77, | ||||||
|             121, 83, 116, 114, 117, 99, 116, 220, 0, 19, 123, 172, 72, 101, 108, 108, 111, 32, 119, |             121, 83, 116, 114, 117, 99, 116, 220, 0, 20, 123, 172, 72, 101, 108, 108, 111, 32, 119, | ||||||
|             111, 114, 108, 100, 33, 145, 123, 146, 202, 64, 73, 15, 219, 205, 5, 57, 149, 254, 255, |             111, 114, 108, 100, 33, 145, 123, 146, 202, 64, 73, 15, 219, 205, 5, 57, 149, 254, 255, | ||||||
|             0, 1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 206, 59, 154, 201, 255, 145, 172, |             0, 1, 2, 149, 254, 255, 0, 1, 2, 129, 64, 32, 145, 64, 145, 206, 59, 154, 201, 255, | ||||||
|             84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, 105, 116, |             145, 172, 84, 117, 112, 108, 101, 32, 83, 116, 114, 117, 99, 116, 144, 164, 85, 110, | ||||||
|             129, 167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, 101, 146, |             105, 116, 129, 167, 78, 101, 119, 84, 121, 112, 101, 123, 129, 165, 84, 117, 112, 108, | ||||||
|             202, 63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, 99, 116, |             101, 146, 202, 63, 157, 112, 164, 202, 64, 77, 112, 164, 129, 166, 83, 116, 114, 117, | ||||||
|             145, 180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, 118, 97, |             99, 116, 145, 180, 83, 116, 114, 117, 99, 116, 32, 118, 97, 114, 105, 97, 110, 116, 32, | ||||||
|             108, 117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165, 84, 117, |             118, 97, 108, 117, 101, 144, 144, 129, 166, 83, 116, 114, 117, 99, 116, 144, 129, 165, | ||||||
|             112, 108, 101, 144, 146, 100, 145, 101, |             84, 117, 112, 108, 101, 144, 146, 100, 145, 101, | ||||||
|         ]; |         ]; | ||||||
| 
 | 
 | ||||||
|         assert_eq!(expected, bytes); |         assert_eq!(expected, bytes); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Gino Valente
						Gino Valente