14807: Merge branch 'master'
[arvados.git] / services / api / test / unit / collection_performance_test.rb
index d3e755d382a59c91b7135c2dd9ce3dca3365e1b2..4efc947dd251d131b6746ca0059be95ac459db8a 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 require 'test_helper'
 require 'helpers/manifest_examples'
 require 'helpers/time_block'
@@ -8,22 +12,21 @@ class CollectionModelPerformanceTest < ActiveSupport::TestCase
   setup do
     # The Collection model needs to have a current token, not just a
     # current user, to sign & verify manifests:
-    Thread.current[:api_client_authorization] =
-      api_client_authorizations(:active)
+    Thread.current[:token] = api_client_authorizations(:active).token
   end
 
   teardown do
-    Thread.current[:api_client_authorization] = nil
+    Thread.current[:token] = nil
   end
 
-  # "create read render update delete", not a typo
-  test "crrud cycle for a collection with a big manifest)" do
+  # "crrud" == "create read render update delete", not a typo
+  slow_test "crrud cycle for a collection with a big manifest)" do
     bigmanifest = time_block 'make example' do
       make_manifest(streams: 100,
                     files_per_stream: 100,
-                    blocks_per_file: 10,
+                    blocks_per_file: 20,
                     bytes_per_block: 2**26,
-                    api_token: api_token(:active))
+                    api_token: api_client_authorizations(:active).token)
     end
     act_as_user users(:active) do
       c = time_block "new (manifest_text is #{bigmanifest.length>>20}MiB)" do
@@ -33,6 +36,7 @@ class CollectionModelPerformanceTest < ActiveSupport::TestCase
         c.check_signatures
       end
       time_block 'check signatures + save' do
+        c.instance_eval do @signatures_checked = false end
         c.save!
       end
       c = time_block 'read' do
@@ -42,10 +46,10 @@ class CollectionModelPerformanceTest < ActiveSupport::TestCase
         c.signed_manifest_text
       end
       time_block 'sign + render' do
-        resp = c.as_api_response(nil)
+        c.as_api_response(nil)
       end
       loc = Blob.sign_locator(Digest::MD5.hexdigest('foo') + '+3',
-                              api_token: api_token(:active))
+                              api_token: api_client_authorizations(:active).token)
       # Note Collection's strip_manifest_text method has now removed
       # the signatures from c.manifest_text, so we have to start from
       # bigmanifest again here instead of just appending with "+=".