зеркало из https://github.com/github/ruby.git
Use lcov visualizer for gcov statistics
This experimental feature is only for Ruby-core team, not for casual users. Usage: `./configure --enable-gcov && make && make exam && make lcov` git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59262 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
2b8bf0fc4a
Коммит
f85bc2906b
|
@ -39,6 +39,7 @@ y.tab.c
|
||||||
*.gcda
|
*.gcda
|
||||||
*.gcno
|
*.gcno
|
||||||
*.gcov
|
*.gcov
|
||||||
|
lcov*.info
|
||||||
|
|
||||||
# /
|
# /
|
||||||
/*-fake.rb
|
/*-fake.rb
|
||||||
|
@ -85,6 +86,7 @@ y.tab.c
|
||||||
/goruby
|
/goruby
|
||||||
/id.[ch]
|
/id.[ch]
|
||||||
/largefile.h
|
/largefile.h
|
||||||
|
/lcov-out
|
||||||
/lex.c
|
/lex.c
|
||||||
/libruby*.*
|
/libruby*.*
|
||||||
/miniprelude.c
|
/miniprelude.c
|
||||||
|
|
|
@ -484,6 +484,10 @@ after-update:: prereq
|
||||||
gcov:
|
gcov:
|
||||||
$(Q) $(BASERUBY) $(srcdir)/tool/run-gcov.rb
|
$(Q) $(BASERUBY) $(srcdir)/tool/run-gcov.rb
|
||||||
|
|
||||||
|
lcov:
|
||||||
|
$(Q) $(BASERUBY) $(srcdir)/tool/run-lcov.rb
|
||||||
|
$(Q) genhtml --ignore-errors source lcov-c-all.info -o lcov-out
|
||||||
|
|
||||||
update-doclie:
|
update-doclie:
|
||||||
$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
$(Q) $(srcdir)/tool/git-refresh -C $(srcdir)/coverage $(Q1:0=-q) \
|
||||||
--branch $(DOCLIE_GIT_REF) \
|
--branch $(DOCLIE_GIT_REF) \
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!ruby
|
||||||
|
require "pathname"
|
||||||
|
require "open3"
|
||||||
|
|
||||||
|
def backup_gcda_files(gcda_files)
|
||||||
|
gcda_files = gcda_files.map do |gcda|
|
||||||
|
[gcda, gcda.sub_ext(".bak")]
|
||||||
|
end
|
||||||
|
begin
|
||||||
|
gcda_files.each do |before, after|
|
||||||
|
before.rename(after)
|
||||||
|
end
|
||||||
|
yield
|
||||||
|
ensure
|
||||||
|
gcda_files.each do |before, after|
|
||||||
|
after.rename(before)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
$info_files = []
|
||||||
|
def run_lcov(dir, info)
|
||||||
|
$info_files << info
|
||||||
|
system("lcov", "-c", "-d", dir, "--rc", "lcov_branch_coverage=1", "-o", info)
|
||||||
|
end
|
||||||
|
|
||||||
|
gcda_files = Pathname.glob("**/*.gcda")
|
||||||
|
ext_gcda_files = gcda_files.select {|f| f.fnmatch("ext/*") }
|
||||||
|
rubyspec_temp_gcda_files = gcda_files.select {|f| f.fnmatch("rubyspec_temp/*") }
|
||||||
|
|
||||||
|
backup_gcda_files(rubyspec_temp_gcda_files) do
|
||||||
|
backup_gcda_files(ext_gcda_files) do
|
||||||
|
info = "lcov-root.info"
|
||||||
|
run_lcov(".", info)
|
||||||
|
end
|
||||||
|
ext_gcda_files.group_by {|f| f.descend.to_a[1] }.each do |key, files|
|
||||||
|
info = "lcov-#{ key.to_s.gsub(File::Separator, "-") }.info"
|
||||||
|
run_lcov(key.to_s, info)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
system("lcov", *$info_files.flat_map {|f| ["-a", f] }, "-o", "lcov-c-all.info")
|
Загрузка…
Ссылка в новой задаче