mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 0ee154bee2
			
		
	
	
		0ee154bee2
		
	
	
	
	
		
			
			rubyspec compiles the extension libraries for capi specs in a temporary directory, and after that, deletes the directory. gcov resurrects the directory to save coverage statistics (.gcda files). However, the source and profiling artifacts (.gcno files) have been deleted. So, we need to ignore the .gcda files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			54 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| #!ruby
 | |
| require "pathname"
 | |
| require "open3"
 | |
| 
 | |
| Pathname.glob("**/*.gcda").sort.each do |gcda|
 | |
|   if gcda.fnmatch("ext/*")
 | |
|     cwd, gcda = gcda.split.map {|s| s.to_s }
 | |
|     objdir = "."
 | |
|   elsif gcda.fnmatch("rubyspec_temp/*")
 | |
|     next
 | |
|   else
 | |
|     cwd, objdir, gcda = ".", gcda.dirname.to_s, gcda.to_s
 | |
|   end
 | |
|   puts "$ gcov -lpbc -o #{ objdir } #{ gcda }"
 | |
|   out, err, _status = Open3.capture3("gcov", "-lpbc", "-o", objdir, gcda, chdir: cwd)
 | |
|   puts out
 | |
|   puts err
 | |
| 
 | |
|   # a black list of source files that contains wrong #line directives
 | |
|   if err !~ %r(
 | |
|     \A(
 | |
|       Cannot\ open\ source\ file\ (
 | |
|          defs/keywords
 | |
|         |zonetab\.list
 | |
|         |enc/jis/props\.kwd
 | |
|         |parser\.c
 | |
|         |parser\.rl
 | |
|       )\n
 | |
|     )*\z
 | |
|   )x
 | |
|     raise "Unexpected gcov output"
 | |
|   end
 | |
| 
 | |
|   if out !~ %r(
 | |
|     \A(
 | |
|       File\ .*\nLines\ executed:.*\n
 | |
|       (
 | |
|         Branches\ executed:.*\n
 | |
|         Taken\ at\ least\ once:.*\n
 | |
|       |
 | |
|         No\ branches\n
 | |
|       )?
 | |
|       (
 | |
|         Calls\ executed:.*\n
 | |
|       |
 | |
|         No\ calls\n
 | |
|       )?
 | |
|       Creating\ .*\n
 | |
|       \n
 | |
|     )+\z
 | |
|   )x
 | |
|     raise "Unexpected gcov output"
 | |
|   end
 | |
| end
 |