]> git.mdlowis.com Git - projs/libcds.git/commitdiff
enable coverage analysis
authora bellenir <a@bellenir.com>
Fri, 29 Aug 2014 19:24:18 +0000 (19:24 +0000)
committera bellenir <a@bellenir.com>
Fri, 29 Aug 2014 19:24:18 +0000 (19:24 +0000)
Rakefile

index 4fce26f2bef97653e183e6b85cb6be5c235d2261..a4e7d79f25be1dc9179bcb9db63c6f1b39cf5bd8 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -15,8 +15,8 @@ require 'rbconfig'
 #------------------------------------------------------------------------------
 # Define the compiler environment
 Env = Rscons::Environment.new do |env|
-  env.build_dir('source/','build/obj/source')
-  env["CFLAGS"] += ['--std=c99', '-Wall', '-Wextra', '-Werror']
+  env.build_dir('source','build/obj/source')
+  env["CFLAGS"]  += ['--std=c99', '--pedantic', '-Wall', '-Wextra', '-Werror']
   env['CPPPATH'] += Dir['source/**/']
 end
 
@@ -24,7 +24,9 @@ end
 TestEnv = Env.clone  do |env|
   env.build_dir('source','build/obj/test_source')
   env.build_dir('tests','build/obj/tests/source')
-  env['CFLAGS']  += ['-DLEAK_DETECT_LEVEL=1']
+  env['CFLAGS']  += ['-g', '--coverage', '-DLEAK_DETECT_LEVEL=1']
+  #env['CFLAGS']  += ['-DNDEBUG'] #disables asserts so they won't effect coverage analysis
+  env["LDFLAGS"] += ['--coverage']
   env['CPPPATH'] += Dir['tests/']
 end
 
@@ -50,6 +52,14 @@ task :test do
     TestEnv.Program('build/test_libcds', Dir['source/**/*.c', 'tests/**/*.c'])
     TestEnv.process
     sh "build/test_libcds"
+    FileList['build/obj/test_source/**/*.gcno'].each do |gcno|
+        obj  = gcno.ext('o')
+        path = File.dirname(obj)
+        gcov = File.basename(obj).ext('c.gcov')
+        sh *['gcov', '-abc', obj]
+        FileUtils.cp(gcov,"#{path}/#{gcov}")
+        FileUtils.rm(gcov)
+    end
 end
 
 #------------------------------------------------------------------------------