From ba9ae79e0b6a92ef78db9c5efec98311d03550d8 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Mon, 28 Feb 2011 18:57:25 +1100 Subject: build: added automated testing of our public headers we generate test_headers.h, which includes all of our public headers, and check it compiles --- testsuite/headers/test_headers.c | 43 ++++++++++++++++++++++++++++++++++++++++ testsuite/headers/wscript_build | 34 +++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 testsuite/headers/test_headers.c create mode 100644 testsuite/headers/wscript_build (limited to 'testsuite') diff --git a/testsuite/headers/test_headers.c b/testsuite/headers/test_headers.c new file mode 100644 index 0000000000..c671d734b0 --- /dev/null +++ b/testsuite/headers/test_headers.c @@ -0,0 +1,43 @@ +/* + Unix SMB/CIFS implementation. + + Copyright (C) Andrew Tridgell 2011 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/* + this tests that all of our public headers will build + */ + +#define _GNU_SOURCE 1 + +#include +#include +#include +#include +#include +#include + +/* pre-include some of the public headers to avoid ordering issues */ +#include "core/ntstatus.h" + +/* include all our public headers */ +#include "test_headers.h" + +int main(void) +{ + printf("All OK\n"); + return 0; +} diff --git a/testsuite/headers/wscript_build b/testsuite/headers/wscript_build new file mode 100644 index 0000000000..4d383a117f --- /dev/null +++ b/testsuite/headers/wscript_build @@ -0,0 +1,34 @@ +import os +from samba_utils import os_path_relpath + +def build_test_headers(task): + '''symlink a header in the build tree''' + tgt = task.outputs[0].bldpath(task.env) + f = open(tgt, mode='w') + f.write('/* generated header test */\n') + hlist = task.env.public_headers_list[:] + hlist.sort() + for h in hlist: + f.write('#include "%s"\n' % os.path.normpath(h)) + f.close() + +relpath1 = os_path_relpath(bld.srcnode.abspath(), bld.curdir) +public_headers = [] +for h in bld.env.public_headers_list: + public_headers.append(os.path.join(relpath1, bld.env.build_public_headers, h)) + +bld.SAMBA_GENERATOR('test_headers.h', + group='main', + rule=build_test_headers, + source=public_headers, + target='test_headers.h') + +if bld.env.DEVELOPER_MODE: + bld.SAMBA_BINARY('test_headers', + source='test_headers.c', + includes="#include/public", + pyembed=True, + local_include=True, + global_include=False, + use_global_deps=False, + install=False) -- cgit