summaryrefslogtreecommitdiff
path: root/spec/integration/core
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-05-09 16:41:55 -0600
committermo khan <mo.khan@gmail.com>2020-05-09 16:41:55 -0600
commite88e2140710d399d0a896c18c8cd7e96ec01c514 (patch)
treec3030bce6dc2a7209f04f15cacecebe99a3bb025 /spec/integration/core
parentd4c91383d6112c104b3c02909abe5b6609d7018b (diff)
Work on optimize data retrieval from cache
Diffstat (limited to 'spec/integration/core')
-rw-r--r--spec/integration/core/cache_spec.rb41
1 files changed, 14 insertions, 27 deletions
diff --git a/spec/integration/core/cache_spec.rb b/spec/integration/core/cache_spec.rb
index f442fff..06cdfa3 100644
--- a/spec/integration/core/cache_spec.rb
+++ b/spec/integration/core/cache_spec.rb
@@ -2,21 +2,23 @@
RSpec.describe Spandx::Core::Cache do
RSpec.shared_examples 'each data file' do |package_manager, key|
- describe "#licenses_for (#{package_manager})" do
+ describe "#licenses_for(#{package_manager})" do
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) { File.join(root_dir, "#{hex}/#{package_manager}") }
+ it 'finds each package quickly' do
+ subject.take(10).each do |item|
+ expect do
+ subject.licenses_for(item[0], item[1])
+ end.to perform_under(0.005).sample(10)
+ end
+ end
- 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('-|-')), "Could not find #{row[0]}:#{row[1]}"
- end
- end
+ it 'finds each package correctly' do
+ subject.take(100).each do |item|
+ result = subject.licenses_for(item[0], item[1])
+ expect(result).to match_array([item[2]].reject(&:nil?).reject(&:empty?)), "Could not find #{item[0]}:#{item[1]}"
end
end
@@ -67,7 +69,7 @@ RSpec.describe Spandx::Core::Cache do
specify do
subject.insert('spandx', nil, ['MIT'])
- expect(File.exist?(File.join(root_dir, 'cf'))).to be(false)
+ expect(File.exist?(File.join(root_dir, 'cf', subject.package_manager))).to be(false)
end
specify do
@@ -77,7 +79,7 @@ RSpec.describe Spandx::Core::Cache do
specify do
subject.insert('spandx', '', ['MIT'])
- expect(File.exist?(File.join(root_dir, 'cf'))).to be(false)
+ expect(File.exist?(File.join(root_dir, 'cf', subject.package_manager))).to be(false)
end
end
end
@@ -154,19 +156,4 @@ RSpec.describe Spandx::Core::Cache do
end
end
end
-
- context 'when searching for a license' do
- let(:root_dir) { "#{Spandx.git[:rubygems].root}/.index" }
-
- it '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