mirror of
https://github.com/wneessen/apg-go.git
synced 2024-11-22 13:50:49 +01:00
v0.2.2: Minor fixes and testing
- Replaced log.Fatal() with log.Fatalf() since we provide %v - Added proper testing and benchmarking
This commit is contained in:
parent
a8514f6c0e
commit
2a970b9bce
2 changed files with 57 additions and 4 deletions
4
apg.go
4
apg.go
|
@ -12,7 +12,7 @@ import (
|
||||||
|
|
||||||
// Constants
|
// Constants
|
||||||
const DefaultPwLenght int = 20
|
const DefaultPwLenght int = 20
|
||||||
const VersionString string = "0.2.1"
|
const VersionString string = "0.2.2"
|
||||||
const PwLowerCharsHuman string = "abcdefghjkmnpqrstuvwxyz"
|
const PwLowerCharsHuman string = "abcdefghjkmnpqrstuvwxyz"
|
||||||
const PwUpperCharsHuman string = "ABCDEFGHJKMNPQRSTUVWXYZ"
|
const PwUpperCharsHuman string = "ABCDEFGHJKMNPQRSTUVWXYZ"
|
||||||
const PwLowerChars string = "abcdefghijklmnopqrstuvwxyz"
|
const PwLowerChars string = "abcdefghijklmnopqrstuvwxyz"
|
||||||
|
@ -131,7 +131,7 @@ func getRandNum(maxNum int) int {
|
||||||
maxNumBigInt := big.NewInt(int64(maxNum))
|
maxNumBigInt := big.NewInt(int64(maxNum))
|
||||||
randNum64, err := rand.Int(rand.Reader, maxNumBigInt)
|
randNum64, err := rand.Int(rand.Reader, maxNumBigInt)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("An error occured generating random number: %v", err)
|
log.Fatalf("An error occured generating random number: %v", err)
|
||||||
}
|
}
|
||||||
randNum := int(randNum64.Int64())
|
randNum := int(randNum64.Int64())
|
||||||
return randNum
|
return randNum
|
||||||
|
|
57
apg_test.go
57
apg_test.go
|
@ -2,6 +2,59 @@ package main
|
||||||
|
|
||||||
import "testing"
|
import "testing"
|
||||||
|
|
||||||
func TestSkipForNow(t *testing.T) {
|
// Make sure the flags are initalized
|
||||||
t.Logf("All good.")
|
var _ = func() bool {
|
||||||
|
testing.Init()
|
||||||
|
return true
|
||||||
|
}()
|
||||||
|
|
||||||
|
// Test getRandNum with max 1000
|
||||||
|
func TestGetRandNumMax1000(t *testing.T) {
|
||||||
|
randNum := getRandNum(1000)
|
||||||
|
if randNum > 1000 {
|
||||||
|
t.Errorf("Generated random number between 0 and 1000 is too big: %d", randNum)
|
||||||
|
}
|
||||||
|
if randNum < 0 {
|
||||||
|
t.Errorf("Generated random number between 0 and 1000 is too small: %d", randNum)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test getRandNum with max 1
|
||||||
|
func TestGetRandNumMax1(t *testing.T) {
|
||||||
|
randNum := getRandNum(1)
|
||||||
|
if randNum > 1 {
|
||||||
|
t.Errorf("Generated random number between 0 and 1 is too big: %d", randNum)
|
||||||
|
}
|
||||||
|
if randNum < 0 {
|
||||||
|
t.Errorf("Generated random number between 0 and 1 is too small: %d", randNum)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test getRandChar
|
||||||
|
func TestGetRandChar(t *testing.T) {
|
||||||
|
charRange := "ABC"
|
||||||
|
randChar := getRandChar(&charRange, 1)
|
||||||
|
if randChar != "A" && randChar != "B" && randChar != "C" {
|
||||||
|
t.Errorf("Random character generation failed. Expected A, B or C but got: %v", randChar)
|
||||||
|
}
|
||||||
|
|
||||||
|
randChar = getRandChar(&charRange, 1000)
|
||||||
|
if len(randChar) != 1000 {
|
||||||
|
t.Errorf("Generated random characters with 1000 chars returned wrong amount of chars: %v", len(randChar))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Benchmark: Random number generation
|
||||||
|
func BenchmarkGetRandNum(b *testing.B) {
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
getRandNum(100000)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Benchmark: Random char generation
|
||||||
|
func BenchmarkGetRandChar(b *testing.B) {
|
||||||
|
charRange := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890\"#/!\\$%&+-*.,?=()[]{}:;~^|"
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
getRandChar(&charRange, 20)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue