From 3e072b3fb78f0d3132b1d3ce719b8f3706e8491a Mon Sep 17 00:00:00 2001 From: Gary Lockyer Date: Thu, 13 Feb 2020 10:54:06 +1300 Subject: [PATCH] build: fix the coverage build "make lcov" was failing with: Processing file bin/default/ genhtml: ERROR: cannot read ... Flex adds "#line nnn " to the generated source, which then causes issues with lcov. This commit adds a SAMBA_GENERATOR for es_lexer.l and sparql_lexer.l that strips out the offending lines. Signed-off-by: Gary Lockyer Reviewed-by: Andrew Bartlett --- source3/rpc_server/wscript_build | 28 ++++++++++++++++++++++++++-- source3/wscript_build | 6 +++--- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/source3/rpc_server/wscript_build b/source3/rpc_server/wscript_build index 8077a9c1a1b..4b70d58d768 100644 --- a/source3/rpc_server/wscript_build +++ b/source3/rpc_server/wscript_build @@ -158,18 +158,42 @@ if bld.env.spotlight_backend_tracker: mdssvc/mdssvc_tracker.c mdssvc/sparql_mapping.c mdssvc/sparql_parser.y - mdssvc/sparql_lexer.l ''' rpc_mdssvc_deps += 'tevent-glib-glue ' + bld.env['libtracker'] + # flex adds "#line nnn " to the generated source + # which then causes issues with lcov, so need to filter out those + # lines. We need to use a different target name, as the default flex rule + # will also build sparql_lexer.lex.c + bld.SAMBA_GENERATOR( + "sparql_lexer.gcov.lex.c", + group='build_source', + source="mdssvc/sparql_lexer.l", + target="mdssvc/sparql_lexer.gcov.lex.c", + rule='${FLEX} ${FLEXFLAGS} ${SRC} |' + 'grep -v "#line.*" >${TGT}') + rpc_mdssvc_sources += ' mdssvc/sparql_lexer.gcov.lex.c' if bld.env.spotlight_backend_es: rpc_mdssvc_sources += ''' mdssvc/mdssvc_es.c mdssvc/es_mapping.c mdssvc/es_parser.y - mdssvc/es_lexer.l ''' rpc_mdssvc_deps += ' http jansson' + + # flex adds "#line nnn " to the generated source + # which then causes issues with lcov, so need to filter out those + # lines. We need to use a different target name, as the default flex rule + # will also build es_lexer.lex.c + bld.SAMBA_GENERATOR( + "es_lexer.gcov.lex.c", + group='build_source', + source="mdssvc/es_lexer.l", + target="mdssvc/es_lexer.gcov.lex.c", + rule='${FLEX} ${FLEXFLAGS} ${SRC} |' + 'grep -v "#line.*" >${TGT}') + rpc_mdssvc_sources += ' mdssvc/es_lexer.gcov.lex.c' + if bld.SAMBA3_IS_ENABLED_MODULE('rpc_mdssvc_module'): bld.INSTALL_FILES(bld.env.SAMBA_DATADIR, 'mdssvc/elasticsearch_mappings.json') diff --git a/source3/wscript_build b/source3/wscript_build index 465c1e5875d..68f2c14ebf4 100644 --- a/source3/wscript_build +++ b/source3/wscript_build @@ -1277,7 +1277,7 @@ bld.SAMBA3_BINARY('test_mdsparser_es', source=''' rpc_server/mdssvc/test_mdsparser_es.c rpc_server/mdssvc/es_parser.y - rpc_server/mdssvc/es_lexer.l + rpc_server/mdssvc/es_lexer.gcov.lex.c rpc_server/mdssvc/es_mapping.c ''', deps=''' @@ -1369,7 +1369,7 @@ bld.SAMBA3_BINARY('spotlight2sparql', source=''' rpc_server/mdssvc/sparql_parser_test.c rpc_server/mdssvc/sparql_parser.y - rpc_server/mdssvc/sparql_lexer.l + rpc_server/mdssvc/sparql_lexer.gcov.lex.c rpc_server/mdssvc/sparql_mapping.c''', deps='samba3-util talloc ' + bld.env['libtracker'], enabled=bld.env.spotlight_backend_tracker, @@ -1379,7 +1379,7 @@ bld.SAMBA3_BINARY('spotlight2es', source=''' rpc_server/mdssvc/es_parser_test.c rpc_server/mdssvc/es_parser.y - rpc_server/mdssvc/es_lexer.l + rpc_server/mdssvc/es_lexer.gcov.lex.c rpc_server/mdssvc/es_mapping.c''', deps='samba3-util talloc jansson smbconf', enabled=bld.env.spotlight_backend_es, -- 2.47.3