mirror of
https://github.com/status-im/consul.git
synced 2025-01-10 05:45:46 +00:00
308f9929b3
This brings down the test run from 108 sec to 15 sec. There is an occasional port conflict because of the nature the next port is chosen. So far it seems rare enough to live with it.
95 lines
2.0 KiB
Go
95 lines
2.0 KiB
Go
package agent
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/hashicorp/consul/testutil"
|
|
)
|
|
|
|
func TestAEScale(t *testing.T) {
|
|
t.Parallel()
|
|
intv := time.Minute
|
|
if v := aeScale(intv, 100); v != intv {
|
|
t.Fatalf("Bad: %v", v)
|
|
}
|
|
if v := aeScale(intv, 200); v != 2*intv {
|
|
t.Fatalf("Bad: %v", v)
|
|
}
|
|
if v := aeScale(intv, 1000); v != 4*intv {
|
|
t.Fatalf("Bad: %v", v)
|
|
}
|
|
if v := aeScale(intv, 10000); v != 8*intv {
|
|
t.Fatalf("Bad: %v", v)
|
|
}
|
|
}
|
|
|
|
func TestStringHash(t *testing.T) {
|
|
t.Parallel()
|
|
in := "hello world"
|
|
expected := "5eb63bbbe01eeed093cb22bb8f5acdc3"
|
|
|
|
if out := stringHash(in); out != expected {
|
|
t.Fatalf("bad: %s", out)
|
|
}
|
|
}
|
|
|
|
func TestSetFilePermissions(t *testing.T) {
|
|
t.Parallel()
|
|
if runtime.GOOS == "windows" {
|
|
t.SkipNow()
|
|
}
|
|
tempFile := testutil.TempFile(t, "consul")
|
|
path := tempFile.Name()
|
|
defer os.Remove(path)
|
|
|
|
// Bad UID fails
|
|
if err := setFilePermissions(path, UnixSocketPermissions{Usr: "%"}); err == nil {
|
|
t.Fatalf("should fail")
|
|
}
|
|
|
|
// Bad GID fails
|
|
if err := setFilePermissions(path, UnixSocketPermissions{Grp: "%"}); err == nil {
|
|
t.Fatalf("should fail")
|
|
}
|
|
|
|
// Bad mode fails
|
|
if err := setFilePermissions(path, UnixSocketPermissions{Perms: "%"}); err == nil {
|
|
t.Fatalf("should fail")
|
|
}
|
|
|
|
// Allows omitting user/group/mode
|
|
if err := setFilePermissions(path, UnixSocketPermissions{}); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
// Doesn't change mode if not given
|
|
if err := os.Chmod(path, 0700); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if err := setFilePermissions(path, UnixSocketPermissions{}); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
fi, err := os.Stat(path)
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if fi.Mode().String() != "-rwx------" {
|
|
t.Fatalf("bad: %s", fi.Mode())
|
|
}
|
|
|
|
// Changes mode if given
|
|
if err := setFilePermissions(path, UnixSocketPermissions{Perms: "0777"}); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
fi, err = os.Stat(path)
|
|
if err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
if fi.Mode().String() != "-rwxrwxrwx" {
|
|
t.Fatalf("bad: %s", fi.Mode())
|
|
}
|
|
}
|