Skip to content

Commit f95c1d9

Browse files
authored
Add deterministic XXH64 hashing specs (#4460)
1 parent 5b8a9f9 commit f95c1d9

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
require 'spec_helper'
2+
require 'cloud_controller/diego/staging_action_builder'
3+
4+
module VCAP::CloudController
5+
module Diego
6+
RSpec.describe StagingActionBuilder do
7+
subject(:builder) { described_class.new(config, nil, nil, nil, nil, nil, nil) }
8+
9+
let(:config) { Config.new({ staging: { legacy_md5_buildpack_paths_enabled: } }) }
10+
11+
describe '#buildpack_path' do
12+
context 'when legacy_md5_buildpack_paths_enabled is false' do
13+
let(:legacy_md5_buildpack_paths_enabled) { false }
14+
15+
it 'hashes buildpack key using XXH64' do
16+
expect(builder.send(:buildpack_path, 'key')).to eq('/tmp/buildpacks/447762562de14334')
17+
end
18+
19+
it 'preserves leading zeros in the hash' do
20+
expect(builder.send(:buildpack_path, 'cl')).to eq('/tmp/buildpacks/00d7b37f249a2722')
21+
end
22+
end
23+
24+
context 'when legacy_md5_buildpack_paths_enabled is true' do
25+
let(:legacy_md5_buildpack_paths_enabled) { true }
26+
27+
it 'uses MD5 to hash the buildpack key' do
28+
expect(builder.send(:buildpack_path, 'key')).to eq('/tmp/buildpacks/3c6e0b8a9c15224a8228b9a98ca1531d')
29+
end
30+
end
31+
end
32+
end
33+
end
34+
end

spec/unit/middleware/mixins/user_reset_interval_spec.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ module Middleware
1010
let(:reset_interval_in_minutes) { 60 }
1111
let(:user_guid_offset) { 592.seconds }
1212

13+
it 'produces the expected XXH64 hash' do
14+
expect(Digest::XXH64.idigest(user_guid)).to eq(16_213_529_883_637_274_992)
15+
end
16+
1317
context "time is set to beginning of hour + the user's offset" do
1418
before { Timecop.freeze Time.now.beginning_of_hour + user_guid_offset }
1519
after { Timecop.return }

0 commit comments

Comments
 (0)