From e8fbed123bc14c59fc02529e21e62c69a71c50d4 Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Tue, 13 Sep 2016 01:14:45 +0900 Subject: [PATCH 1/6] Use rake to run rspec By this changeset, how to compile and test narray is changed as follows: rake compile rake spec --- Rakefile | 5 +++++ spec/bit_spec.rb | 2 +- spec/narray_spec.rb | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Rakefile b/Rakefile index 2b5ca481..4a3884e1 100644 --- a/Rakefile +++ b/Rakefile @@ -3,6 +3,8 @@ begin require "rake/extensiontask" require "rake_compiler_dock" require "shellwords" +require "rspec/core/rake_task" + spec = Bundler::GemHelper.gemspec @@ -12,6 +14,9 @@ Rake::ExtensionTask.new("numo/narray", spec) do |ext| ext.cross_platform = cross_platforms end +RSpec::Core::RakeTask.new("spec") +Rake::Task[:spec].prerequisites << :compile + pkg_dir = "pkg" windows_gem_paths = cross_platforms.collect do |platform| File.join(pkg_dir, "#{spec.full_name}-#{platform}.gem") diff --git a/spec/bit_spec.rb b/spec/bit_spec.rb index bc368635..e69ffdc7 100644 --- a/spec/bit_spec.rb +++ b/spec/bit_spec.rb @@ -1,4 +1,4 @@ -require File.join(File.dirname(__FILE__), "../ext/numo/narray/narray") +require_relative '../lib/numo/narray.so' #Numo::NArray.debug = true RSpec.configure do |config| diff --git a/spec/narray_spec.rb b/spec/narray_spec.rb index 93e70480..f569baaa 100644 --- a/spec/narray_spec.rb +++ b/spec/narray_spec.rb @@ -1,4 +1,4 @@ -require File.join(File.dirname(__FILE__), "../ext/numo/narray/narray") +require_relative "../lib/numo/narray.so" #Numo::NArray.debug = true RSpec.configure do |config| From 7300dfda3874a90b43e176045e754f228bc303fd Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Tue, 13 Sep 2016 01:44:03 +0900 Subject: [PATCH 2/6] Run rspec on travis-ci --- .travis.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 25320325..9748ef62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,18 +5,24 @@ rvm: - '2.0' - '2.1' - '2.2' - - '2.3.0' + - '2.3.1' matrix: fast_finish: true -install: true +# before_install: +# - sudo apt-get update -qq +# - sudo apt-get install ruby gcc ruby-dev rake make -y -before_install: - - sudo apt-get update -qq - - sudo apt-get install ruby gcc ruby-dev rake make -y +cache: bundler + + + +before_script: + - rake compile script: + - rake spec - gem build numo-narray.gemspec - gem install numo-narray-0.9.0.3.gem From 92c197066af0cb126e174c6e5757e1c59686cd4b Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Tue, 13 Sep 2016 01:48:25 +0900 Subject: [PATCH 3/6] Add "bundle exec" to .travis.yml --- .travis.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9748ef62..cee9a7f3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,6 @@ language: rvm: - '2.0' - - '2.1' - - '2.2' - '2.3.1' matrix: @@ -20,9 +18,9 @@ cache: bundler before_script: - - rake compile + - bundle exec rake compile script: - - rake spec - - gem build numo-narray.gemspec - - gem install numo-narray-0.9.0.3.gem + - bundle exec rake spec + - bundle exec gem build numo-narray.gemspec + - bundle exec gem install numo-narray-0.9.0.3.gem From 0939a86ee28f9e7ca27a912961c76679774d434f Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Tue, 13 Sep 2016 23:55:26 +0900 Subject: [PATCH 4/6] Setup coveralls using gcov and lcov --- .travis.yml | 14 +++++++++----- ext/numo/narray/depend.erb | 2 +- ext/numo/narray/extconf.rb | 5 +++++ numo-narray.gemspec | 1 + 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index cee9a7f3..3babe180 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,18 +9,22 @@ matrix: fast_finish: true -# before_install: -# - sudo apt-get update -qq -# - sudo apt-get install ruby gcc ruby-dev rake make -y +before_install: + - sudo apt-get install -y lcov cache: bundler - before_script: - - bundle exec rake compile + - bundle exec rake compile -- --enable-gcov script: - bundle exec rake spec - bundle exec gem build numo-narray.gemspec - bundle exec gem install numo-narray-0.9.0.3.gem + +after_success: + - cd ${TRAVIS_BUILD_DIR} + - lcov --directory tmp --capture --output-file coverage.info # capture coverage info + - lcov --list coverage.info # debug before upload + - coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info # uploads to coveralls \ No newline at end of file diff --git a/ext/numo/narray/depend.erb b/ext/numo/narray/depend.erb index dd1c205a..7ab97c42 100644 --- a/ext/numo/narray/depend.erb +++ b/ext/numo/narray/depend.erb @@ -32,4 +32,4 @@ DEPENDS = $(C_TMPL) $(DTYPE) <%= __dir__ %>/gen/*.rb src : <%= type_c.join(" ") %> -CLEANOBJS = *.o */*.o *.bak types/*.c +CLEANOBJS = *.o */*.o *.bak types/*.c *.gcno *.gcda *.gcov types/*.gcno types/*.gcda types/*.gcov diff --git a/ext/numo/narray/extconf.rb b/ext/numo/narray/extconf.rb index db2ca207..bfb0e0cb 100644 --- a/ext/numo/narray/extconf.rb +++ b/ext/numo/narray/extconf.rb @@ -20,6 +20,11 @@ $INSTALLFILES << ['libnarray.a', '$(archdir)'] end +if enable_config("gcov") + $CFLAGS += " -coverage" + $LDFLAGS += " -coverage" +end + srcs = %w( narray array diff --git a/numo-narray.gemspec b/numo-narray.gemspec index 2c1eaec1..01ce2f1e 100644 --- a/numo-narray.gemspec +++ b/numo-narray.gemspec @@ -32,4 +32,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rspec", "~> 3" spec.add_development_dependency "rake-compiler", ">= 1.0.1" spec.add_development_dependency "rake-compiler-dock" + spec.add_development_dependency "coveralls-lcov" end From 706be99e6c0e5d1f6ca755b43641d2fe45760433 Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Wed, 14 Sep 2016 00:01:04 +0900 Subject: [PATCH 5/6] Add "bundle exec" to .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3babe180..69fd1229 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,4 +27,4 @@ after_success: - cd ${TRAVIS_BUILD_DIR} - lcov --directory tmp --capture --output-file coverage.info # capture coverage info - lcov --list coverage.info # debug before upload - - coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info # uploads to coveralls \ No newline at end of file + - bundle exec coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info # uploads to coveralls \ No newline at end of file From e32658555a941c58e713e8066c415aa0872ccae2 Mon Sep 17 00:00:00 2001 From: Ippei Obayashi Date: Wed, 14 Sep 2016 00:13:42 +0900 Subject: [PATCH 6/6] Remove *.h from coverage to avoid an error --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 69fd1229..1cb32097 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,5 +26,6 @@ script: after_success: - cd ${TRAVIS_BUILD_DIR} - lcov --directory tmp --capture --output-file coverage.info # capture coverage info + - lcov --remove coverage.info '*.h' --output-file coverage.info # remove *.h coverages - lcov --list coverage.info # debug before upload - bundle exec coveralls-lcov --repo-token ${COVERALLS_TOKEN} coverage.info # uploads to coveralls \ No newline at end of file