]> git.mdlowis.com Git - proto/sclpl.git/commitdiff
Added task for summarizing code coverage for the test build
authorMichael D. Lowis <mike@mdlowis.com>
Tue, 21 Oct 2014 19:33:22 +0000 (15:33 -0400)
committerMichael D. Lowis <mike@mdlowis.com>
Tue, 21 Oct 2014 19:33:22 +0000 (15:33 -0400)
Rakefile

index 30519006f523c8a05c5e1dc2d41b87b7defe26af..52c3dc8184120b19974d48ffc2552a5b13bd1d44 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -19,12 +19,14 @@ base_env = BuildEnv.new(echo: :command) do |env|
 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
@@ -110,3 +112,13 @@ RSpec::Core::RakeTask.new(:spec) do |t,args|
   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