Skip to content

Commit

Permalink
Test for the array-Value roundtrip failure (#404)
Browse files Browse the repository at this point in the history
  • Loading branch information
juntyr authored Aug 22, 2022
1 parent 75ac75e commit fc6d4b8
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions tests/238_array.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
use ron::{
error::{Error, Position, SpannedError},
value::{Number, Value},
};

#[test]
fn test_array() {
let array: [i32; 3] = [1, 2, 3];

let ser = ron::to_string(&array).unwrap();
assert_eq!(ser, "(1,2,3)");

let de: [i32; 3] = ron::from_str(&ser).unwrap();
assert_eq!(de, array);

let value: Value = ron::from_str(&ser).unwrap();
assert_eq!(
value,
Value::Seq(vec![
Value::Number(Number::from(1)),
Value::Number(Number::from(2)),
Value::Number(Number::from(3)),
])
);

let ser = ron::to_string(&value).unwrap();
assert_eq!(ser, "[1,2,3]");

let de: [i32; 3] = value.into_rust().unwrap();
assert_eq!(de, array);

// FIXME: fails and hence arrays do not roundtrip
let de: SpannedError = ron::from_str::<[i32; 3]>(&ser).unwrap_err();
assert_eq!(
de,
SpannedError {
code: Error::ExpectedStructLike,
position: Position { line: 1, col: 1 },
}
);

let value: Value = ron::from_str(&ser).unwrap();
assert_eq!(
value,
Value::Seq(vec![
Value::Number(Number::from(1)),
Value::Number(Number::from(2)),
Value::Number(Number::from(3)),
])
);
}

0 comments on commit fc6d4b8

Please sign in to comment.