Add new test cases and rearrange existing ones

Additional tests are added for testing the random string generator using specialized config options. The code changes also include a rearrangement of certain existing tests to ensure more efficient coverage and logical consistency.
This commit is contained in:
Winni Neessen 2024-03-26 19:52:36 +01:00
parent d302625908
commit 2a6ebbce8f
Signed by: wneessen
GPG key ID: 5F3AF39B820C119D

View file

@ -523,36 +523,13 @@ func TestGenerate(t *testing.T) {
} }
} }
func BenchmarkGenerator_CoinFlip(b *testing.B) { func TestGenerator_RandomStringFromCharRange_fail(t *testing.T) {
b.ReportAllocs() config := NewConfig()
g := New(NewConfig()) gen := New(config)
for i := 0; i < b.N; i++ { _, err := gen.RandomStringFromCharRange(0, gen.GetCharRangeFromConfig())
_ = g.CoinFlip() if err == nil {
} t.Errorf("RandomStringFromCharRange() with zero length is supposed" +
} "to fail, but didn't")
func BenchmarkGenerator_RandomBytes(b *testing.B) {
b.ReportAllocs()
g := New(NewConfig())
var l int64 = 1024
for i := 0; i < b.N; i++ {
_, err := g.RandomBytes(l)
if err != nil {
b.Errorf("failed to generate random bytes: %s", err)
return
}
}
}
func BenchmarkGenerator_RandomString(b *testing.B) {
b.ReportAllocs()
g := New(NewConfig())
cr := CharRangeAlphaUpper + CharRangeAlphaLower + CharRangeNumeric + CharRangeSpecial
for i := 0; i < b.N; i++ {
_, err := g.RandomStringFromCharRange(32, cr)
if err != nil {
b.Errorf("RandomStringFromCharRange() failed: %s", err)
}
} }
} }
@ -590,3 +567,48 @@ func TestGenerator_generateBinary(t *testing.T) {
}) })
} }
} }
func TestGenerator_checkMinimumRequirements_human(t *testing.T) {
config := NewConfig(WithModeMask(ModeLowerCase|ModeUpperCase|ModeNumeric|
ModeSpecial|ModeHumanReadable), WithMinLowercase(1), WithMinUppercase(1),
WithMinNumeric(1), WithMinSpecial(1))
gen := New(config)
pw, err := gen.Generate()
if err != nil {
t.Errorf("Generate() failed: %s", err)
}
_ = gen.checkMinimumRequirements(pw)
}
func BenchmarkGenerator_CoinFlip(b *testing.B) {
b.ReportAllocs()
g := New(NewConfig())
for i := 0; i < b.N; i++ {
_ = g.CoinFlip()
}
}
func BenchmarkGenerator_RandomBytes(b *testing.B) {
b.ReportAllocs()
g := New(NewConfig())
var l int64 = 1024
for i := 0; i < b.N; i++ {
_, err := g.RandomBytes(l)
if err != nil {
b.Errorf("failed to generate random bytes: %s", err)
return
}
}
}
func BenchmarkGenerator_RandomString(b *testing.B) {
b.ReportAllocs()
g := New(NewConfig())
cr := CharRangeAlphaUpper + CharRangeAlphaLower + CharRangeNumeric + CharRangeSpecial
for i := 0; i < b.N; i++ {
_, err := g.RandomStringFromCharRange(32, cr)
if err != nil {
b.Errorf("RandomStringFromCharRange() failed: %s", err)
}
}
}