diff options
author | Andrew Tridgell <tridge@samba.org> | 2011-02-28 18:57:25 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2011-03-15 12:22:19 +1100 |
commit | ba9ae79e0b6a92ef78db9c5efec98311d03550d8 (patch) | |
tree | caa193b8621cafc6379683458b2e477caadd7c70 | |
parent | dc42ad02f9b3039d311670d20d42c3e87d03b275 (diff) | |
download | samba-ba9ae79e0b6a92ef78db9c5efec98311d03550d8.tar.gz samba-ba9ae79e0b6a92ef78db9c5efec98311d03550d8.tar.bz2 samba-ba9ae79e0b6a92ef78db9c5efec98311d03550d8.zip |
build: added automated testing of our public headers
we generate test_headers.h, which includes all of our public headers,
and check it compiles
-rw-r--r-- | testsuite/headers/test_headers.c | 43 | ||||
-rw-r--r-- | testsuite/headers/wscript_build | 34 | ||||
-rw-r--r-- | wscript_build | 2 |
3 files changed, 79 insertions, 0 deletions
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 <http://www.gnu.org/licenses/>. +*/ + +/* + this tests that all of our public headers will build + */ + +#define _GNU_SOURCE 1 + +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <stdint.h> +#include <stdbool.h> +#include <Python.h> + +/* 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) diff --git a/wscript_build b/wscript_build index ba47499126..9c60450a9a 100644 --- a/wscript_build +++ b/wscript_build @@ -113,6 +113,8 @@ bld.RECURSE('libds/common') if bld.env.enable_s3build: bld.RECURSE('source3') +bld.RECURSE('testsuite/headers') + # install some extra empty directories bld.INSTALL_DIRS("", "${LOCKDIR} ${SYSCONFDIR} ${LOCKDIR} ${PIDDIR} ${LOCALSTATEDIR}/lib ${PRIVATEDIR}/smbd.tmp/messaging") |