From: Tom Clegg Date: Mon, 10 Oct 2016 15:12:57 +0000 (-0400) Subject: 5737: Update gems so tests run in Ruby >2.1 X-Git-Tag: 1.1.0~571^2~27 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/fd308c814745d9c4eed5c3f79b44b9f9142df28a 5737: Update gems so tests run in Ruby >2.1 --- diff --git a/build/run-tests.sh b/build/run-tests.sh index 2797ec3109..ef84a2f41c 100755 --- a/build/run-tests.sh +++ b/build/run-tests.sh @@ -155,6 +155,12 @@ sanity_checks() { echo -n 'virtualenv: ' virtualenv --version \ || fatal "No virtualenv. Try: apt-get install virtualenv (on ubuntu: python-virtualenv)" + echo -n 'ruby: ' + ruby -v \ + || fatal "No ruby. Install >=2.1.9 (using rbenv, rvm, or source)" + echo -n 'bundler: ' + bundle version \ + || fatal "No bundler. Try: gem install bundler" echo -n 'go: ' go version \ || fatal "No go binary. See http://golang.org/doc/install" diff --git a/services/api/Gemfile b/services/api/Gemfile index 5134fc4ce8..77605aadfc 100644 --- a/services/api/Gemfile +++ b/services/api/Gemfile @@ -9,6 +9,7 @@ group :test, :development do gem 'factory_girl_rails' gem 'database_cleaner' gem 'ruby-prof' + gem 'test-unit', '~> 3.0' # Note: "require: false" here tells bunder not to automatically # 'require' the packages during application startup. Installation is # still mandatory. @@ -17,9 +18,7 @@ group :test, :development do gem 'mocha', require: false end -# This might not be needed in :test and :development, but we load it -# anyway to make sure it always gets in Gemfile.lock and to help -# reveal install problems sooner rather than later. +# pg is the only supported database driver. gem 'pg' # Start using multi_json once we are on Rails 3.2; diff --git a/services/api/Gemfile.lock b/services/api/Gemfile.lock index 1fb4369c0e..ce31316188 100644 --- a/services/api/Gemfile.lock +++ b/services/api/Gemfile.lock @@ -1,12 +1,12 @@ GEM remote: https://rubygems.org/ specs: - actionmailer (3.2.17) - actionpack (= 3.2.17) + actionmailer (3.2.22.5) + actionpack (= 3.2.22.5) mail (~> 2.5.4) - actionpack (3.2.17) - activemodel (= 3.2.17) - activesupport (= 3.2.17) + actionpack (3.2.22.5) + activemodel (= 3.2.22.5) + activesupport (= 3.2.22.5) builder (~> 3.0.0) erubis (~> 2.7.0) journey (~> 1.0.4) @@ -14,18 +14,18 @@ GEM rack-cache (~> 1.2) rack-test (~> 0.6.1) sprockets (~> 2.2.1) - activemodel (3.2.17) - activesupport (= 3.2.17) + activemodel (3.2.22.5) + activesupport (= 3.2.22.5) builder (~> 3.0.0) - activerecord (3.2.17) - activemodel (= 3.2.17) - activesupport (= 3.2.17) + activerecord (3.2.22.5) + activemodel (= 3.2.22.5) + activesupport (= 3.2.22.5) arel (~> 3.0.2) tzinfo (~> 0.3.29) - activeresource (3.2.17) - activemodel (= 3.2.17) - activesupport (= 3.2.17) - activesupport (3.2.17) + activeresource (3.2.22.5) + activemodel (= 3.2.22.5) + activesupport (= 3.2.22.5) + activesupport (3.2.22.5) i18n (~> 0.6, >= 0.6.4) multi_json (~> 1.0) acts_as_api (0.4.2) @@ -73,7 +73,7 @@ GEM daemon_controller (1.2.0) database_cleaner (1.2.0) erubis (2.7.0) - eventmachine (1.0.3) + eventmachine (1.2.0.1) execjs (2.0.2) extlib (0.9.16) factory_girl (4.4.0) @@ -124,7 +124,7 @@ GEM mime-types (1.25.1) mocha (1.1.0) metaclass (~> 0.0.1) - multi_json (1.12.0) + multi_json (1.12.1) multipart-post (2.0.0) net-scp (1.2.0) net-ssh (>= 2.6.5) @@ -154,32 +154,33 @@ GEM pg_power (1.6.4) pg rails (~> 3.1) - polyglot (0.3.4) + polyglot (0.3.5) + power_assert (0.2.6) puma (2.8.2) rack (>= 1.1, < 2.0) - rack (1.4.5) - rack-cache (1.2) + rack (1.4.7) + rack-cache (1.6.1) rack (>= 0.4) rack-ssl (1.3.4) rack - rack-test (0.6.2) + rack-test (0.6.3) rack (>= 1.0) - rails (3.2.17) - actionmailer (= 3.2.17) - actionpack (= 3.2.17) - activerecord (= 3.2.17) - activeresource (= 3.2.17) - activesupport (= 3.2.17) + rails (3.2.22.5) + actionmailer (= 3.2.22.5) + actionpack (= 3.2.22.5) + activerecord (= 3.2.22.5) + activeresource (= 3.2.22.5) + activesupport (= 3.2.22.5) bundler (~> 1.0) - railties (= 3.2.17) - railties (3.2.17) - actionpack (= 3.2.17) - activesupport (= 3.2.17) + railties (= 3.2.22.5) + railties (3.2.22.5) + actionpack (= 3.2.22.5) + activesupport (= 3.2.22.5) rack-ssl (~> 1.3.2) rake (>= 0.8.7) rdoc (~> 3.4) thor (>= 0.14.6, < 2.0) - rake (10.2.2) + rake (11.3.0) rdoc (3.12.2) json (~> 1.4) ref (1.0.5) @@ -204,12 +205,14 @@ GEM simplecov-html (0.7.1) simplecov-rcov (0.2.3) simplecov (>= 0.4.1) - sprockets (2.2.2) + sprockets (2.2.3) hike (~> 1.2) multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) sshkey (1.6.1) + test-unit (3.1.5) + power_assert test_after_commit (0.2.3) themes_for_rails (0.5.1) rails (>= 3.0.0) @@ -222,7 +225,7 @@ GEM polyglot polyglot (>= 0.3.1) trollop (2.1.2) - tzinfo (0.3.39) + tzinfo (0.3.51) uglifier (2.5.0) execjs (>= 0.3.0) json (>= 1.8.0) @@ -261,8 +264,12 @@ DEPENDENCIES simplecov (~> 0.7.1) simplecov-rcov sshkey + test-unit (~> 3.0) test_after_commit themes_for_rails therubyracer trollop uglifier (>= 1.0.3) + +BUNDLED WITH + 1.13.2 diff --git a/services/api/test/websocket_runner.rb b/services/api/test/websocket_runner.rb deleted file mode 100644 index be32a0f299..0000000000 --- a/services/api/test/websocket_runner.rb +++ /dev/null @@ -1,53 +0,0 @@ -require 'bundler' -require 'socket' - -$ARV_API_SERVER_DIR = File.expand_path('../..', __FILE__) - -s = TCPServer.new('0.0.0.0', 0) -WEBSOCKET_PORT = s.addr[1] -s.close -SERVER_PID_PATH = "tmp/pids/passenger.#{WEBSOCKET_PORT}.pid" - -class WebsocketTestRunner < MiniTest::Unit - def _system(*cmd) - Bundler.with_clean_env do - if not system({'ARVADOS_WEBSOCKETS' => 'ws-only', 'RAILS_ENV' => 'test'}, *cmd) - raise RuntimeError, "Command failed with exit status #{$?}: #{cmd.inspect}" - end - end - end - - def _run(args=[]) - server_pid = Dir.chdir($ARV_API_SERVER_DIR) do |apidir| - # Only passenger seems to be able to run the websockets server successfully. - _system('passenger', 'start', '-d', "-p#{WEBSOCKET_PORT}") - timeout = Time.now.tv_sec + 10 - begin - sleep 0.2 - begin - server_pid = IO.read(SERVER_PID_PATH).to_i - good_pid = (server_pid > 0) and (Process.kill(0, pid) rescue false) - rescue Errno::ENOENT - good_pid = false - end - end while (not good_pid) and (Time.now.tv_sec < timeout) - if not good_pid - raise RuntimeError, "could not find API server Rails pid" - end - server_pid - end - begin - super(args) - ensure - Dir.chdir($ARV_API_SERVER_DIR) do - _system('passenger', 'stop', "-p#{WEBSOCKET_PORT}") - end - # DatabaseCleaner leaves the database empty. Prefer to leave it full. - dc = DatabaseController.new - dc.define_singleton_method :render do |*args| end - dc.reset - end - end -end - -MiniTest::Unit.runner = WebsocketTestRunner.new