end
main_env = base_env.clone do |env|
+ env.build_dir('source','build/obj/source')
+ env.build_dir('modules','build/obj/modules')
env["CFLAGS"] += ['-O3']
end
test_env = base_env.clone do |env|
- env.build_dir('source','build/obj/test/source')
- env.build_dir('modules','build/obj/test/modules')
+ env.build_dir('source','build/obj_test/source')
+ env.build_dir('modules','build/obj_test/modules')
env['CFLAGS'] += ['--coverage']
env['LDFLAGS'] += ['--coverage']
end
main_env.process
test_env.process
end
+
+desc "Generate test coverage reports"
+task :coverage => [:spec] do
+ FileList['build/obj_test/**/*.gcno'].each do |gcno|
+ obj = gcno.ext('o')
+ path = File.dirname(obj)
+ gcov = File.basename(obj).ext('c.gcov')
+ sh *['gcov', '-a', '-b', '-c', obj] and FileUtils.mv("./#{gcov}","#{path}/#{gcov}")
+ end
+end