diff options
Diffstat (limited to 'spec/integration')
| -rw-r--r-- | spec/integration/c/conan_spec.rb | 62 | ||||
| -rw-r--r-- | spec/integration/dotnet/examples_spec.rb | 2 | ||||
| -rw-r--r-- | spec/integration/dotnet/nuget_spec.rb | 6 | ||||
| -rw-r--r-- | spec/integration/go/modules_spec.rb | 4 | ||||
| -rw-r--r-- | spec/integration/java/gradle_spec.rb | 14 | ||||
| -rw-r--r-- | spec/integration/java/maven_spec.rb | 10 | ||||
| -rw-r--r-- | spec/integration/js/bower_spec.rb | 6 | ||||
| -rw-r--r-- | spec/integration/js/npm_spec.rb | 10 | ||||
| -rw-r--r-- | spec/integration/js/yarn_spec.rb | 4 | ||||
| -rw-r--r-- | spec/integration/php/composer_spec.rb | 2 | ||||
| -rw-r--r-- | spec/integration/python/pip_spec.rb | 6 | ||||
| -rw-r--r-- | spec/integration/python/pipenv_spec.rb | 12 | ||||
| -rw-r--r-- | spec/integration/ruby/bundler_spec.rb | 8 |
13 files changed, 104 insertions, 42 deletions
diff --git a/spec/integration/c/conan_spec.rb b/spec/integration/c/conan_spec.rb new file mode 100644 index 0000000..b8375e0 --- /dev/null +++ b/spec/integration/c/conan_spec.rb @@ -0,0 +1,62 @@ +require 'spec_helper' + +RSpec.describe "conan" do + context "when scanning a C++ project" do + subject { runner.scan(env: env) } + + let(:env) { { 'LICENSE_FINDER_CLI_OPTS' => '--project-path=libraries/poco/md5' } } + + before do + runner.clone('https://github.com/conan-io/examples.git') + end + + specify { expect(subject).to match_schema } + 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']) } + end + + context "when scanning a folly project" do + subject { runner.scan(env: env) } + + let(:env) { { 'LICENSE_FINDER_CLI_OPTS' => '--project-path=libraries/folly/basic' } } + + before do + runner.clone('https://github.com/conan-io/examples.git') + end + + specify { expect(subject).to match_schema } + specify { expect(subject.licenses_for('boost')).to match_array(['BSL-1.0']) } + specify { expect(subject.licenses_for('bzip2')).to match_array(['bzip2-1.0.8']) } + specify { expect(subject.licenses_for('double-conversion')).to match_array(['BSD-3-Clause']) } + specify { expect(subject.licenses_for('folly')).to match_array(['Apache-2.0']) } + specify { expect(subject.licenses_for('gflags')).to match_array(['BSD-3-Clause']) } + specify { expect(subject.licenses_for('glog')).to match_array(['BSD-3-Clause']) } + specify { expect(subject.licenses_for('libdwarf')).to match_array(['LGPL-2.1']) } + specify { expect(subject.licenses_for('libelf')).to match_array(['LGPL-2.0']) } + specify { expect(subject.licenses_for('libevent')).to match_array(['BSD-3-Clause']) } + specify { expect(subject.licenses_for('libiberty')).to match_array(['LGPL-2.1']) } + specify { expect(subject.licenses_for('libsodium')).to match_array(['ISC']) } + specify { expect(subject.licenses_for('libunwind')).to match_array(['MIT']) } + specify { expect(subject.licenses_for('lz4')).to match_array(['BSD-2-Clause', 'BSD-3-Clause']) } + specify { expect(subject.licenses_for('openssl')).to match_array(['OpenSSL']) } + specify { expect(subject.licenses_for('snappy')).to match_array(['BSD-3-Clause']) } + specify { expect(subject.licenses_for('zlib')).to match_array(['Zlib']) } + specify { expect(subject.licenses_for('zstd')).to match_array(['BSD-3-Clause']) } + end + + context "when scanning a project with cmake" do + subject { runner.scan(env: env) } + + let(:env) { { 'LICENSE_FINDER_CLI_OPTS' => '--project-path=libraries/protobuf/serialization' } } + + before do + runner.clone('https://github.com/conan-io/examples.git') + end + + specify { expect(subject).to match_schema } + specify { expect(subject.dependency_names).to match_array(%w[protobuf protoc_installer]) } + specify { expect(subject.licenses_for('protobuf')).to match_array(['BSD-3-Clause']) } + specify { expect(subject.licenses_for('protoc_installer')).to match_array(['BSD-3-Clause']) } + end +end diff --git a/spec/integration/dotnet/examples_spec.rb b/spec/integration/dotnet/examples_spec.rb index 13f4712..8b325b7 100644 --- a/spec/integration/dotnet/examples_spec.rb +++ b/spec/integration/dotnet/examples_spec.rb @@ -5,7 +5,7 @@ RSpec.describe ".NET Core" do runner.clone('https://github.com/microsoft/RockPaperScissorsLizardSpock.git') report = runner.scan(env: { 'LICENSE_FINDER_CLI_OPTS' => '--recursive' }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses].count).not_to be_zero expect(report[:dependencies].count).not_to be_zero end diff --git a/spec/integration/dotnet/nuget_spec.rb b/spec/integration/dotnet/nuget_spec.rb index 6eeb261..c97c352 100644 --- a/spec/integration/dotnet/nuget_spec.rb +++ b/spec/integration/dotnet/nuget_spec.rb @@ -26,7 +26,7 @@ RSpec.describe "nuget" do runner.add_file('packages.config', packages_config) report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses].count).not_to be_zero expect(report.dependency_names).to match_array([ "Microsoft.CodeDom.Providers.DotNetCompilerPlatform", @@ -67,7 +67,7 @@ RSpec.describe "nuget" do runner.add_file('winforms/packages.config', winforms_packages) report = runner.scan(env: { 'LICENSE_FINDER_CLI_OPTS' => '--recursive' }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report.licenses_for('jive')).to match_array(['MIT']) expect(report.licenses_for('MvcMailer')).to match_array(['MIT']) end @@ -87,7 +87,7 @@ RSpec.describe "nuget" do runner.add_file('packages.config', packages) report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses].count).not_to be_zero expect(report[:licenses].map { |x| x[:id] }.uniq).to match_array(['LGPL-2.1', 'Apache-2.0', 'BSD-3-Clause']) expect(report.dependency_names).to match_array([ diff --git a/spec/integration/go/modules_spec.rb b/spec/integration/go/modules_spec.rb index d8e4e48..66dadb0 100644 --- a/spec/integration/go/modules_spec.rb +++ b/spec/integration/go/modules_spec.rb @@ -14,7 +14,7 @@ RSpec.describe "modules" do runner.add_file('.tool-versions', "golang #{version}") end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject[:licenses]).not_to be_empty } specify do @@ -51,7 +51,7 @@ RSpec.describe "modules" do runner.clone('https://gitlab.com/gitlab-org/gitaly.git') end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject[:licenses]).not_to be_empty } specify { expect(subject[:dependencies]).not_to be_empty } end diff --git a/spec/integration/java/gradle_spec.rb b/spec/integration/java/gradle_spec.rb index d2ddaf1..25336c1 100644 --- a/spec/integration/java/gradle_spec.rb +++ b/spec/integration/java/gradle_spec.rb @@ -19,7 +19,7 @@ plugins { runner.add_file('build.gradle', content) report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses]).to be_empty expect(report[:dependencies]).to be_empty end @@ -34,7 +34,7 @@ plugins { end it 'is able to detect licenses' do - expect(result).to match_schema(version: '2.0') + expect(result).to match_schema expect(result[:licenses]).not_to be_empty [ @@ -61,7 +61,7 @@ plugins { runner.mount(dir: fixture_file('java/gradle/offline-environment/')) end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify do expect(subject.dependency_names).to match_array([ @@ -102,7 +102,7 @@ plugins { runner.add_file('build.gradle', fixture_file_content("java/11/build.gradle")) end - specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report).to match_schema } specify { expect { report }.to change { Dir.glob("#{runner.project_path}/build/reports/profile/profile-*.html").count }.from(0).to(1) } specify { expect(report.dependency_names).to match_array(['postgresql']) } specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } @@ -117,7 +117,7 @@ plugins { it 'returns an empty report because the plugin we use does not work in this version of the gradle API' do report = runner.scan(env: { 'LM_JAVA_VERSION' => '8' }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:dependencies]).to be_empty expect(report[:licenses]).to be_empty end @@ -133,7 +133,7 @@ plugins { runner.add_file('settings.gradle.kts', 'rootProject.name = "example"') end - specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report).to match_schema } specify { expect(report.dependency_names).to match_array(['postgresql']) } specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } end @@ -153,7 +153,7 @@ plugins { runner.add_file('settings.gradle', 'rootProject.name = "example"') end - specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report).to match_schema } specify { expect(report.dependency_names).to match_array(['postgresql']) } specify { expect(report.licenses_for('postgresql')).to match_array(['BSD-2-Clause']) } end diff --git a/spec/integration/java/maven_spec.rb b/spec/integration/java/maven_spec.rb index d45c99d..fa57752 100644 --- a/spec/integration/java/maven_spec.rb +++ b/spec/integration/java/maven_spec.rb @@ -12,7 +12,7 @@ RSpec.describe "maven" do 'CI_PROJECT_ID' => '6130122' }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report.dependency_names).to match_array(['example']) expect(report.licenses_for('example')).to match_array(['MIT']) end @@ -26,7 +26,7 @@ RSpec.describe "maven" do 'MAVEN_CLI_OPTS' => "--settings my_settings.xml" }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:dependencies]).to match_array([{ name: 'example', url: '', description: '', paths: ['.'], licenses: ['MIT'] }]) end end @@ -45,7 +45,7 @@ RSpec.describe "maven" do 'SETUP_CMD' => 'bash custom.sh' }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema end end @@ -57,7 +57,7 @@ RSpec.describe "maven" do it 'detects dependences from each module' do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:dependencies]).not_to be_empty [ @@ -96,7 +96,7 @@ RSpec.describe "maven" do end end - specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report).to match_schema } specify { expect(report.dependency_names).to match_array(['jackson-core']) } specify { expect(report.licenses_for('jackson-core')).to match_array(['Apache-2.0']) } end diff --git a/spec/integration/js/bower_spec.rb b/spec/integration/js/bower_spec.rb index e6d9012..5a4f72d 100644 --- a/spec/integration/js/bower_spec.rb +++ b/spec/integration/js/bower_spec.rb @@ -10,7 +10,7 @@ RSpec.describe "bower" do runner.add_file('bower.json', fixture_file_content('js/bower/bower.json')) end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).to match_array(['cli', 'ev-emitter', 'example-project', 'fizzy-ui-utils', 'get-size', 'jquery', 'masonry-layout', 'matches-selector', 'outlayer', 'stimulus.umd']) } specify { expect(subject.licenses_for('cli')).to match_array(['Apache-2.0', 'BSD-3-Clause', 'ISC', 'MIT']) } specify { expect(subject.licenses_for('ev-emitter')).to match_array(['MIT']) } @@ -41,7 +41,7 @@ RSpec.describe "bower" do end end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).to match_array(%w[js-bower lodash]) } specify { expect(subject.licenses_for('js-bower')).to match_array(['ISC']) } specify { expect(subject.licenses_for('lodash')).to match_array(['MIT']) } @@ -59,7 +59,7 @@ RSpec.describe "bower" do runner.clone(git_repo) end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).not_to be_empty } end end diff --git a/spec/integration/js/npm_spec.rb b/spec/integration/js/npm_spec.rb index 0658df6..13cbd15 100644 --- a/spec/integration/js/npm_spec.rb +++ b/spec/integration/js/npm_spec.rb @@ -15,7 +15,7 @@ RSpec.describe "npm" do end end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).to match_array(['example']) } end @@ -26,7 +26,7 @@ RSpec.describe "npm" do runner.mount(dir: fixture_file('js/single-declared-dependency')) end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify do [ @@ -173,7 +173,7 @@ RSpec.describe "npm" do runner.add_file('package.json', fixture_file_content('js/single-declared-dependency/package.json')) end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify do [ @@ -328,7 +328,7 @@ RSpec.describe "npm" do end end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } [ ["2md", "0.0.4", ["Apache-2.0"]], @@ -497,7 +497,7 @@ RSpec.describe "npm" do end end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).to match_array(%w[js-npm lodash]) } specify { expect(subject.licenses_for('js-npm')).to match_array(['MIT']) } specify { expect(subject.licenses_for('lodash')).to match_array(['MIT']) } diff --git a/spec/integration/js/yarn_spec.rb b/spec/integration/js/yarn_spec.rb index 1e0eb52..a5a9695 100644 --- a/spec/integration/js/yarn_spec.rb +++ b/spec/integration/js/yarn_spec.rb @@ -11,7 +11,7 @@ RSpec.describe "yarn" do runner.add_file("yarn.lock", fixture_file_content('js/yarn/single-declared-dependency/yarn.lock')) end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify do [ @@ -182,7 +182,7 @@ lodash@4.17.10: end end - specify { expect(subject).to match_schema(version: '2.0') } + specify { expect(subject).to match_schema } specify { expect(subject.dependency_names).to match_array(%w[lodash]) } specify { expect(subject.licenses_for('lodash')).to match_array(['MIT']) } end diff --git a/spec/integration/php/composer_spec.rb b/spec/integration/php/composer_spec.rb index 62ff598..c186285 100644 --- a/spec/integration/php/composer_spec.rb +++ b/spec/integration/php/composer_spec.rb @@ -10,7 +10,7 @@ RSpec.describe "composer" do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:version]).not_to be_empty expect(report[:licenses]).not_to be_empty expect(report.dependency_names).to match_array(%w[ diff --git a/spec/integration/python/pip_spec.rb b/spec/integration/python/pip_spec.rb index 8e3ec3d..f47bbe6 100644 --- a/spec/integration/python/pip_spec.rb +++ b/spec/integration/python/pip_spec.rb @@ -9,7 +9,7 @@ RSpec.describe "pip" do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:version]).to start_with('2') expect(report.dependency_names).to include("sentry-sdk") expect(report.licenses_for('sentry-sdk')).to match_array(["BSD-4-Clause"]) @@ -37,7 +37,7 @@ RSpec.describe "pip" do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:version]).to start_with('2') expect(report[:licenses]).not_to be_empty expect(report[:dependencies]).not_to be_empty @@ -45,7 +45,7 @@ RSpec.describe "pip" do end [{ version: '2', commit: '04dce91b' }, { version: '3', commit: '48e250a1' }].each do |python| - ['1.0', '1.1', '2.0'].each do |report_version| + ['1.0', '1.1', '2.0', '2.1'].each do |report_version| context "when generating a `#{report_version}` report using Python `#{python[:version]}`" do let(:url) { "https://gitlab.com/gitlab-org/security-products/tests/#{language}-#{package_manager}.git" } let(:language) { 'python' } diff --git a/spec/integration/python/pipenv_spec.rb b/spec/integration/python/pipenv_spec.rb index b54ee99..ccc2585 100644 --- a/spec/integration/python/pipenv_spec.rb +++ b/spec/integration/python/pipenv_spec.rb @@ -24,7 +24,7 @@ RSpec.describe "pipenv" do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:version]).not_to be_empty expect(report[:licenses]).not_to be_empty expect(report.dependency_names).to contain_exactly("six") @@ -69,7 +69,7 @@ RSpec.describe "pipenv" do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:version]).not_to be_empty expect(report[:licenses]).not_to be_empty expect(report.dependency_names).to match_array([ @@ -129,7 +129,7 @@ RSpec.describe "pipenv" do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:version]).not_to be_empty expect(report[:licenses]).not_to be_empty expect(report.dependency_names).to match_array(%w[ @@ -165,7 +165,7 @@ RSpec.describe "pipenv" do it 'produces a valid report' do report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses]).not_to be_empty expect(report[:dependencies].count).to be(1) expect(report.find('six')).not_to be_nil @@ -185,7 +185,7 @@ RSpec.describe "pipenv" do context "when scanning a Python #{version} project" do let(:report) { runner.scan(env: { 'LM_PYTHON_VERSION' => version.to_s }) } - specify { expect(report).to match_schema(version: '2.0') } + specify { expect(report).to match_schema } it 'includes dependencies in the default group' do lockfile_hash['default'].keys.each do |key| @@ -217,7 +217,7 @@ RSpec.describe "pipenv" do 'PIP_INDEX_URL' => index_url }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report.dependency_names).to include('requests') end end diff --git a/spec/integration/ruby/bundler_spec.rb b/spec/integration/ruby/bundler_spec.rb index 5236adf..f0464fe 100644 --- a/spec/integration/ruby/bundler_spec.rb +++ b/spec/integration/ruby/bundler_spec.rb @@ -15,7 +15,7 @@ gem 'saml-kit' end report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses]).not_to be_empty expect(report[:dependencies].map { |x| x[:name] }).to include("saml-kit") end @@ -83,7 +83,7 @@ BUNDLED WITH report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses]).not_to be_empty expect(report.dependency_names).to include("saml-kit") end @@ -118,7 +118,7 @@ BUNDLED WITH report = runner.scan - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema expect(report[:licenses]).not_to be_empty expect(report.find('net-hippie')).to eql({ name: 'net-hippie', @@ -136,7 +136,7 @@ BUNDLED WITH 'LICENSE_FINDER_CLI_OPTS' => "--debug --aggregate-paths=. ruby" }) - expect(report).to match_schema(version: '2.0') + expect(report).to match_schema end end end |
