From ce6d7efff74ee19cb75d6ccd3af4b8f3bd63f3d6 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sun, 14 Oct 2012 01:38:44 +0200 Subject: [PATCH] build: compile strict and non-strict tests Make gyp compile the library and the test suite in both strict and non-strict mode. Fixes a failing test where the test was strict but the library was not. Fixes #129. --- http_parser.gyp | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/http_parser.gyp b/http_parser.gyp index c6eada7..f1b0679 100644 --- a/http_parser.gyp +++ b/http_parser.gyp @@ -51,6 +51,7 @@ 'type': 'static_library', 'include_dirs': [ '.' ], 'direct_dependent_settings': { + 'defines': [ 'HTTP_PARSER_STRICT=0' ], 'include_dirs': [ '.' ], }, 'defines': [ 'HTTP_PARSER_STRICT=0' ], @@ -69,11 +70,40 @@ }, { - 'target_name': 'test', + 'target_name': 'http_parser_strict', + 'type': 'static_library', + 'include_dirs': [ '.' ], + 'direct_dependent_settings': { + 'defines': [ 'HTTP_PARSER_STRICT=1' ], + 'include_dirs': [ '.' ], + }, + 'defines': [ 'HTTP_PARSER_STRICT=1' ], + 'sources': [ './http_parser.c', ], + 'conditions': [ + ['OS=="win"', { + 'msvs_settings': { + 'VCCLCompilerTool': { + # Compile as C++. http_parser.c is actually C99, but C++ is + # close enough in this case. + 'CompileAs': 2, + }, + }, + }] + ], + }, + + { + 'target_name': 'test-nonstrict', 'type': 'executable', 'dependencies': [ 'http_parser' ], 'sources': [ 'test.c' ] + }, + + { + 'target_name': 'test-strict', + 'type': 'executable', + 'dependencies': [ 'http_parser_strict' ], + 'sources': [ 'test.c' ] } ] } -