diff options
| author | mo khan <mo.khan@gmail.com> | 2020-08-19 12:52:44 -0600 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-08-19 13:36:03 -0600 |
| commit | 13f23838dcd280c3ed079ad5de51763068668935 (patch) | |
| tree | 8252c9c29227a77e2b59d4f0bdcadc0b2cc0a718 /spec/integration | |
| parent | 99a89248b2e6c08bf7a5c6c7950793b1418b9555 (diff) | |
test: add performance specs
Diffstat (limited to 'spec/integration')
| -rw-r--r-- | spec/integration/c/conan_spec.rb | 1 | ||||
| -rw-r--r-- | spec/integration/dotnet/nuget_spec.rb | 29 | ||||
| -rw-r--r-- | spec/integration/go/modules_spec.rb | 16 | ||||
| -rw-r--r-- | spec/integration/rust/cargo_spec.rb | 16 |
4 files changed, 35 insertions, 27 deletions
diff --git a/spec/integration/c/conan_spec.rb b/spec/integration/c/conan_spec.rb index 86025bd..52b7a39 100644 --- a/spec/integration/c/conan_spec.rb +++ b/spec/integration/c/conan_spec.rb @@ -15,6 +15,7 @@ RSpec.describe "conan" do end specify { expect(subject).to match_schema } + specify { expect { subject }.to perform_under(60).sec.warmup(0).times } specify { expect(subject.dependency_names).to match_array(%w[openssl poco]) } specify { expect(subject.licenses_for('openssl')).to match_array(['OpenSSL']) } specify { expect(subject.licenses_for('poco')).to match_array(['BSL-1.0']) } diff --git a/spec/integration/dotnet/nuget_spec.rb b/spec/integration/dotnet/nuget_spec.rb index 5bda5db..c72296e 100644 --- a/spec/integration/dotnet/nuget_spec.rb +++ b/spec/integration/dotnet/nuget_spec.rb @@ -3,6 +3,10 @@ require 'spec_helper' RSpec.describe "nuget" do + subject { runner.scan(env: env) } + + let(:env) { {} } + before do system("rm -fr /opt/gitlab/.nuget/packages") end @@ -28,13 +32,14 @@ RSpec.describe "nuget" do XML end - it 'produces a valid report' do + before do runner.add_file('packages.config', packages_config) - report = runner.scan + end - expect(report).to match_schema - expect(report[:licenses].count).not_to be_zero - expect(report.dependency_names).to match_array([ + it 'produces a valid report' do + expect(subject).to match_schema + expect(subject[:licenses].count).not_to be_zero + expect(subject.dependency_names).to match_array([ "Microsoft.CodeDom.Providers.DotNetCompilerPlatform", "Microsoft.Net.Compilers", "Microsoft.Web.Infrastructure", @@ -47,6 +52,8 @@ RSpec.describe "nuget" do "jive" ]) end + + specify { expect { subject }.to perform_under(60).sec.warmup(0).times } end context "when a project has multiple nuget packages.config in different sub directories" do @@ -80,8 +87,6 @@ RSpec.describe "nuget" do end context "when a project has a dependency that has indirect dependencies" do - subject { runner.scan } - before do runner.mount(dir: fixture_file('dotnet/nuget-transient-dependencies')) end @@ -103,8 +108,6 @@ RSpec.describe "nuget" do end context "when scanning a VB.NET project" do - subject { runner.scan } - before do runner.mount(dir: fixture_file('dotnet/nuget-vbproj')) end @@ -117,8 +120,6 @@ RSpec.describe "nuget" do end context "when scanning a F# project" do - subject { runner.scan } - before do runner.mount(dir: fixture_file('dotnet/nuget-fsproj')) end @@ -131,8 +132,6 @@ RSpec.describe "nuget" do end context "when scanning a solution file with multiple projects" do - subject { runner.scan } - before do runner.mount(dir: fixture_file('dotnet/nuget-sln')) end @@ -201,10 +200,6 @@ RSpec.describe "nuget" do end context "when fetching dependencies from a custom registry" do - subject { runner.scan(env: env) } - - let(:env) { {} } - before do add_host('nuget.test', '127.0.0.1') start_proxy_server diff --git a/spec/integration/go/modules_spec.rb b/spec/integration/go/modules_spec.rb index 3edef74..7d85b9f 100644 --- a/spec/integration/go/modules_spec.rb +++ b/spec/integration/go/modules_spec.rb @@ -3,6 +3,10 @@ require 'spec_helper' RSpec.describe "modules" do + subject { runner.scan(env: env) } + + let(:env) { {} } + before do # Delete go module cache system('rm -fr /opt/gitlab/.local/pkg') @@ -13,8 +17,6 @@ RSpec.describe "modules" do ['1.11', '1.12', '1.13', '1.14'].each do |version| context "when scanning a go.mod and go.sum files with v#{version}" do - subject { runner.scan } - before do runner.add_file('main.go', fixture_file_content('go/main.go')) runner.add_file('go.mod', fixture_file_content('go/go.mod')) @@ -53,8 +55,6 @@ RSpec.describe "modules" do end context "when scanning the `gitaly` project" do - subject { runner.scan } - before do runner.clone('https://gitlab.com/gitlab-org/gitaly.git') end @@ -64,11 +64,11 @@ RSpec.describe "modules" do expect(subject[:licenses]).not_to be_empty expect(subject[:dependencies]).not_to be_empty end + + specify { expect { subject }.to perform_under(60).sec.warmup(0).times } end context "when scanning the `gitlab-runner` project" do - subject { runner.scan } - before do runner.clone('https://gitlab.com/gitlab-org/gitlab-runner.git') end @@ -82,8 +82,6 @@ RSpec.describe "modules" do end context "when scanning a project with vendored modules" do - subject { runner.scan } - before do runner.mount(dir: fixture_file('go/1.14-vendored-modules')) end @@ -108,8 +106,6 @@ RSpec.describe "modules" do end context "when scanning a project sourced from a TLS endpoint with a X.509 certificate signed by a private authority" do - subject { runner.scan(env: env) } - before do add_host('goproxy.test', '127.0.0.1') start_proxy_server diff --git a/spec/integration/rust/cargo_spec.rb b/spec/integration/rust/cargo_spec.rb index 3ab010d..a0f2550 100644 --- a/spec/integration/rust/cargo_spec.rb +++ b/spec/integration/rust/cargo_spec.rb @@ -7,6 +7,11 @@ RSpec.describe "cargo" do let(:env) { {} } + before do + install_dir = '/opt/asdf/installs/rust' + system("rm -r #{install_dir}") if Dir.exist?(install_dir) + end + context "when scanning a cargo project" do before do runner.mount(dir: fixture_file('rust/cargo/hello_world')) @@ -57,4 +62,15 @@ RSpec.describe "cargo" do expect(subject.dependency_names).not_to include('pretty_assertions') end end + + context "when scanning https://gitlab.com/inko-lang/inko.git" do + let(:env) { { 'LICENSE_FINDER_CLI_OPTS' => '--aggregate-paths=vm compiler' } } + + before do + runner.clone('https://gitlab.com/inko-lang/inko.git') + end + + specify { expect(subject).to match_schema } + specify { expect { subject }.to perform_under(60).sec.warmup(0).times } + end end |
