X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/900b548097c68649ae2874ded5849f1d8164384c..b4b8e120c8ac43a16513079e2ae9f46bcdb9c35d:/services/api/test/integration/collections_performance_test.rb diff --git a/services/api/test/integration/collections_performance_test.rb b/services/api/test/integration/collections_performance_test.rb index 892060a199..b925fbf77e 100644 --- a/services/api/test/integration/collections_performance_test.rb +++ b/services/api/test/integration/collections_performance_test.rb @@ -1,3 +1,8 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + +require 'safe_json' require 'test_helper' require 'helpers/manifest_examples' require 'helpers/time_block' @@ -5,7 +10,7 @@ require 'helpers/time_block' class CollectionsApiPerformanceTest < ActionDispatch::IntegrationTest include ManifestExamples - test "crud cycle for a collection with a big manifest" do + slow_test "crud cycle for a collection with a big manifest" do bigmanifest = time_block 'make example' do make_manifest(streams: 100, files_per_stream: 100, @@ -14,27 +19,49 @@ class CollectionsApiPerformanceTest < ActionDispatch::IntegrationTest api_token: api_token(:active)) end json = time_block "JSON encode #{bigmanifest.length>>20}MiB manifest" do - Oj.dump({manifest_text: bigmanifest}) + SafeJSON.dump({"manifest_text" => bigmanifest}) end time_block 'create' do - post '/arvados/v1/collections', {collection: json}, auth(:active) + post '/arvados/v1/collections', + params: {collection: json}, + headers: auth(:active) assert_response :success end uuid = json_response['uuid'] time_block 'read' do - get '/arvados/v1/collections/' + uuid, {}, auth(:active) + get '/arvados/v1/collections/' + uuid, params: {}, headers: auth(:active) assert_response :success end time_block 'list' do - get '/arvados/v1/collections', {select: ['manifest_text'], filters: [['uuid', '=', uuid]].to_json}, auth(:active) + get '/arvados/v1/collections', + params: {select: ['manifest_text'], filters: [['uuid', '=', uuid]].to_json}, + headers: auth(:active) assert_response :success end time_block 'update' do - put '/arvados/v1/collections/' + uuid, {collection: json}, auth(:active) + put '/arvados/v1/collections/' + uuid, + params: {collection: json}, + headers: auth(:active) assert_response :success end time_block 'delete' do - delete '/arvados/v1/collections/' + uuid, {}, auth(:active) + delete '/arvados/v1/collections/' + uuid, params: {}, headers: auth(:active) + end + end + + slow_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)) + json = time_block "JSON encode #{hugemanifest.length>>20}MiB manifest" do + SafeJSON.dump({manifest_text: hugemanifest}) + end + vmpeak "post" do + post '/arvados/v1/collections', + params: {collection: json}, + headers: auth(:active) end end end