Skip to content

Commit e961e4b

Browse files
committed
Add a COVERAGE cmake flag to enable a Go code coverage build
We have a ways to go even with statement coverage only. For an explanation of what is wrong with statement coverage see: http://www.bullseye.com/statementCoverage.html
1 parent 32cadf8 commit e961e4b

File tree

3 files changed

+58
-27
lines changed

3 files changed

+58
-27
lines changed

CMakeLists.txt

+31-26
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,11 @@ if (BENCHMARK)
5555
set(BENCHMARK_FLAG -bench .)
5656
endif()
5757

58+
option(COVERAGE "Enable code coverage" off)
59+
if (COVERAGE)
60+
set(COVERAGE_FLAG -coverprofile coverage.out)
61+
endif()
62+
5863
set(INCLUDE_DOCUMENTATION true)
5964
find_program(SPHINX_BUILD_EXECUTABLE sphinx-build PATH_SUFFIXES bin)
6065
if (NOT SPHINX_BUILD_EXECUTABLE)
@@ -247,38 +252,38 @@ endif()
247252
# MOVING INCLUSION OF CPACK DOWN HERE SO IT ACTUALLY GETS THE VARIABLES WE SET
248253
include(CPack)
249254

250-
add_test(cmd/hekad ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/cmd/hekad)
251-
add_test(message ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/message)
252-
add_test(pipeline ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/pipeline)
253-
add_test(plugins ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins)
254-
add_test(plugins/amqp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/amqp)
255-
add_test(plugins/dasher ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/dasher)
256-
add_test(plugins/elasticsearch ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/elasticsearch)
257-
add_test(plugins/file ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/file)
255+
add_test(cmd/hekad ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/cmd/hekad)
256+
add_test(message ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/message)
257+
add_test(pipeline ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/pipeline)
258+
add_test(plugins ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins)
259+
add_test(plugins/amqp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/amqp)
260+
add_test(plugins/dasher ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/dasher)
261+
add_test(plugins/elasticsearch ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/elasticsearch)
262+
add_test(plugins/file ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/file)
258263
if (INCLUDE_GEOIP)
259-
add_test(plugins/geoip ${GO_EXECUTABLE} test ${LDFLAGS} -tags=${TAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/geoip)
264+
add_test(plugins/geoip ${GO_EXECUTABLE} test ${LDFLAGS} -tags=${TAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/geoip)
260265
endif()
261-
add_test(plugins/graphite ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/graphite)
262-
add_test(plugins/http ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/http)
263-
add_test(plugins/irc ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/irc)
264-
add_test(plugins/kafka ${GO_EXECUTABLE} test -timeout 15s ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/kafka)
265-
add_test(plugins/logstreamer ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/logstreamer)
266-
add_test(plugins/nagios ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/nagios)
267-
add_test(plugins/payload ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/payload)
268-
add_test(plugins/process ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/process)
269-
add_test(plugins/smtp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/smtp)
270-
add_test(plugins/statsd ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/statsd)
271-
add_test(plugins/tcp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/tcp)
272-
add_test(plugins/udp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/plugins/udp)
273-
add_test(logstreamer ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/logstreamer)
274-
add_test(client ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/client)
266+
add_test(plugins/graphite ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/graphite)
267+
add_test(plugins/http ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/http)
268+
add_test(plugins/irc ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/irc)
269+
add_test(plugins/kafka ${GO_EXECUTABLE} test -timeout 15s ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/kafka)
270+
add_test(plugins/logstreamer ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/logstreamer)
271+
add_test(plugins/nagios ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/nagios)
272+
add_test(plugins/payload ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/payload)
273+
add_test(plugins/process ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/process)
274+
add_test(plugins/smtp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/smtp)
275+
add_test(plugins/statsd ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/statsd)
276+
add_test(plugins/tcp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/tcp)
277+
add_test(plugins/udp ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/plugins/udp)
278+
add_test(logstreamer ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/logstreamer)
279+
add_test(client ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/client)
275280
if(INCLUDE_SANDBOX)
276281
add_test(sandbox_move_modules cmake -E copy_directory ${CMAKE_BINARY_DIR}/heka/lib/luasandbox/modules ${CMAKE_BINARY_DIR}/heka/src/github.com/mozilla-services/heka/sandbox/lua/modules)
277-
add_test(sandbox ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/sandbox/lua)
278-
add_test(sandbox_plugins ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} github.com/mozilla-services/heka/sandbox/plugins)
282+
add_test(sandbox ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/sandbox/lua)
283+
add_test(sandbox_plugins ${GO_EXECUTABLE} test ${LDFLAGS} ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka/sandbox/plugins)
279284
endif()
280285
if (INCLUDE_MOZSVC)
281-
add_test(mozsvc ${GO_EXECUTABLE} test ${BENCHMARK_FLAG} github.com/mozilla-services/heka-mozsvc-plugins)
286+
add_test(mozsvc ${GO_EXECUTABLE} test ${BENCHMARK_FLAG} ${COVERAGE_FLAG} github.com/mozilla-services/heka-mozsvc-plugins)
282287
endif()
283288
install(FILES "${HEKA_PATH}/cmd/heka-sbmgr/sbmgr.toml" "${HEKA_PATH}/cmd/heka-sbmgr/hekad.toml.sbmgr" DESTINATION bin)
284289
if(INCLUDE_SANDBOX)

coverage.txt

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
github.com/mozilla-services/heka/cmd/hekad 0.031s coverage: 41.3% of statements
2+
github.com/mozilla-services/heka/message 0.009s coverage: 39.9% of statements
3+
github.com/mozilla-services/heka/pipeline 0.034s coverage: 48.0% of statements
4+
github.com/mozilla-services/heka/plugins 0.021s coverage: 81.7% of statements
5+
github.com/mozilla-services/heka/plugins/amqp 0.013s coverage: 52.0% of statements
6+
github.com/mozilla-services/heka/plugins/dasher 0.007s coverage: 26.9% of statements
7+
github.com/mozilla-services/heka/plugins/elasticsearch 0.012s coverage: 48.8% of statements
8+
github.com/mozilla-services/heka/plugins/file 0.025s coverage: 69.4% of statements
9+
github.com/mozilla-services/heka/plugins/geoip 0.003s coverage: 72.3% of statements
10+
github.com/mozilla-services/heka/plugins/graphite 0.012s coverage: 66.9% of statements
11+
github.com/mozilla-services/heka/plugins/http 0.103s coverage: 74.2% of statements
12+
github.com/mozilla-services/heka/plugins/irc 0.011s coverage: 89.0% of statements
13+
github.com/mozilla-services/heka/plugins/kafka 1.520s coverage: 72.6% of statements
14+
github.com/mozilla-services/heka/plugins/logstreamer 0.006s coverage: 64.3% of statements
15+
github.com/mozilla-services/heka/plugins/nagios 0.012s coverage: 82.5% of statements
16+
github.com/mozilla-services/heka/plugins/payload 0.025s coverage: 90.2% of statements
17+
github.com/mozilla-services/heka/plugins/process 0.579s coverage: 79.7% of statements
18+
github.com/mozilla-services/heka/plugins/smtp 0.010s coverage: 72.6% of statements
19+
github.com/mozilla-services/heka/plugins/statsd 0.012s coverage: 66.1% of statements
20+
github.com/mozilla-services/heka/plugins/tcp 2.289s coverage: 71.8% of statements
21+
github.com/mozilla-services/heka/plugins/udp 0.015s coverage: 70.3% of statements
22+
github.com/mozilla-services/heka/logstreamer 0.038s coverage: 68.4% of statements
23+
github.com/mozilla-services/heka/client 0.006s coverage: 58.2% of statements
24+
github.com/mozilla-services/heka/sandbox/lua 0.033s coverage: 0.0% of statements
25+
github.com/mozilla-services/heka/sandbox/plugins 0.090s coverage: 64.5% of statements
26+
github.com/mozilla-services/heka-mozsvc-plugins 2.099s coverage: 62.0% of statements

message/message_matcher_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ func BenchmarkMatcherMatch(b *testing.B) {
218218

219219
func BenchmarkMatcherSimpleRegex(b *testing.B) {
220220
b.StopTimer()
221-
s := "Type =~ /^TEST/ && Severity == 6"
221+
s := "Type =~ /[Tt]EST/ && Severity == 6"
222222
ms, _ := CreateMatcherSpecification(s)
223223
msg := getTestMessage()
224224
b.StartTimer()

0 commit comments

Comments
 (0)