mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-26 20:30:10 +01:00
63 lines
2.5 KiB
Go
63 lines
2.5 KiB
Go
package storage
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestPartHeaderParseFromPath(t *testing.T) {
|
|
testParseFromPathError := func(path string) {
|
|
t.Helper()
|
|
|
|
var ph partHeader
|
|
if err := ph.ParseFromPath(path); err == nil {
|
|
t.Fatalf("expecting non-nil error")
|
|
}
|
|
}
|
|
|
|
t.Run("Error", func(t *testing.T) {
|
|
testParseFromPathError("")
|
|
testParseFromPathError("foobar")
|
|
testParseFromPathError("/foo/bar")
|
|
testParseFromPathError("/rowscount_mintimestamp_maxtimestamp_garbage")
|
|
testParseFromPathError("/rowscount_mintimestamp_maxtimestamp_garbage")
|
|
testParseFromPathError("/12_3456_mintimestamp_maxtimestamp_garbage")
|
|
testParseFromPathError("/12_3456_20181011010203.456_maxtimestamp_garbage")
|
|
testParseFromPathError("/12_3456_20181011010203.456_20181011010202.456_garbage")
|
|
testParseFromPathError("12_3456_20181011010203.456_20181011010203.457_garbage")
|
|
testParseFromPathError("12_3456_20181011010203.456_20181011010203.457_garbage/")
|
|
|
|
// MinTimestamp > MaxTimetamp
|
|
testParseFromPathError("1233_456_20181011010203.456_20181011010202.457_garbage")
|
|
|
|
// Zero rowsCount
|
|
testParseFromPathError("0_123_20181011010203.456_20181011010203.457_garbage")
|
|
|
|
// Zero blocksCount
|
|
testParseFromPathError("123_0_20181011010203.456_20181011010203.457_garbage")
|
|
|
|
// blocksCount > rowsCount
|
|
testParseFromPathError("123_456_20181011010203.456_20181011010203.457_garbage")
|
|
})
|
|
|
|
testParseFromPathSuccess := func(path string, phStringExpected string) {
|
|
t.Helper()
|
|
|
|
var ph partHeader
|
|
if err := ph.ParseFromPath(path); err != nil {
|
|
t.Fatalf("unexpected error when parsing path %q: %s", path, err)
|
|
}
|
|
phString := ph.String()
|
|
if phString != phStringExpected {
|
|
t.Fatalf("unexpected partHeader string for path %q: got %q; want %q", path, phString, phStringExpected)
|
|
}
|
|
}
|
|
|
|
t.Run("Success", func(t *testing.T) {
|
|
testParseFromPathSuccess("/1233_456_20181011010203.456_20181011010203.457_garbage", "1233_456_20181011010203.456_20181011010203.457")
|
|
testParseFromPathSuccess("/1233_456_20181011010203.456_20181011010203.457_garbage/", "1233_456_20181011010203.456_20181011010203.457")
|
|
testParseFromPathSuccess("/1233_456_20181011010203.456_20181011010203.457_garbage///", "1233_456_20181011010203.456_20181011010203.457")
|
|
testParseFromPathSuccess("/var/lib/tsdb/1233_456_20181011010203.456_20181011010203.457_garbage///", "1233_456_20181011010203.456_20181011010203.457")
|
|
testParseFromPathSuccess("/var/lib/tsdb/456_456_20181011010203.456_20181011010203.457_232345///", "456_456_20181011010203.456_20181011010203.457")
|
|
})
|
|
}
|