-
Notifications
You must be signed in to change notification settings - Fork 21
/
CMakeLists.txt
175 lines (148 loc) · 8.04 KB
/
CMakeLists.txt
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
#
# Copyright (c) 2011-2012 EditorConfig Team
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice,
# this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# Tests for whitespace parsing
# test no whitespaces in property assignment
add_test(no_whitespace ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test1.c")
set_tests_properties(no_whitespace
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test single spaces around equals sign
add_test(single_spaces_around_equals ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test2.c")
set_tests_properties(single_spaces_around_equals
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test multiple spaces around equals sign
add_test(multiple_spaces_around_equals ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test3.c")
set_tests_properties(multiple_spaces_around_equals
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test spaces before property name
add_test(spaces_before_property_name ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test4.c")
set_tests_properties(spaces_before_property_name
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test spaces before after property value
add_test(spaces_after_property_value ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test5.c")
set_tests_properties(spaces_after_property_value
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test blank lines between properties
add_test(blank_lines_between_properties ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test6.c")
set_tests_properties(blank_lines_between_properties
PROPERTIES PASS_REGULAR_EXPRESSION
"^key1=value1[ \t\n\r]+key2=value2[ \t\n\r]*$")
# test spaces in section name
add_test(spaces_in_section_name ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/ test 7 ")
set_tests_properties(spaces_in_section_name
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test spaces before section name are ignored
add_test(spaces_before_section_name ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test8.c")
set_tests_properties(spaces_before_section_name
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test spaces after section name
add_test(spaces_after_section_name ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test9.c")
set_tests_properties(spaces_after_section_name
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test spaces at beginning of line between properties
add_test(spaces_before_middle_property ${EDITORCONFIG_CMD} -f whitespace.in
"${CMAKE_CURRENT_SOURCE_DIR}/test10.c")
set_tests_properties(spaces_before_middle_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key1=value1[ \t\n\r]+key2=value2[ \t\n\r]+key3=value3[ \t\n\r]*$")
# Tests for comment parsing
# test comments ignored after property name
add_test(comments_after_property ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test1.c")
set_tests_properties(comments_after_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test comments ignored after section name
add_test(comments_after_section ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test2.c")
set_tests_properties(comments_after_section
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test comments ignored before properties
add_test(comment_before_props ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test3.c")
set_tests_properties(comment_before_props
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test comments ignored between properties
add_test(comment_between_props ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test4.c")
set_tests_properties(comment_between_props
PROPERTIES PASS_REGULAR_EXPRESSION "^key1=value1[ \t\n\r]+key2=value2[ \t\n\r]*$")
# test semicolons at end of property value are included in value
add_test(semicolon_in_property ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test5.c")
set_tests_properties(semicolon_in_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value; not comment[ \t\n\r]*$")
# test escaped semicolons are included in property value
add_test(escaped_semicolon_in_property ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test6.c")
set_tests_properties(escaped_semicolon_in_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value ; not comment[ \t\n\r]*$")
# test escaped semicolons are included in section names
add_test(escaped_semicolon_in_section ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test;.c")
set_tests_properties(escaped_semicolon_in_section
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test octothorpe comments ignored after property name
add_test(octothorpe_comments_after_property ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test7.c")
set_tests_properties(octothorpe_comments_after_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test octothorpe comments ignored after section name
add_test(octothorpe_comments_after_section ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test8.c")
set_tests_properties(octothorpe_comments_after_section
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test octothorpe comments ignored before properties
add_test(octothorpe_comment_before_props ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test9.c")
set_tests_properties(octothorpe_comment_before_props
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")
# test octothorpe comments ignored between properties
add_test(octothorpe_comment_between_props ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test10.c")
set_tests_properties(octothorpe_comment_between_props
PROPERTIES PASS_REGULAR_EXPRESSION "^key1=value1[ \t\n\r]+key2=value2[ \t\n\r]*$")
# test octothorpe at end of property value are included in value
add_test(octothorpe_in_property ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test11.c")
set_tests_properties(octothorpe_in_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value; not comment[ \t\n\r]*$")
# test escaped octothorpes are included in property value
add_test(escaped_octothorpe_in_property ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test12.c")
set_tests_properties(escaped_octothorpe_in_property
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value ; not comment[ \t\n\r]*$")
# test escaped octothorpes are included in section names
add_test(escaped_octothorpe_in_section ${EDITORCONFIG_CMD} -f comments.in
"${CMAKE_CURRENT_SOURCE_DIR}/test\#.c")
set_tests_properties(escaped_octothorpe_in_section
PROPERTIES PASS_REGULAR_EXPRESSION "^key=value[ \t\n\r]*$")