mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-01 14:47:38 +00:00
505d359b39
* app/vminsert: allows parsing tenant id from labels it should help mitigate issues with vmagent's multiTenant mode, which works incorrectly at heavy load and it cannot handle more then 100 different tenants. This functional hidden with flag and do not change vminsert default behaviour https://github.com/VictoriaMetrics/VictoriaMetrics/issues/2970 * Update docs/Cluster-VictoriaMetrics.md Co-authored-by: Roman Khavronenko <roman@victoriametrics.com> * wip * app/vminsert/netstorage: clean remaining labels in order to free up GC * docs/Cluster-VictoriaMetrics.md: typo fix * wip * wip Co-authored-by: Roman Khavronenko <roman@victoriametrics.com> Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
78 lines
1.7 KiB
Go
78 lines
1.7 KiB
Go
package auth
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestNewTokenSuccess(t *testing.T) {
|
|
f := func(token string, want string) {
|
|
t.Helper()
|
|
newToken, err := NewToken(token)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %s", err)
|
|
}
|
|
got := newToken.String()
|
|
if got != want {
|
|
t.Fatalf("unexpected NewToken() result;got\n%s\nwant\n%s", got, want)
|
|
}
|
|
}
|
|
// token with accountID only
|
|
f("1", "1")
|
|
// token with accountID and projecTID
|
|
f("1:2", "1:2")
|
|
// max uint32 accountID
|
|
f("4294967295:1", "4294967295:1")
|
|
// max uint32 projectID
|
|
f("1:4294967295", "1:4294967295")
|
|
// max uint32 accountID and projectID
|
|
f("4294967295:4294967295", "4294967295:4294967295")
|
|
// multitenant
|
|
f("multitenant", "multitenant")
|
|
}
|
|
|
|
func TestNewTokenFailure(t *testing.T) {
|
|
f := func(token string) {
|
|
t.Helper()
|
|
newToken, err := NewToken(token)
|
|
if err == nil {
|
|
t.Fatalf("expecting non-nil error")
|
|
}
|
|
if newToken != nil {
|
|
t.Fatalf("expecting nil token; got\n%#v", newToken)
|
|
}
|
|
}
|
|
// empty token
|
|
f("")
|
|
// empty accountID and projectID"
|
|
f(":")
|
|
// accountID and projectID not int values
|
|
f("a:b")
|
|
// missed projectID
|
|
f("1:")
|
|
// missed accountID
|
|
f(":2")
|
|
// large int value for accountID
|
|
f("9223372036854775808:1")
|
|
// large value for projectID
|
|
f("2:9223372036854775808")
|
|
// both large values incorrect
|
|
f("9223372036854775809:9223372036854775808")
|
|
// large uint32 values incorrect
|
|
f("4294967297:4294967295")
|
|
//negative accountID
|
|
f("-100:100")
|
|
// negative projectID
|
|
f("100:-100")
|
|
// negative accountID and projectID
|
|
f("-100:-100")
|
|
// accountID is string
|
|
f("abcd:2")
|
|
// projectID is string
|
|
f("2:abcd")
|
|
// empty many parts in the token
|
|
f("::")
|
|
// many string parts in the token
|
|
f("a:b:c")
|
|
// many int parts in the token"
|
|
f("1:2:3")
|
|
}
|