From ab23045414dbe120fa307b8c07ca6f3f73b3dbe5 Mon Sep 17 00:00:00 2001 From: Craig Tiller Date: Mon, 4 Jan 2016 08:18:43 -0800 Subject: Add a test that public headers compile as C99 --- .../surface/public_headers_must_be_c89.c.template | 58 ++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 templates/test/core/surface/public_headers_must_be_c89.c.template (limited to 'templates/test') diff --git a/templates/test/core/surface/public_headers_must_be_c89.c.template b/templates/test/core/surface/public_headers_must_be_c89.c.template new file mode 100644 index 0000000000..c95be95a32 --- /dev/null +++ b/templates/test/core/surface/public_headers_must_be_c89.c.template @@ -0,0 +1,58 @@ +%YAML 1.2 +--- | + /* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * 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. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * 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 + * OWNER 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. + * + */ + + <% + def is_platform_header(hdr): + for platform_identifier in ['_gcc', '_win32', '_pthread']: + if platform_identifier in hdr: + return True + return False + hdrs = set() + pfx = 'include/' + for lib in libs: + if lib.language != 'c': continue + for hdr in lib.get('public_headers', []): + if is_platform_header(hdr): continue + assert(hdr[0:len(pfx)] == pfx) + hdrs.add(hdr[len(pfx):]) + hdrs = sorted(list(hdrs)) + %>\ + % for hdr in hdrs: + #include <${hdr}> + % endfor + + int main(int argc, char **argv) { + return 0; + } -- cgit v1.2.3