Add the 16kB unit size to pg_settings parser.

Fixes #101.
This commit is contained in:
Will Rouesnel 2017-09-07 22:36:40 +10:00
parent 17592ee8e9
commit e701b80fd5
3 changed files with 20 additions and 2 deletions

View File

@ -3,7 +3,7 @@ services:
- docker
language: go
go:
- '1.8'
- '1.9'
# Make sure we have p2 and the postgres client.
before_install:
- go get -v github.com/mattn/goveralls

View File

@ -94,7 +94,7 @@ func (s *pgSetting) normaliseUnit() (val float64, unit string, err error) {
return
case "ms", "s", "min", "h", "d":
unit = "seconds"
case "kB", "MB", "GB", "TB", "8kB", "16MB":
case "kB", "MB", "GB", "TB", "8kB", "16kB", "16MB":
unit = "bytes"
default:
err = fmt.Errorf("Unknown unit for runtime variable: %q", s.unit)
@ -125,6 +125,8 @@ func (s *pgSetting) normaliseUnit() (val float64, unit string, err error) {
val *= math.Pow(2, 40)
case "8kB":
val *= math.Pow(2, 13)
case "16kB":
val *= math.Pow(2, 14)
case "16MB":
val *= math.Pow(2, 24)
}

View File

@ -60,6 +60,22 @@ var fixtures = []fixture{
d: "Desc{fqName: \"pg_settings_eight_kb_fixture_metric_bytes\", help: \"Foo foo foo [Units converted to bytes.]\", constLabels: {}, variableLabels: []}",
v: 139264,
},
{
p: pgSetting{
name: "16_kb_real_fixture_metric",
setting: "3.0",
unit: "16kB",
shortDesc: "Foo foo foo",
vartype: "real",
},
n: normalised{
val: 49152,
unit: "bytes",
err: "",
},
d: "Desc{fqName: \"pg_settings_16_kb_real_fixture_metric_bytes\", help: \"Foo foo foo [Units converted to bytes.]\", constLabels: {}, variableLabels: []}",
v: 49152,
},
{
p: pgSetting{
name: "16_mb_real_fixture_metric",