1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-30 06:50:24 +03:00

build: added automated testing of our public headers

we generate test_headers.h, which includes all of our public headers,
and check it compiles
This commit is contained in:
Andrew Tridgell 2011-02-28 18:57:25 +11:00
parent dc42ad02f9
commit ba9ae79e0b
3 changed files with 79 additions and 0 deletions

View File

@ -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;
}

View File

@ -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)

View File

@ -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")