diff --git a/discovery/cached/disk/round_tripper_test.go b/discovery/cached/disk/round_tripper_test.go index 13002c63..4b1d1144 100644 --- a/discovery/cached/disk/round_tripper_test.go +++ b/discovery/cached/disk/round_tripper_test.go @@ -25,6 +25,8 @@ import ( "path/filepath" "testing" + "github.com/gregjones/httpcache/diskcache" + "github.com/peterbourgon/diskv" "github.com/stretchr/testify/assert" ) @@ -40,6 +42,38 @@ func (rt *testRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) return rt.Response, rt.Err } +// NOTE(negz): We're adding a benchmark for an external dependency in order to +// prove that one that will be added in a subsequent commit improves write +// performance. +func BenchmarkDiskCache(b *testing.B) { + cacheDir, err := ioutil.TempDir("", "cache-rt") + if err != nil { + b.Fatal(err) + } + defer os.RemoveAll(cacheDir) + + d := diskv.New(diskv.Options{ + PathPerm: os.FileMode(0750), + FilePerm: os.FileMode(0660), + BasePath: cacheDir, + TempDir: filepath.Join(cacheDir, ".diskv-temp"), + }) + + k := "localhost:8080/apis/batch/v1.json" + v, err := ioutil.ReadFile("../../testdata/apis/batch/v1.json") + if err != nil { + b.Fatal(err) + } + + c := diskcache.NewWithDiskv(d) + + for n := 0; n < b.N; n++ { + c.Set(k, v) + c.Get(k) + c.Delete(k) + } +} + func TestCacheRoundTripper(t *testing.T) { rt := &testRoundTripper{} cacheDir, err := ioutil.TempDir("", "cache-rt")