Skip to content

Commit 4383c26

Browse files
committed
check_library_structure: Add missing unit tests for output and improve existing ones
1 parent 79d0fb0 commit 4383c26

File tree

1 file changed

+27
-27
lines changed

1 file changed

+27
-27
lines changed

tests/check_library_structure.bats

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ source ../arduino-ci-script.sh
88
echo "Exit status: $status | Expected: $expectedExitStatus"
99
[ "$status" -eq $expectedExitStatus ]
1010
[ "${#lines[@]}" -eq 1 ]
11-
outputRegex="^WARNING: \./check_library_structure/ValidLibraryOnePointZero is missing a library\.properties file. While not required, it's recommended to add this file to provide helpful metadata\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-metadata"
11+
outputRegex="^WARNING: \./check_library_structure/ValidLibraryOnePointZero is missing a library\.properties file. While not required, it's recommended to add this file to provide helpful metadata\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-metadata$"
1212
[[ "${lines[0]}" =~ $outputRegex ]]
1313
}
1414

@@ -34,7 +34,7 @@ source ../arduino-ci-script.sh
3434
echo "Exit status: $status | Expected: $expectedExitStatus"
3535
[ "$status" -eq $expectedExitStatus ]
3636
[ "${#lines[@]}" -eq 1 ]
37-
outputRegex="^WARNING: \./check_library_structure/InvalidLibraryBelowDepth is missing a library\.properties file\. While not required, it's recommended to add this file to provide helpful metadata\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-metadata"
37+
outputRegex="^WARNING: \./check_library_structure/InvalidLibraryBelowDepth is missing a library\.properties file\. While not required, it's recommended to add this file to provide helpful metadata\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-metadata$"
3838
[[ "${lines[0]}" =~ $outputRegex ]]
3939
}
4040

@@ -44,7 +44,7 @@ source ../arduino-ci-script.sh
4444
echo "Exit status: $status | Expected: $expectedExitStatus"
4545
[ "$status" -eq $expectedExitStatus ]
4646
[ "${#lines[@]}" -eq 1 ]
47-
outputRegex="^ERROR: Specified folder: \./check_library_structure/DoesntExist doesn't exist\."
47+
outputRegex="^ERROR: Specified folder: \./check_library_structure/DoesntExist doesn't exist\.$"
4848
[[ "${lines[0]}" =~ $outputRegex ]]
4949
}
5050

@@ -54,7 +54,7 @@ source ../arduino-ci-script.sh
5454
echo "Exit status: $status | Expected: $expectedExitStatus"
5555
[ "$status" -eq $expectedExitStatus ]
5656
[ "${#lines[@]}" -eq 1 ]
57-
outputRegex='^ERROR: \./check_library_structure/IncorrectSrcFolderCase is a 1\.5 format library with incorrect case in src subfolder name, which causes library to not be recognized on a filename case-sensitive OS such as Linux\.'
57+
outputRegex='^ERROR: \./check_library_structure/IncorrectSrcFolderCase is a 1\.5 format library with incorrect case in src subfolder name, which causes library to not be recognized on a filename case-sensitive OS such as Linux\.$'
5858
[[ "${lines[0]}" =~ $outputRegex ]]
5959
}
6060

@@ -64,7 +64,7 @@ source ../arduino-ci-script.sh
6464
echo "Exit status: $status | Expected: $expectedExitStatus"
6565
[ "$status" -eq $expectedExitStatus ]
6666
[ "${#lines[@]}" -eq 1 ]
67-
outputRegex='^ERROR: \./check_library_structure/MultipleInvalidLibraries/IncorrectSrcFolderCase is a 1\.5 format library with incorrect case in src subfolder name, which causes library to not be recognized on a filename case-sensitive OS such as Linux\.'
67+
outputRegex='^ERROR: \./check_library_structure/MultipleInvalidLibraries/IncorrectSrcFolderCase is a 1\.5 format library with incorrect case in src subfolder name, which causes library to not be recognized on a filename case-sensitive OS such as Linux\.$'
6868
[[ "${lines[0]}" =~ $outputRegex ]]
6969
}
7070

@@ -74,7 +74,7 @@ source ../arduino-ci-script.sh
7474
echo "Exit status: $status | Expected: $expectedExitStatus"
7575
[ "$status" -eq $expectedExitStatus ]
7676
[ "${#lines[@]}" -eq 1 ]
77-
outputRegex='^ERROR: No valid library found in \./check_library_structure/NotLibrary'
77+
outputRegex='^ERROR: No valid library found in \./check_library_structure/NotLibrary$'
7878
[[ "${lines[0]}" =~ $outputRegex ]]
7979
}
8080

@@ -84,7 +84,7 @@ source ../arduino-ci-script.sh
8484
echo "Exit status: $status | Expected: $expectedExitStatus"
8585
[ "$status" -eq $expectedExitStatus ]
8686
[ "${#lines[@]}" -eq 1 ]
87-
outputRegex='^WARNING: Discouraged folder name: 1FolderStartsWithNumber\. Folder name beginning with a number is only supported by Arduino IDE 1\.8\.4 and newer\.'
87+
outputRegex='^WARNING: Discouraged folder name: 1FolderStartsWithNumber\. Folder name beginning with a number is only supported by Arduino IDE 1\.8\.4 and newer\.$'
8888
[[ "${lines[0]}" =~ $outputRegex ]]
8989
}
9090

@@ -94,7 +94,7 @@ source ../arduino-ci-script.sh
9494
echo "Exit status: $status | Expected: $expectedExitStatus"
9595
[ "$status" -eq $expectedExitStatus ]
9696
[ "${#lines[@]}" -eq 1 ]
97-
outputRegex='^ERROR: Invalid folder name: -FolderStartsWithInvalidCharacter\. Folder name beginning with a - or \. is not allowed\.'
97+
outputRegex='^ERROR: Invalid folder name: -FolderStartsWithInvalidCharacter\. Folder name beginning with a - or \. is not allowed\.$'
9898
[[ "${lines[0]}" =~ $outputRegex ]]
9999
}
100100

@@ -104,7 +104,7 @@ source ../arduino-ci-script.sh
104104
echo "Exit status: $status | Expected: $expectedExitStatus"
105105
[ "$status" -eq $expectedExitStatus ]
106106
[ "${#lines[@]}" -eq 1 ]
107-
outputRegex='^ERROR: Invalid folder name: Invalid CharactersInFolder\. Only letters, numbers, dots, dashes, and underscores are allowed\.'
107+
outputRegex='^ERROR: Invalid folder name: Invalid CharactersInFolder\. Only letters, numbers, dots, dashes, and underscores are allowed\.$'
108108
[[ "${lines[0]}" =~ $outputRegex ]]
109109
}
110110

@@ -114,7 +114,7 @@ source ../arduino-ci-script.sh
114114
echo "Exit status: $status | Expected: $expectedExitStatus"
115115
[ "$status" -eq $expectedExitStatus ]
116116
[ "${#lines[@]}" -eq 1 ]
117-
outputRegex='^ERROR: Folder name FolderNameTooLongasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasd exceeds the maximum of 63 characters\.'
117+
outputRegex='^ERROR: Folder name FolderNameTooLongasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasd exceeds the maximum of 63 characters\.$'
118118
[[ "${lines[0]}" =~ $outputRegex ]]
119119
}
120120

@@ -124,7 +124,7 @@ source ../arduino-ci-script.sh
124124
echo "Exit status: $status | Expected: $expectedExitStatus"
125125
[ "$status" -eq $expectedExitStatus ]
126126
[ "${#lines[@]}" -eq 1 ]
127-
outputRegex='^ERROR: \./check_library_structure/SpuriousDotFolder/\.asdf causes the Arduino IDE to display a spurious folder warning\.'
127+
outputRegex='^ERROR: \./check_library_structure/SpuriousDotFolder/\.asdf causes the Arduino IDE to display a spurious folder warning\.$'
128128
[[ "${lines[0]}" =~ $outputRegex ]]
129129
}
130130

@@ -134,7 +134,7 @@ source ../arduino-ci-script.sh
134134
echo "Exit status: $status | Expected: $expectedExitStatus"
135135
[ "$status" -eq $expectedExitStatus ]
136136
[ "${#lines[@]}" -eq 1 ]
137-
outputRegex='^ERROR: \./check_library_structure/IncorrectExtrasFolder has incorrectly spelled extras folder name\. It should be exactly extras\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#extra-documentation'
137+
outputRegex='^ERROR: \./check_library_structure/IncorrectExtrasFolder has incorrectly spelled extras folder name\. It should be exactly extras\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#extra-documentation$'
138138
[[ "${lines[0]}" =~ $outputRegex ]]
139139
}
140140

@@ -144,7 +144,7 @@ source ../arduino-ci-script.sh
144144
echo "Exit status: $status | Expected: $expectedExitStatus"
145145
[ "$status" -eq $expectedExitStatus ]
146146
[ "${#lines[@]}" -eq 1 ]
147-
outputRegex='^ERROR: \./check_library_structure/IncorrectExamplesFolder has incorrect examples folder name. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-examples'
147+
outputRegex='^ERROR: \./check_library_structure/IncorrectExamplesFolder has incorrect examples folder name. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-examples$'
148148
[[ "${lines[0]}" =~ $outputRegex ]]
149149
}
150150

@@ -154,7 +154,7 @@ source ../arduino-ci-script.sh
154154
echo "Exit status: $status | Expected: $expectedExitStatus"
155155
[ "$status" -eq $expectedExitStatus ]
156156
[ "${#lines[@]}" -eq 1 ]
157-
outputRegex='^ERROR: \./check_library_structure/SrcAndUtiltyFolders is a 1\.5 format library with src and utility folders in library root\. The utility folder should be moved under the src folder\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#source-code'
157+
outputRegex='^ERROR: \./check_library_structure/SrcAndUtiltyFolders is a 1\.5 format library with src and utility folders in library root\. The utility folder should be moved under the src folder\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#source-code$'
158158
[[ "${lines[0]}" =~ $outputRegex ]]
159159
}
160160

@@ -164,7 +164,7 @@ source ../arduino-ci-script.sh
164164
echo "Exit status: $status | Expected: $expectedExitStatus"
165165
[ "$status" -eq $expectedExitStatus ]
166166
[ "${#lines[@]}" -eq 1 ]
167-
outputRegex="^WARNING: \./check_library_structure/MissingLibraryProperties is missing a library\.properties file. While not required, it's recommended to add this file to provide helpful metadata\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-metadata"
167+
outputRegex="^WARNING: \./check_library_structure/MissingLibraryProperties is missing a library\.properties file. While not required, it's recommended to add this file to provide helpful metadata\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#library-metadata$"
168168
[[ "${lines[0]}" =~ $outputRegex ]]
169169
}
170170

@@ -174,7 +174,7 @@ source ../arduino-ci-script.sh
174174
echo "Exit status: $status | Expected: $expectedExitStatus"
175175
[ "$status" -eq $expectedExitStatus ]
176176
[ "${#lines[@]}" -eq 1 ]
177-
outputRegex='^ERROR: \./check_library_structure/StrayLibraryProperties/src/library\.properties is a stray file\. library\.properties should be located in the library root folder\.'
177+
outputRegex='^ERROR: \./check_library_structure/StrayLibraryProperties/src/library\.properties is a stray file\. library\.properties should be located in the library root folder\.$'
178178
[[ "${lines[0]}" =~ $outputRegex ]]
179179
}
180180

@@ -184,7 +184,7 @@ source ../arduino-ci-script.sh
184184
echo "Exit status: $status | Expected: $expectedExitStatus"
185185
[ "$status" -eq $expectedExitStatus ]
186186
[ "${#lines[@]}" -eq 1 ]
187-
outputRegex="^WARNING: \./check_library_structure/MissingKeywordsTxt is missing a keywords\.txt file\. While not required, it's recommended to add this file to provide keyword highlighting in the Arduino IDE\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#keywords"
187+
outputRegex="^WARNING: \./check_library_structure/MissingKeywordsTxt is missing a keywords\.txt file\. While not required, it's recommended to add this file to provide keyword highlighting in the Arduino IDE\. See: https://github\.com/arduino/Arduino/wiki/Arduino-IDE-1\.5:-Library-specification#keywords$"
188188
[[ "${lines[0]}" =~ $outputRegex ]]
189189
}
190190

@@ -194,7 +194,7 @@ source ../arduino-ci-script.sh
194194
echo "Exit status: $status | Expected: $expectedExitStatus"
195195
[ "$status" -eq $expectedExitStatus ]
196196
[ "${#lines[@]}" -eq 1 ]
197-
outputRegex='^'
197+
outputRegex='^ERROR: \./check_library_structure/StrayKeywordsTxt/src/keywords\.txt is a stray file. keywords\.txt should be located in the library root folder\.$'
198198
[[ "${lines[0]}" =~ $outputRegex ]]
199199
}
200200

@@ -204,7 +204,7 @@ source ../arduino-ci-script.sh
204204
echo "Exit status: $status | Expected: $expectedExitStatus"
205205
[ "$status" -eq $expectedExitStatus ]
206206
[ "${#lines[@]}" -eq 1 ]
207-
outputRegex='^'
207+
outputRegex='^ERROR: \./check_library_structure/SketchOutsideExamples has sketch files found outside the examples and extras folders\.$'
208208
[[ "${lines[0]}" =~ $outputRegex ]]
209209
}
210210

@@ -214,7 +214,7 @@ source ../arduino-ci-script.sh
214214
echo "Exit status: $status | Expected: $expectedExitStatus"
215215
[ "$status" -eq $expectedExitStatus ]
216216
[ "${#lines[@]}" -eq 1 ]
217-
outputRegex='^'
217+
outputRegex='^ERROR: Sketch file \./check_library_structure/IncorrectSketchExtensionCase/examples/example1/example1\.Ino has incorrect extension case, which causes it to not be recognized on a filename case-sensitive OS such as Linux\.$'
218218
[[ "${lines[0]}" =~ $outputRegex ]]
219219
}
220220

@@ -224,7 +224,7 @@ source ../arduino-ci-script.sh
224224
echo "Exit status: $status | Expected: $expectedExitStatus"
225225
[ "$status" -eq $expectedExitStatus ]
226226
[ "${#lines[@]}" -eq 1 ]
227-
outputRegex='^'
227+
outputRegex='^ERROR: Invalid folder name: -example1\. Folder name beginning with a - or \. is not allowed\.$'
228228
[[ "${lines[0]}" =~ $outputRegex ]]
229229
}
230230

@@ -234,7 +234,7 @@ source ../arduino-ci-script.sh
234234
echo "Exit status: $status | Expected: $expectedExitStatus"
235235
[ "$status" -eq $expectedExitStatus ]
236236
[ "${#lines[@]}" -eq 1 ]
237-
outputRegex='^ERROR: Invalid folder name: example 1\. Only letters, numbers, dots, dashes, and underscores are allowed\.'
237+
outputRegex='^ERROR: Invalid folder name: example 1\. Only letters, numbers, dots, dashes, and underscores are allowed\.$'
238238
[[ "${lines[0]}" =~ $outputRegex ]]
239239
}
240240

@@ -244,7 +244,7 @@ source ../arduino-ci-script.sh
244244
echo "Exit status: $status | Expected: $expectedExitStatus"
245245
[ "$status" -eq $expectedExitStatus ]
246246
[ "${#lines[@]}" -eq 1 ]
247-
outputRegex='^ERROR: Folder name asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf exceeds the maximum of 63 characters\.'
247+
outputRegex='^ERROR: Folder name asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf exceeds the maximum of 63 characters\.$'
248248
[[ "${lines[0]}" =~ $outputRegex ]]
249249
}
250250

@@ -254,7 +254,7 @@ source ../arduino-ci-script.sh
254254
echo "Exit status: $status | Expected: $expectedExitStatus"
255255
[ "$status" -eq $expectedExitStatus ]
256256
[ "${#lines[@]}" -eq 1 ]
257-
outputRegex='^ERROR: Folder name asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf exceeds the maximum of 63 characters\.'
257+
outputRegex='^ERROR: Folder name asdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdfasdf exceeds the maximum of 63 characters\.$'
258258
[[ "${lines[0]}" =~ $outputRegex ]]
259259
}
260260

@@ -264,7 +264,7 @@ source ../arduino-ci-script.sh
264264
echo "Exit status: $status | Expected: $expectedExitStatus"
265265
[ "$status" -eq $expectedExitStatus ]
266266
[ "${#lines[@]}" -eq 1 ]
267-
outputRegex='^ERROR: Sketch folder name \./check_library_structure/SketchFolderNameMismatch/examples/example1 does not match the sketch filename\.'
267+
outputRegex='^ERROR: Sketch folder name \./check_library_structure/SketchFolderNameMismatch/examples/example1 does not match the sketch filename\.$'
268268
[[ "${lines[0]}" =~ $outputRegex ]]
269269
}
270270

@@ -274,7 +274,7 @@ source ../arduino-ci-script.sh
274274
echo "Exit status: $status | Expected: $expectedExitStatus"
275275
[ "$status" -eq $expectedExitStatus ]
276276
[ "${#lines[@]}" -eq 1 ]
277-
outputRegex='^ERROR: Multiple sketches found in the same folder \(\./check_library_structure/MultipleSketchesInSameFolderUnix/examples/example1\)\.'
277+
outputRegex='^ERROR: Multiple sketches found in the same folder \(\./check_library_structure/MultipleSketchesInSameFolderUnix/examples/example1\)\.$'
278278
[[ "${lines[0]}" =~ $outputRegex ]]
279279
}
280280

@@ -284,6 +284,6 @@ source ../arduino-ci-script.sh
284284
echo "Exit status: $status | Expected: $expectedExitStatus"
285285
[ "$status" -eq $expectedExitStatus ]
286286
[ "${#lines[@]}" -eq 1 ]
287-
outputRegex='^ERROR: Multiple sketches found in the same folder \(\./check_library_structure/MultipleSketchesInSameFolderMac/examples/example1\)\.'
287+
outputRegex='^ERROR: Multiple sketches found in the same folder \(\./check_library_structure/MultipleSketchesInSameFolderMac/examples/example1\)\.$'
288288
[[ "${lines[0]}" =~ $outputRegex ]]
289289
}

0 commit comments

Comments
 (0)