open-vault/builtin/audit/file/backend_test.go

93 lines
1.8 KiB
Go
Raw Normal View History

2016-10-10 02:23:30 +00:00
package file
import (
"context"
2016-10-10 15:58:26 +00:00
"io/ioutil"
2016-10-10 02:23:30 +00:00
"os"
2016-10-10 15:58:26 +00:00
"path/filepath"
2016-10-10 02:23:30 +00:00
"strconv"
"testing"
"github.com/hashicorp/vault/audit"
"github.com/hashicorp/vault/helper/salt"
"github.com/hashicorp/vault/logical"
2016-10-10 02:23:30 +00:00
)
func TestAuditFile_fileModeNew(t *testing.T) {
modeStr := "0777"
mode, err := strconv.ParseUint(modeStr, 8, 32)
if err != nil {
t.Fatal(err)
}
2016-10-10 02:23:30 +00:00
2016-10-10 16:58:30 +00:00
path, err := ioutil.TempDir("", "vault-test_audit_file-file_mode_new")
if err != nil {
t.Fatal(err)
}
2016-10-10 15:58:26 +00:00
defer os.RemoveAll(path)
file := filepath.Join(path, "auditTest.txt")
2016-10-10 02:23:30 +00:00
config := map[string]string{
"path": file,
"mode": modeStr,
}
_, err = Factory(context.Background(), &audit.BackendConfig{
SaltConfig: &salt.Config{},
SaltView: &logical.InmemStorage{},
Config: config,
2016-10-10 02:23:30 +00:00
})
if err != nil {
2016-10-10 14:05:36 +00:00
t.Fatal(err)
2016-10-10 02:23:30 +00:00
}
2016-10-10 16:58:30 +00:00
info, err := os.Stat(file)
if err != nil {
t.Fatalf("Cannot retrieve file mode from `Stat`")
}
if info.Mode() != os.FileMode(mode) {
2016-10-10 15:58:26 +00:00
t.Fatalf("File mode does not match.")
2016-10-10 02:23:30 +00:00
}
}
func TestAuditFile_fileModeExisting(t *testing.T) {
2016-10-10 15:58:26 +00:00
f, err := ioutil.TempFile("", "test")
if err != nil {
t.Fatalf("Failure to create test file.")
}
defer os.Remove(f.Name())
2016-10-10 16:58:30 +00:00
err = os.Chmod(f.Name(), 0777)
if err != nil {
t.Fatalf("Failure to chmod temp file for testing.")
}
2016-10-10 02:23:30 +00:00
err = f.Close()
if err != nil {
2016-10-10 16:58:30 +00:00
t.Fatalf("Failure to close temp file for test.")
2016-10-10 02:23:30 +00:00
}
config := map[string]string{
2016-10-10 15:58:26 +00:00
"path": f.Name(),
2016-10-10 02:23:30 +00:00
}
_, err = Factory(context.Background(), &audit.BackendConfig{
Config: config,
SaltConfig: &salt.Config{},
SaltView: &logical.InmemStorage{},
2016-10-10 02:23:30 +00:00
})
if err != nil {
2016-10-10 14:05:36 +00:00
t.Fatal(err)
2016-10-10 02:23:30 +00:00
}
2016-10-10 15:58:26 +00:00
info, err := os.Stat(f.Name())
2016-10-10 02:23:30 +00:00
if err != nil {
t.Fatalf("cannot retrieve file mode from `Stat`")
}
2016-10-10 16:58:30 +00:00
if info.Mode() != os.FileMode(0600) {
2016-10-10 15:58:26 +00:00
t.Fatalf("File mode does not match.")
2016-10-10 02:23:30 +00:00
}
}