Compare commits
4 Commits
5a015d9609
...
3c779465e2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c779465e2 | ||
|
|
5572a4901f | ||
|
|
2adc275278 | ||
|
|
6d9c07510a |
@ -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) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user