Add support for base2 units in NATS config

Signed-off-by: Waldemar Quevedo <wally@synadia.com>
This commit is contained in:
Waldemar Quevedo
2020-10-28 12:14:25 -07:00
parent 3e5d484fc8
commit 2047ed4537
3 changed files with 31 additions and 7 deletions

View File

@@ -995,7 +995,7 @@ func lexNumberOrDateOrStringOrIP(lx *lexer) stateFn {
func lexConvenientNumber(lx *lexer) stateFn {
r := lx.next()
switch {
case r == 'b' || r == 'B':
case r == 'b' || r == 'B' || r == 'i' || r == 'I':
return lexConvenientNumber
}
lx.backup()

View File

@@ -253,27 +253,27 @@ func (p *parser) processItem(it item, fp string) error {
setValue(it, num)
case "k":
setValue(it, num*1000)
case "kb":
case "kb", "ki", "kib":
setValue(it, num*1024)
case "m":
setValue(it, num*1000*1000)
case "mb":
case "mb", "mi", "mib":
setValue(it, num*1024*1024)
case "g":
setValue(it, num*1000*1000*1000)
case "gb":
case "gb", "gi", "gib":
setValue(it, num*1024*1024*1024)
case "t":
setValue(it, num*1000*1000*1000*1000)
case "tb":
case "tb", "ti", "tib":
setValue(it, num*1024*1024*1024*1024)
case "p":
setValue(it, num*1000*1000*1000*1000*1000)
case "pb":
case "pb", "pi", "pib":
setValue(it, num*1024*1024*1024*1024*1024)
case "e":
setValue(it, num*1000*1000*1000*1000*1000*1000)
case "eb":
case "eb", "ei", "eib":
setValue(it, num*1024*1024*1024*1024*1024*1024)
}
case itemFloat:

View File

@@ -142,20 +142,44 @@ func TestBcryptVariable(t *testing.T) {
var easynum = `
k = 8k
kb = 4kb
ki = 3ki
kib = 4ki
m = 1m
mb = 2MB
mi = 2Mi
mib = 64MiB
g = 2g
gb = 22GB
gi = 22Gi
gib = 22GiB
tb = 22TB
ti = 22Ti
tib = 22TiB
pb = 22PB
pi = 22Pi
pib = 22PiB
`
func TestConvenientNumbers(t *testing.T) {
ex := map[string]interface{}{
"k": int64(8 * 1000),
"kb": int64(4 * 1024),
"ki": int64(3 * 1024),
"kib": int64(4 * 1024),
"m": int64(1000 * 1000),
"mb": int64(2 * 1024 * 1024),
"mi": int64(2 * 1024 * 1024),
"mib": int64(64 * 1024 * 1024),
"g": int64(2 * 1000 * 1000 * 1000),
"gb": int64(22 * 1024 * 1024 * 1024),
"gi": int64(22 * 1024 * 1024 * 1024),
"gib": int64(22 * 1024 * 1024 * 1024),
"tb": int64(22 * 1024 * 1024 * 1024 * 1024),
"ti": int64(22 * 1024 * 1024 * 1024 * 1024),
"tib": int64(22 * 1024 * 1024 * 1024 * 1024),
"pb": int64(22 * 1024 * 1024 * 1024 * 1024 * 1024),
"pi": int64(22 * 1024 * 1024 * 1024 * 1024 * 1024),
"pib": int64(22 * 1024 * 1024 * 1024 * 1024 * 1024),
}
test(t, easynum, ex)
}