mirror of
https://github.com/reactos/syzkaller.git
synced 2024-11-23 19:39:40 +00:00
aef0b7921b
Fix a bug and add a test.
104 lines
1.8 KiB
Go
104 lines
1.8 KiB
Go
// Copyright 2018 syzkaller project authors. All rights reserved.
|
|
// Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestAuth(t *testing.T) {
|
|
hub := &Hub{
|
|
keys: map[string]string{
|
|
"foo": "1234",
|
|
"bar": "abcd",
|
|
},
|
|
}
|
|
tests := []struct {
|
|
client string
|
|
key string
|
|
manager string
|
|
result string
|
|
ok bool
|
|
}{
|
|
{
|
|
client: "",
|
|
key: "",
|
|
manager: "",
|
|
result: "",
|
|
ok: false,
|
|
},
|
|
{
|
|
client: "",
|
|
key: "1234",
|
|
manager: "manager",
|
|
result: "",
|
|
ok: false,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "",
|
|
manager: "foo",
|
|
result: "",
|
|
ok: false,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "123",
|
|
manager: "foo",
|
|
result: "",
|
|
ok: false,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "abcd",
|
|
manager: "foo",
|
|
result: "",
|
|
ok: false,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "1234",
|
|
manager: "foo",
|
|
result: "foo",
|
|
ok: true,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "1234",
|
|
manager: "foo-suffix",
|
|
result: "foo-suffix",
|
|
ok: true,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "1234",
|
|
manager: "",
|
|
result: "foo",
|
|
ok: true,
|
|
},
|
|
{
|
|
client: "foo",
|
|
key: "1234",
|
|
manager: "bar",
|
|
result: "",
|
|
ok: false,
|
|
},
|
|
}
|
|
for _, test := range tests {
|
|
t.Run(fmt.Sprintf("%q/%q/%q", test.client, test.key, test.manager), func(t *testing.T) {
|
|
manager, err := hub.auth(test.client, test.key, test.manager)
|
|
if !test.ok && err == nil {
|
|
t.Fatalf("auth is expected to fail, but it did not")
|
|
}
|
|
if test.ok && err != nil {
|
|
t.Fatalf("auth is not expected to fail, but it did: %v", err)
|
|
}
|
|
if manager != test.result {
|
|
t.Fatalf("got bad manager %q, want %q", manager, test.result)
|
|
}
|
|
})
|
|
}
|
|
}
|