]> git.lizzy.rs Git - rust.git/blob - compiler/rustc_target/src/tests.rs
Rollup merge of #107096 - clubby789:fluent-bad-messageref, r=compiler-errors
[rust.git] / compiler / rustc_target / src / tests.rs
1 use crate::spec::Target;
2
3 #[test]
4 fn report_unused_fields() {
5     let json = serde_json::from_str(
6         r#"
7     {
8         "arch": "powerpc64",
9         "data-layout": "e-m:e-i64:64-n32:64",
10         "llvm-target": "powerpc64le-elf",
11         "target-pointer-width": "64",
12         "code-mode": "foo"
13     }
14     "#,
15     )
16     .unwrap();
17     let warnings = Target::from_json(json).unwrap().1;
18     assert_eq!(warnings.warning_messages().len(), 1);
19     assert!(warnings.warning_messages().join("\n").contains("code-mode"));
20 }
21
22 #[test]
23 fn report_incorrect_json_type() {
24     let json = serde_json::from_str(
25         r#"
26     {
27         "arch": "powerpc64",
28         "data-layout": "e-m:e-i64:64-n32:64",
29         "llvm-target": "powerpc64le-elf",
30         "target-pointer-width": "64",
31         "link-env-remove": "foo"
32     }
33     "#,
34     )
35     .unwrap();
36     let warnings = Target::from_json(json).unwrap().1;
37     assert_eq!(warnings.warning_messages().len(), 1);
38     assert!(warnings.warning_messages().join("\n").contains("link-env-remove"));
39 }
40
41 #[test]
42 fn no_warnings_for_valid_target() {
43     let json = serde_json::from_str(
44         r#"
45     {
46         "arch": "powerpc64",
47         "data-layout": "e-m:e-i64:64-n32:64",
48         "llvm-target": "powerpc64le-elf",
49         "target-pointer-width": "64",
50         "link-env-remove": ["foo"]
51     }
52     "#,
53     )
54     .unwrap();
55     let warnings = Target::from_json(json).unwrap().1;
56     assert_eq!(warnings.warning_messages().len(), 0);
57 }