use super::*;
#[test]
fn multiline_strings_newlines() {
let strings = return_strings("return [=[\nfoo\r\nbar\n\nbaz\n]=]");
assert_eq!(strings[0], b"foo\nbar\n\nbaz\n");
}
#[test]
fn string_literals_escape() {
let strings = return_strings(
r#"
return
"foo\n\r",
"foo\0324",
"foo\x204",
"foo\u{20}",
"foo\u{0451}"
"#,
);
assert_eq!(strings.len(), 5);
assert_eq!(strings[0], b"foo\n\r");
assert_eq!(strings[1], b"foo 4");
assert_eq!(strings[2], b"foo 4");
assert_eq!(strings[3], b"foo ");
assert_eq!(strings[4], "foo\u{0451}".as_bytes());
}
#[test]
fn string_literals_escape_newline() {
let strings = return_strings(
r#"return "foo\z
bar", "foo\
bar", "foo\
bar""#,
);
assert_eq!(strings.len(), 3);
assert_eq!(strings[0], b"foobar");
assert_eq!(strings[1], b"foo\n bar");
assert_eq!(strings[2], b"foo\nbar");
}
#[test]
fn string_literals_escapes() {
let strings = return_strings(
r#"
return
"\xAB",
"\u{2024}",
"\121",
"\1x",
"\t",
"\n"
"#,
);
assert_eq!(strings.len(), 6);
assert_eq!(strings[0], b"\xAB");
assert_eq!(strings[1], "\u{2024}".as_bytes());
assert_eq!(strings[2], b"\x79");
assert_eq!(strings[3], b"\x01x");
assert_eq!(strings[4], b"\t");
assert_eq!(strings[5], b"\n");
}