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

78 lines
1.4 KiB
Go

package file
import (
"os"
"strconv"
"testing"
"github.com/hashicorp/vault/audit"
"github.com/hashicorp/vault/helper/salt"
)
func TestAuditFile_fileModeNew(t *testing.T) {
salter, _ := salt.NewSalt(nil, nil)
modeStr := "0777"
mode, err := strconv.ParseUint(modeStr, 8, 32)
file := "auditTest.txt"
config := map[string]string{
"path": file,
"mode": modeStr,
}
_, err = Factory(&audit.BackendConfig{
Salt: salter,
Config: config,
})
if err != nil {
t.Fatalf("%v", err)
}
info,_ := os.Stat(file)
createdMode := info.Mode()
if createdMode != os.FileMode(mode) {
t.Fatalf("File Mode does not match.")
}
err = os.Remove(file)
}
func TestAuditFile_fileModeExisting(t *testing.T) {
salter, _ := salt.NewSalt(nil, nil)
modeStr := "0600"
m, err := strconv.ParseUint(modeStr, 8, 32)
mode := os.FileMode(m)
file := "auditTest.txt"
f, err := os.OpenFile(file, os.O_APPEND|os.O_WRONLY|os.O_CREATE, 0777)
err = f.Close()
if err != nil {
t.Fatalf("Failure to close the file.")
}
config := map[string]string{
"path": file,
}
_, err = Factory(&audit.BackendConfig{
Salt: salter,
Config: config,
})
if err != nil {
t.Fatalf("%v", err)
}
info,_ := os.Stat(file)
createdMode := info.Mode()
if createdMode != mode {
t.Fatalf("File Mode does not match.")
}
err = os.Remove(file)
}