diff options
author | Nick Thomas <nick@gitlab.com> | 2019-05-09 15:06:54 +0100 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2019-05-09 15:06:54 +0100 |
commit | 8bd6d0cf8b7e0fa010a57a3c7862318ec5b884f9 (patch) | |
tree | c27005bcb175e336b9f085b6fd00abb362b9a889 /spec/support | |
parent | 269110b9bbce21cac2b5ef328e5e20618bd5181f (diff) | |
download | gitlab-ce-8bd6d0cf8b7e0fa010a57a3c7862318ec5b884f9.tar.gz |
Whitelist Gitaly N+1 for forking in tests
This helper is right on the limit of the number of calls being made.
When the request store is enabled, and Sidekiq is running in inline
mode, just a couple of additional actions result in it being pushed
over the line.
The operation is entirely artificial, since in reality we'd perform
these requests in multiple separate processes, so just whitelist it
for now.
Diffstat (limited to 'spec/support')
-rw-r--r-- | spec/support/helpers/project_forks_helper.rb | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/spec/support/helpers/project_forks_helper.rb b/spec/support/helpers/project_forks_helper.rb index 9a86560da2a..bcb11a09b36 100644 --- a/spec/support/helpers/project_forks_helper.rb +++ b/spec/support/helpers/project_forks_helper.rb @@ -1,5 +1,11 @@ module ProjectForksHelper def fork_project(project, user = nil, params = {}) + Gitlab::GitalyClient.allow_n_plus_1_calls do + fork_project_direct(project, user, params) + end + end + + def fork_project_direct(project, user = nil, params = {}) # Load the `fork_network` for the project to fork as there might be one that # wasn't loaded yet. project.reload unless project.fork_network @@ -44,11 +50,16 @@ module ProjectForksHelper end def fork_project_with_submodules(project, user = nil, params = {}) - forked_project = fork_project(project, user, params) - TestEnv.copy_repo(forked_project, - bare_repo: TestEnv.forked_repo_path_bare, - refs: TestEnv::FORKED_BRANCH_SHA) - forked_project.repository.after_import - forked_project + Gitlab::GitalyClient.allow_n_plus_1_calls do + forked_project = fork_project_direct(project, user, params) + TestEnv.copy_repo( + forked_project, + bare_repo: TestEnv.forked_repo_path_bare, + refs: TestEnv::FORKED_BRANCH_SHA + ) + forked_project.repository.after_import + + forked_project + end end end |