File: invalid-misc.rs

package info (click to toggle)
firefox 147.0.2-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,683,484 kB
  • sloc: cpp: 7,607,246; javascript: 6,533,185; ansic: 3,775,227; python: 1,415,393; xml: 634,561; asm: 438,951; java: 186,241; sh: 62,752; makefile: 18,079; objc: 13,092; perl: 12,808; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (48 lines) | stat: -rw-r--r-- 1,328 bytes parent folder | download | duplicates (43)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use serde_json::Value;

macro_rules! bad {
    ($toml:expr, $msg:expr) => {
        match basic_toml::from_str::<Value>($toml) {
            Ok(s) => panic!("parsed to: {:#?}", s),
            Err(e) => assert_eq!(e.to_string(), $msg),
        }
    };
}

#[test]
fn bad() {
    bad!("a = 01", "invalid number at line 1 column 6");
    bad!("a = 1__1", "invalid number at line 1 column 5");
    bad!("a = 1_", "invalid number at line 1 column 5");
    bad!("''", "expected an equals, found eof at line 1 column 3");
    bad!("a = 9e99999", "invalid number at line 1 column 5");

    bad!(
        "a = \"\u{7f}\"",
        "invalid character in string: `\\u{7f}` at line 1 column 6"
    );
    bad!(
        "a = '\u{7f}'",
        "invalid character in string: `\\u{7f}` at line 1 column 6"
    );

    bad!("a = -0x1", "invalid number at line 1 column 5");
    bad!("a = 0x-1", "invalid number at line 1 column 7");

    // Dotted keys.
    bad!(
        "a.b.c = 1
         a.b = 2
        ",
        "duplicate key: `b` for key `a` at line 2 column 12"
    );
    bad!(
        "a = 1
         a.b = 2",
        "dotted key attempted to extend non-table type at line 1 column 5"
    );
    bad!(
        "a = {k1 = 1, k1.name = \"joe\"}",
        "dotted key attempted to extend non-table type at line 1 column 11"
    );
}