9017: Skip some slow API server tests in --short mode.
authorTom Clegg <tom@curoverse.com>
Thu, 5 May 2016 14:09:07 +0000 (10:09 -0400)
committerTom Clegg <tom@curoverse.com>
Thu, 5 May 2016 14:09:07 +0000 (10:09 -0400)
build/run-tests.sh
services/api/test/integration/collections_performance_test.rb
services/api/test/integration/database_reset_test.rb
services/api/test/integration/websocket_test.rb
services/api/test/test_helper.rb
services/api/test/unit/collection_performance_test.rb

index d656d91c47bcc5d3a92578089272cb5d83406c7b..d22934199f651840a65ed03255b6e4d03332d181 100755 (executable)
@@ -754,7 +754,7 @@ stop_services
 test_apiserver() {
     rm -f "$WORKSPACE/services/api/git-commit.version"
     cd "$WORKSPACE/services/api" \
-        && RAILS_ENV=test bundle exec rake test TESTOPTS=-v ${testargs[services/api]}
+        && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test TESTOPTS=-v ${testargs[services/api]}
 }
 do_test services/api apiserver
 
@@ -800,21 +800,21 @@ done
 test_workbench() {
     start_nginx_proxy_services \
         && cd "$WORKSPACE/apps/workbench" \
-        && RAILS_ENV=test bundle exec rake test TESTOPTS=-v ${testargs[apps/workbench]}
+        && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test TESTOPTS=-v ${testargs[apps/workbench]}
 }
 do_test apps/workbench workbench
 
 test_workbench_benchmark() {
     start_nginx_proxy_services \
         && cd "$WORKSPACE/apps/workbench" \
-        && RAILS_ENV=test bundle exec rake test:benchmark ${testargs[apps/workbench_benchmark]}
+        && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test:benchmark ${testargs[apps/workbench_benchmark]}
 }
 do_test apps/workbench_benchmark workbench_benchmark
 
 test_workbench_profile() {
     start_nginx_proxy_services \
         && cd "$WORKSPACE/apps/workbench" \
-        && RAILS_ENV=test bundle exec rake test:profile ${testargs[apps/workbench_profile]}
+        && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test:profile ${testargs[apps/workbench_profile]}
 }
 do_test apps/workbench_profile workbench_profile
 
index 77a26e5b21af35c401fa8ac301a70db9fdd2a22e..a952c202cb7dbadf73fae734ca0141d000ac5cde 100644 (file)
@@ -6,6 +6,7 @@ class CollectionsApiPerformanceTest < ActionDispatch::IntegrationTest
   include ManifestExamples
 
   test "crud cycle for a collection with a big manifest" do
+    slow_test
     bigmanifest = time_block 'make example' do
       make_manifest(streams: 100,
                     files_per_stream: 100,
@@ -39,16 +40,17 @@ class CollectionsApiPerformanceTest < ActionDispatch::IntegrationTest
   end
 
   test "memory usage" do
-     hugemanifest = make_manifest(streams: 1,
-                                  files_per_stream: 2000,
-                                  blocks_per_file: 200,
-                                  bytes_per_block: 2**26,
-                                  api_token: api_token(:active))
+    slow_test
+    hugemanifest = make_manifest(streams: 1,
+                                 files_per_stream: 2000,
+                                 blocks_per_file: 200,
+                                 bytes_per_block: 2**26,
+                                 api_token: api_token(:active))
     json = time_block "JSON encode #{hugemanifest.length>>20}MiB manifest" do
       Oj.dump({manifest_text: hugemanifest})
     end
-     vmpeak "post" do
-       post '/arvados/v1/collections', {collection: json}, auth(:active)
-     end
+    vmpeak "post" do
+      post '/arvados/v1/collections', {collection: json}, auth(:active)
+    end
   end
 end
index 58f2abf69709d62f63989aca05ee5cb4a26e869c..ecb2f2a05831a44a7798fd98d048a821878fd11a 100644 (file)
@@ -4,6 +4,7 @@ class DatabaseResetTest < ActionDispatch::IntegrationTest
   self.use_transactional_fixtures = false
 
   test "reset fails when Rails.env != 'test'" do
+    slow_test
     rails_env_was = Rails.env
     begin
       Rails.env = 'production'
@@ -22,6 +23,7 @@ class DatabaseResetTest < ActionDispatch::IntegrationTest
   end
 
   test "database reset doesn't break basic CRUD operations" do
+    slow_test
     active_auth = auth(:active)
     admin_auth = auth(:admin)
 
@@ -48,6 +50,7 @@ class DatabaseResetTest < ActionDispatch::IntegrationTest
   end
 
   test "roll back database change" do
+    slow_test
     active_auth = auth(:active)
     admin_auth = auth(:admin)
 
index 313a22d8f883202361aa12a3502dcf3f496a0764..d1b8c34a43be5df0736475996b378002e87b6baa 100644 (file)
@@ -323,6 +323,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "connect, subscribe, get event, unsubscribe" do
+    slow_test
     state = 1
     spec = nil
     spec_ev_uuid = nil
@@ -372,6 +373,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "connect, subscribe, get event, unsubscribe with filter" do
+    slow_test
     state = 1
     spec = nil
     spec_ev_uuid = nil
@@ -421,6 +423,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
 
 
   test "connect, subscribe, get event, try to unsubscribe with bogus filter" do
+    slow_test
     state = 1
     spec = nil
     spec_ev_uuid = nil
@@ -473,6 +476,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
 
 
   test "connected, not subscribed, no event" do
+    slow_test
     authorize_with :admin
 
     ws_helper :admin, false do |ws|
@@ -493,6 +497,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "connected, not authorized to see event" do
+    slow_test
     state = 1
 
     authorize_with :admin
@@ -608,6 +613,7 @@ class WebsocketTest < ActionDispatch::IntegrationTest
   end
 
   test "connect, subscribe, lots of events" do
+    slow_test
     state = 1
     event_count = 0
     log_start = Log.order(:id).last.id
index 881a0807720f8fdacb1c095a9b12e7e5d8dbefb5..25ab286a23099f4125aaf1cce65a24450804e051 100644 (file)
@@ -106,6 +106,10 @@ class ActiveSupport::TestCase
     ArvadosApiToken.new.call("rack.input" => "",
                              "HTTP_AUTHORIZATION" => "OAuth2 #{t}")
   end
+
+  def slow_test
+    skip "RAILS_TEST_SHORT is set" unless (ENV['RAILS_TEST_SHORT'] || '').empty?
+  end
 end
 
 class ActionController::TestCase
index 37da5fddde9da8a0d0e34f7d292394c3ffe4cf87..1c6e4f2db2c0dfafcde3d7fba519fe8e4431cf6b 100644 (file)
@@ -18,6 +18,7 @@ class CollectionModelPerformanceTest < ActiveSupport::TestCase
 
   # "crrud" == "create read render update delete", not a typo
   test "crrud cycle for a collection with a big manifest)" do
+    slow_test
     bigmanifest = time_block 'make example' do
       make_manifest(streams: 100,
                     files_per_stream: 100,