03cf302e9a
* logbridge with hclog and identical output * Initial search & replace This compiles, but there is a fair amount of TODO and commented out code, especially around the plugin logclient/logserver code. * strip logbridge * fix majority of tests * update logxi aliases * WIP fixing tests * more test fixes * Update test to hclog * Fix format * Rename hclog -> log * WIP making hclog and logxi love each other * update logger_test.go * clean up merged comments * Replace RawLogger interface with a Logger * Add some logger names * Replace Trace with Debug * update builtin logical logging patterns * Fix build errors * More log updates * update log approach in command and builtin * More log updates * update helper, http, and logical directories * Update loggers * Log updates * Update logging * Update logging * Update logging * Update logging * update logging in physical * prefixing and lowercase * Update logging * Move phyisical logging name to server command * Fix som tests * address jims feedback so far * incorporate brians feedback so far * strip comments * move vault.go to logging package * update Debug to Trace * Update go-plugin deps * Update logging based on review comments * Updates from review * Unvendor logxi * Remove null_logger.go
270 lines
5.2 KiB
Go
270 lines
5.2 KiB
Go
package inmem
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
log "github.com/hashicorp/go-hclog"
|
|
"github.com/hashicorp/vault/helper/logging"
|
|
"github.com/hashicorp/vault/physical"
|
|
)
|
|
|
|
func TestCache(t *testing.T) {
|
|
logger := logging.NewVaultLogger(log.Debug)
|
|
|
|
inm, err := NewInmem(nil, logger)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
cache := physical.NewCache(inm, 0, logger)
|
|
physical.ExerciseBackend(t, cache)
|
|
physical.ExerciseBackend_ListPrefix(t, cache)
|
|
}
|
|
|
|
func TestCache_Purge(t *testing.T) {
|
|
logger := logging.NewVaultLogger(log.Debug)
|
|
|
|
inm, err := NewInmem(nil, logger)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
cache := physical.NewCache(inm, 0, logger)
|
|
cache.SetEnabled(true)
|
|
|
|
ent := &physical.Entry{
|
|
Key: "foo",
|
|
Value: []byte("bar"),
|
|
}
|
|
err = cache.Put(context.Background(), ent)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
// Delete from under
|
|
inm.Delete(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Read should work
|
|
out, err := cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
// Clear the cache
|
|
cache.Purge(context.Background())
|
|
|
|
// Read should fail
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out != nil {
|
|
t.Fatalf("should not have key")
|
|
}
|
|
}
|
|
|
|
func TestCache_Disable(t *testing.T) {
|
|
logger := logging.NewVaultLogger(log.Debug)
|
|
|
|
inm, err := NewInmem(nil, logger)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
cache := physical.NewCache(inm, 0, logger)
|
|
|
|
disabledTests := func() {
|
|
ent := &physical.Entry{
|
|
Key: "foo",
|
|
Value: []byte("bar"),
|
|
}
|
|
err = inm.Put(context.Background(), ent)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
// Read should work
|
|
out, err := cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
err = inm.Delete(context.Background(), ent.Key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Should not work
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out != nil {
|
|
t.Fatalf("should not have key")
|
|
}
|
|
|
|
// Put through the cache and try again
|
|
err = cache.Put(context.Background(), ent)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
// Read should work in both
|
|
out, err = inm.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
err = inm.Delete(context.Background(), ent.Key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Should not work
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out != nil {
|
|
t.Fatalf("should not have key")
|
|
}
|
|
}
|
|
|
|
enabledTests := func() {
|
|
ent := &physical.Entry{
|
|
Key: "foo",
|
|
Value: []byte("bar"),
|
|
}
|
|
err = inm.Put(context.Background(), ent)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
// Read should work
|
|
out, err := cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
err = inm.Delete(context.Background(), ent.Key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Should work
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
// Put through the cache and try again
|
|
err = cache.Put(context.Background(), ent)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
// Read should work for both
|
|
out, err = inm.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
err = inm.Delete(context.Background(), ent.Key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Should work
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
// Put through the cache
|
|
err = cache.Put(context.Background(), ent)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
|
|
// Read should work for both
|
|
out, err = inm.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out == nil {
|
|
t.Fatalf("should have key")
|
|
}
|
|
|
|
// Delete via cache
|
|
err = cache.Delete(context.Background(), ent.Key)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
// Read should not work for either
|
|
out, err = inm.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out != nil {
|
|
t.Fatalf("should not have key")
|
|
}
|
|
out, err = cache.Get(context.Background(), "foo")
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if out != nil {
|
|
t.Fatalf("should not have key")
|
|
}
|
|
}
|
|
|
|
disabledTests()
|
|
cache.SetEnabled(true)
|
|
enabledTests()
|
|
cache.SetEnabled(false)
|
|
disabledTests()
|
|
}
|