summaryrefslogtreecommitdiff
path: root/spec/integration/core
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-05-08 18:15:13 -0600
committermo khan <mo.khan@gmail.com>2020-05-08 18:15:13 -0600
commit0c5bd320c420995a28003ad1ec898375d55e4bfb (patch)
tree8235f5bd7ede249f0f6f442419189709911b2d0e /spec/integration/core
parent1b111dde18fe7eed677a72136ed54544aede6de5 (diff)
Extract Datafile class
Diffstat (limited to 'spec/integration/core')
-rw-r--r--spec/integration/core/cache_spec.rb27
1 files changed, 22 insertions, 5 deletions
diff --git a/spec/integration/core/cache_spec.rb b/spec/integration/core/cache_spec.rb
index 941dea5..fe821f2 100644
--- a/spec/integration/core/cache_spec.rb
+++ b/spec/integration/core/cache_spec.rb
@@ -3,16 +3,18 @@
RSpec.describe Spandx::Core::Cache do
RSpec.shared_examples 'each data file' do |package_manager, key|
describe "#licenses_for (#{package_manager})" do
- subject { described_class.new(package_manager, root: "#{Spandx.git[key].root}/.index") }
+ subject { described_class.new(package_manager, root: root_dir) }
+
+ let(:root_dir) { "#{Spandx.git[key].root}/.index" }
(0x00..0xFF).map { |x| x.to_s(16).upcase.rjust(2, '0').downcase }.each do |hex|
context hex do
- let(:path) { subject.expand_path("#{hex}/#{package_manager}") }
+ let(:path) { File.join(root_dir, "#{hex}/#{package_manager}") }
it "is able to find all packages in the #{package_manager} index" do
CSV.foreach(path) do |row|
results = subject.licenses_for(row[0], row[1])
- expect(results).to match_array(row[2].split('-|-'))
+ expect(results).to match_array(row[2].split('-|-')), "Could not find #{row[0]}:#{row[1]}"
end
end
end
@@ -60,7 +62,7 @@ RSpec.describe Spandx::Core::Cache do
specify do
subject.insert('spandx', nil, ['MIT'])
- expect(subject.licenses_for(nil, '1.1.1')).to be_empty
+ expect(subject.licenses_for('spandx', nil)).to be_empty
end
specify do
@@ -70,7 +72,7 @@ RSpec.describe Spandx::Core::Cache do
specify do
subject.insert('spandx', '', ['MIT'])
- expect(subject.licenses_for('', '1.1.1')).to be_empty
+ expect(subject.licenses_for('spandx', '')).to be_empty
end
specify do
@@ -152,4 +154,19 @@ RSpec.describe Spandx::Core::Cache do
end
end
end
+
+ context 'when searching for a license' do
+ let(:root_dir) { "#{Spandx.git[:rubygems].root}/.index" }
+
+ xit 'does it quickly' do
+ subject = described_class.new('rubygems', root: root_dir)
+ result = RubyProf.profile do
+ subject.licenses_for('ABC', '0.0.0')
+ end
+ # printer = RubyProf::FlatPrinter.new(result)
+ # printer.print(STDOUT, {})
+ printer = RubyProf::GraphPrinter.new(result)
+ printer.print(STDOUT, {})
+ end
+ end
end