Compare commits
6 Commits
5a015d9609
...
fix/issue-
| Author | SHA1 | Date | |
|---|---|---|---|
| 615eecff79 | |||
| 9b67de016d | |||
|
|
3c779465e2 | ||
|
|
5572a4901f | ||
|
|
2adc275278 | ||
|
|
6d9c07510a |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -3,6 +3,8 @@
|
||||
*.tmp
|
||||
*.dockerimage
|
||||
/vendor
|
||||
vendor.tzst
|
||||
modcache.tzst
|
||||
|
||||
# Stale files
|
||||
.drone.yml
|
||||
|
||||
@@ -93,17 +93,11 @@ type Builder struct {
|
||||
}
|
||||
|
||||
// SetSeed derives a deterministic UUID from the given seed string.
|
||||
// The seed is hashed once with SHA-256 and the first 16 bytes are
|
||||
// used as a fixed UUID for the manifest.
|
||||
// The seed is hashed once with SHA-256 and the first 16 bytes are used
|
||||
// as a fixed UUID for the manifest.
|
||||
func (b *Builder) SetSeed(seed string) {
|
||||
b.fixedUUID = deriveSeedUUID(seed)
|
||||
}
|
||||
|
||||
// deriveSeedUUID hashes the seed string with SHA-256
|
||||
// and returns the first 16 bytes as a UUID.
|
||||
func deriveSeedUUID(seed string) []byte {
|
||||
hash := sha256.Sum256([]byte(seed))
|
||||
return hash[:16]
|
||||
b.fixedUUID = hash[:16]
|
||||
}
|
||||
|
||||
// NewBuilder creates a new Builder.
|
||||
|
||||
@@ -150,15 +150,17 @@ func TestBuilderDeterministicOutput(t *testing.T) {
|
||||
assert.Equal(t, out1, out2, "two builds with same input should produce byte-identical output")
|
||||
}
|
||||
|
||||
func TestDeriveSeedUUID(t *testing.T) {
|
||||
func TestSetSeedDeterministic(t *testing.T) {
|
||||
b1 := NewBuilder()
|
||||
b1.SetSeed("test-seed-value")
|
||||
b2 := NewBuilder()
|
||||
b2.SetSeed("test-seed-value")
|
||||
assert.Equal(t, b1.fixedUUID, b2.fixedUUID, "same seed should produce same UUID")
|
||||
assert.Len(t, b1.fixedUUID, 16, "UUID should be 16 bytes")
|
||||
|
||||
uuid1 := deriveSeedUUID("test-seed-value")
|
||||
uuid2 := deriveSeedUUID("test-seed-value")
|
||||
assert.Equal(t, uuid1, uuid2, "same seed should produce same UUID")
|
||||
assert.Len(t, uuid1, 16, "UUID should be 16 bytes")
|
||||
|
||||
uuid3 := deriveSeedUUID("different-seed")
|
||||
assert.NotEqual(t, uuid1, uuid3, "different seeds should produce different UUIDs")
|
||||
b3 := NewBuilder()
|
||||
b3.SetSeed("different-seed")
|
||||
assert.NotEqual(t, b1.fixedUUID, b3.fixedUUID, "different seeds should produce different UUIDs")
|
||||
}
|
||||
|
||||
func TestBuilderBuildEmpty(t *testing.T) {
|
||||
|
||||
BIN
modcache.tzst
BIN
modcache.tzst
Binary file not shown.
BIN
vendor.tzst
BIN
vendor.tzst
Binary file not shown.
Reference in New Issue
Block a user