gir_format_check/
lib.rs

1// Copyright 2013-2018, The Gtk-rs Project Developers.
2// See the COPYRIGHT file at the top-level directory of this distribution.
3// Licensed under the MIT license, see the LICENSE file or <http://opensource.org/licenses/MIT>
4
5mod check_gir;
6mod errors;
7mod utils;
8
9pub use check_gir::{check_gir_content, check_gir_file};
10pub use errors::Errors;
11
12#[test]
13fn simple_check() {
14    let content = r#"something = [
15    test1,
16    test3,
17    test2,
18]"#;
19
20    let errors = check_gir_content(content);
21    assert_eq!(errors.nb_errors, 1);
22}
23
24#[test]
25fn simple_check2() {
26    let content = r#"
27[[object]]
28name = "abc"
29    [[object.func]]
30    data = "lol"
31
32[[object]]
33name = "aac"
34     [[object.func]]
35     data = "another"
36"#;
37
38    let errors = check_gir_content(content);
39    assert_eq!(errors.nb_errors, 1);
40}
41
42#[test]
43fn simple_check3() {
44    let content = r#"something = [
45    test1,
46    test2,
47    test2
48]"#;
49
50    let errors = check_gir_content(content);
51    assert_eq!(errors.nb_errors, 0);
52}
53
54#[test]
55fn simple_check4() {
56    let content = r#"something = [
57    "test1",
58    "test3",
59    "test2",
60]"#;
61
62    let errors = check_gir_content(content);
63    assert_eq!(errors.nb_errors, 1);
64}
65
66#[test]
67fn check_order_with_comments() {
68    let content = r#"something = [
69    "test1",
70    #just a comment
71    # on multiple lines
72    "test3",
73    "test2",
74]"#;
75
76    let errors = check_gir_content(content);
77    assert_eq!(errors.nb_errors, 1);
78    assert_eq!(
79        errors.to_string(),
80        r#"ERROR: "test3" should be after "test2"
81
82== Expected output ==
83something = [
84    "test1",
85    "test2",
86    #just a comment
87    # on multiple lines
88    "test3",
89]"#
90    );
91}
92
93#[test]
94fn check_order_with_comments2() {
95    let content = r#"something = [
96    #just a comment
97    # on multiple lines
98    "test3",
99    "test1",
100    "test2",
101]"#;
102
103    let errors = check_gir_content(content);
104    assert_eq!(errors.nb_errors, 1);
105    assert_eq!(
106        errors.to_string(),
107        r#"ERROR: "test3" should be after "test1"
108
109== Expected output ==
110something = [
111    "test1",
112    "test2",
113    #just a comment
114    # on multiple lines
115    "test3",
116]"#
117    );
118}
119
120#[test]
121fn check_order_with_comments3() {
122    let content = r#"something = [
123    #just a comment
124    # on multiple lines
125    "test3",
126    # another comment!
127    "test1",
128    "test2",
129]"#;
130
131    let errors = check_gir_content(content);
132    assert_eq!(errors.nb_errors, 1);
133    assert_eq!(
134        errors.to_string(),
135        r#"ERROR: "test3" should be after "test1"
136
137== Expected output ==
138something = [
139    # another comment!
140    "test1",
141    "test2",
142    #just a comment
143    # on multiple lines
144    "test3",
145]"#
146    );
147}