@@ -16,6 +16,7 @@ final class PkgConfigParserTests: XCTestCase {
16
16
17
17
func testGTK3PCFile( ) {
18
18
loadPCFile ( " gtk+-3.0.pc " ) { parser in
19
+ guard let parser = parser else { XCTFail ( " Unexpected parsing error " ) ; return }
19
20
XCTAssertEqual ( parser. variables, [ " libdir " : " /usr/local/Cellar/gtk+3/3.18.9/lib " , " gtk_host " : " x86_64-apple-darwin15.3.0 " , " includedir " : " /usr/local/Cellar/gtk+3/3.18.9/include " , " prefix " : " /usr/local/Cellar/gtk+3/3.18.9 " , " gtk_binary_version " : " 3.0.0 " , " exec_prefix " : " /usr/local/Cellar/gtk+3/3.18.9 " , " targets " : " quartz " ] )
20
21
XCTAssertEqual ( parser. dependencies, [ " gdk-3.0 " , " atk " , " cairo " , " cairo-gobject " , " gdk-pixbuf-2.0 " , " gio-2.0 " ] )
21
22
XCTAssertEqual ( parser. cFlags, " -I/usr/local/Cellar/gtk+3/3.18.9/include/gtk-3.0 " )
@@ -25,6 +26,7 @@ final class PkgConfigParserTests: XCTestCase {
25
26
26
27
func testEmptyCFlags( ) {
27
28
loadPCFile ( " empty_cflags.pc " ) { parser in
29
+ guard let parser = parser else { XCTFail ( " Unexpected parsing error " ) ; return }
28
30
XCTAssertEqual ( parser. variables, [ " prefix " : " /usr/local/bin " , " exec_prefix " : " /usr/local/bin " ] )
29
31
XCTAssertEqual ( parser. dependencies, [ " gdk-3.0 " , " atk " ] )
30
32
XCTAssertEqual ( parser. cFlags, " " )
@@ -34,22 +36,31 @@ final class PkgConfigParserTests: XCTestCase {
34
36
35
37
func testVariableinDependency( ) {
36
38
loadPCFile ( " deps_variable.pc " ) { parser in
39
+ guard let parser = parser else { XCTFail ( " Unexpected parsing error " ) ; return }
37
40
XCTAssertEqual ( parser. variables, [ " prefix " : " /usr/local/bin " , " exec_prefix " : " /usr/local/bin " , " my_dep " : " atk " ] )
38
41
XCTAssertEqual ( parser. dependencies, [ " gdk-3.0 " , " atk " ] )
39
42
XCTAssertEqual ( parser. cFlags, " -I " )
40
43
XCTAssertEqual ( parser. libs, " -L/usr/local/bin -lgtk-3 " )
41
44
}
42
45
}
43
46
44
- private func loadPCFile( _ inputName: String , line: UInt = #line, body: ( PkgConfigParser ) -> Void ) {
47
+ func testUnresolvablePCFile( ) {
48
+ loadPCFile ( " failure_case.pc " ) { parser in
49
+ if parser != nil {
50
+ XCTFail ( " parsing should have failed: \( parser) " )
51
+ }
52
+ }
53
+ }
54
+
55
+ private func loadPCFile( _ inputName: String , body: ( PkgConfigParser ? ) -> Void ) {
56
+ let input = Path . join ( #file, " ../pkgconfigInputs " , inputName) . normpath
57
+ var parser : PkgConfigParser ? = PkgConfigParser ( pcFile: input)
45
58
do {
46
- let input = Path . join ( #file, " ../pkgconfigInputs " , inputName) . normpath
47
- var parser = PkgConfigParser ( pcFile: input)
48
- try parser. parse ( )
49
- body ( parser)
59
+ try parser? . parse ( )
50
60
} catch {
51
- XCTFail ( " Unexpected error: \( error ) " , file : #file , line : line )
61
+ parser = nil
52
62
}
63
+ body ( parser)
53
64
}
54
65
}
55
66
0 commit comments