124 lines
2.2 KiB
Go
124 lines
2.2 KiB
Go
package metrics
|
|
|
|
import (
|
|
"errors"
|
|
"friendica-exporter/internal/testutil"
|
|
"testing"
|
|
)
|
|
|
|
func TestConvertMemoryToBytes(t *testing.T) {
|
|
tt := []struct {
|
|
desc string
|
|
memory string
|
|
wantErr error
|
|
wantEqual uint64
|
|
}{
|
|
{
|
|
desc: "1 kilobyte (upper case)",
|
|
memory: "1K",
|
|
wantErr: nil,
|
|
wantEqual: 1024,
|
|
},
|
|
{
|
|
desc: "1 kilobyte (lower case)",
|
|
memory: "1k",
|
|
wantErr: nil,
|
|
wantEqual: 1024,
|
|
},
|
|
{
|
|
desc: "1 megabyte (upper case)",
|
|
memory: "1M",
|
|
wantErr: nil,
|
|
wantEqual: 1048576,
|
|
},
|
|
{
|
|
desc: "1 megabyte (lower case)",
|
|
memory: "1m",
|
|
wantErr: nil,
|
|
wantEqual: 1048576,
|
|
},
|
|
{
|
|
desc: "1 gigabyte (upper case)",
|
|
memory: "1G",
|
|
wantErr: nil,
|
|
wantEqual: 1073741824,
|
|
},
|
|
{
|
|
desc: "1 gigabyte (lower case)",
|
|
memory: "1g",
|
|
wantErr: nil,
|
|
wantEqual: 1073741824,
|
|
},
|
|
{
|
|
desc: "2 Kilobytes",
|
|
memory: "2K",
|
|
wantErr: nil,
|
|
wantEqual: 2048,
|
|
},
|
|
{
|
|
desc: "5 gigabytes",
|
|
memory: "5g",
|
|
wantErr: nil,
|
|
wantEqual: 5368709120,
|
|
},
|
|
{
|
|
desc: "0.5 Megabyte",
|
|
memory: "0.5M",
|
|
wantErr: nil,
|
|
wantEqual: 0,
|
|
},
|
|
{
|
|
desc: "10.7 Kilobytes",
|
|
memory: "10.7k",
|
|
wantErr: nil,
|
|
wantEqual: 10240,
|
|
},
|
|
{
|
|
desc: "12345234 Bytes",
|
|
memory: "12345234",
|
|
wantErr: nil,
|
|
wantEqual: 12345234,
|
|
},
|
|
{
|
|
desc: "Invalid",
|
|
memory: "invalid",
|
|
wantErr: errors.New("invalid memory format"),
|
|
wantEqual: 0,
|
|
},
|
|
{
|
|
desc: "1234X",
|
|
memory: "1234X",
|
|
wantErr: errors.New("invalid memory format"),
|
|
wantEqual: 0,
|
|
},
|
|
{
|
|
desc: "512 Megabytes",
|
|
memory: "512M",
|
|
wantErr: nil,
|
|
wantEqual: 536870912,
|
|
},
|
|
{
|
|
desc: "CopyPasteError",
|
|
memory: "512M512M",
|
|
wantErr: errors.New("invalid memory format"),
|
|
wantEqual: 0,
|
|
},
|
|
}
|
|
|
|
for _, tc := range tt {
|
|
tc := tc
|
|
t.Run(tc.desc, func(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
equal, err := ConvertMemoryToBytes(tc.memory)
|
|
|
|
if !testutil.EqualErrorMessage(err, tc.wantErr) {
|
|
t.Errorf("got error %q, want %q", err, tc.wantErr)
|
|
}
|
|
|
|
if equal != tc.wantEqual {
|
|
t.Errorf("got equal %v, want %v", equal, tc.wantEqual)
|
|
}
|
|
})
|
|
}
|
|
}
|