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