fn test_corrupted_string_len()

in src/primitives.rs [458:494]


    fn test_corrupted_string_len() {
        let vm = VersionMap::new();
        let mut buffer = vec![0u8; 1024];

        let string = String::from("Test string1");
        string
            .serialize(&mut buffer.as_mut_slice(), &vm, 1)
            .unwrap();

        // Test corrupt length field.
        assert_eq!(
            <String as Versionize>::deserialize(
                &mut buffer.as_slice().split_first().unwrap().1,
                &vm,
                1
            )
            .unwrap_err(),
            VersionizeError::StringLength(6052837899185946624)
        );

        // Test incomplete string.
        assert_eq!(
            <String as Versionize>::deserialize(&mut buffer.as_slice().split_at(6).0, &vm, 1)
                .unwrap_err(),
            VersionizeError::Deserialize(
                "Io(Custom { kind: UnexpectedEof, error: \"failed to fill whole buffer\" })"
                    .to_owned()
            )
        );

        // Test NULL string len.
        buffer[0] = 0;
        assert_eq!(
            <String as Versionize>::deserialize(&mut buffer.as_slice(), &vm, 1).unwrap(),
            String::new()
        );
    }