From 9dd2df4cba3a90d0765661e42919ebf1483ba31d Mon Sep 17 00:00:00 2001 From: Manish R Jain <manishrjain@gmail.com> Date: Mon, 9 Nov 2015 17:36:26 +1100 Subject: [PATCH] Add benchmarks. Change the test data a bit. --- server/main_test.go | 85 +++++++++++++++++++++++++++++++++++++-------- server/testdata.nq | 6 ++-- 2 files changed, 73 insertions(+), 18 deletions(-) diff --git a/server/main_test.go b/server/main_test.go index 1fb2b3d1..45d30bc9 100644 --- a/server/main_test.go +++ b/server/main_test.go @@ -28,14 +28,8 @@ import ( "github.com/dgraph-io/dgraph/store" ) -func NewStore(t *testing.T) string { - path, err := ioutil.TempDir("", "storetest_") - if err != nil { - t.Error(err) - t.Fail() - return "" - } - return path +func NewStore() (string, error) { + return ioutil.TempDir("", "storetest_") } var q0 = ` @@ -51,13 +45,19 @@ var q0 = ` } ` -func TestQuery(t *testing.T) { - pdir := NewStore(t) +func prepare() error { + pdir, err := NewStore() + if err != nil { + return err + } defer os.RemoveAll(pdir) ps := new(store.Store) ps.Init(pdir) - mdir := NewStore(t) + mdir, err := NewStore() + if err != nil { + return err + } defer os.RemoveAll(mdir) ms := new(store.Store) ms.Init(mdir) @@ -65,16 +65,21 @@ func TestQuery(t *testing.T) { f, err := os.Open("testdata.nq") if err != nil { - t.Error(err) - return + return err } defer f.Close() - count, err := handleRdfReader(f) + _, err = handleRdfReader(f) if err != nil { + return err + } + return nil +} + +func TestQuery(t *testing.T) { + if err := prepare(); err != nil { t.Error(err) return } - t.Logf("Parsed %v RDFs", count) // Parse GQL into internal query representation. g, err := gql.Parse(q0) @@ -132,3 +137,53 @@ func TestQuery(t *testing.T) { } fmt.Println(string(js)) } + +var q1 = ` +{ + al(_xid_: alice) { + status + _xid_ + follows { + status + _xid_ + follows { + status + _xid_ + follows { + _xid_ + status + } + } + } + status + _xid_ + } +} +` + +func BenchmarkQuery(b *testing.B) { + if err := prepare(); err != nil { + b.Error(err) + return + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + g, err := gql.Parse(q1) + if err != nil { + b.Error(err) + return + } + ch := make(chan error) + go query.ProcessGraph(g, ch) + if err := <-ch; err != nil { + b.Error(err) + return + } + _, err = g.ToJson() + if err != nil { + b.Error(err) + return + } + } +} diff --git a/server/testdata.nq b/server/testdata.nq index 60aa89b7..83699eba 100644 --- a/server/testdata.nq +++ b/server/testdata.nq @@ -1,11 +1,11 @@ <alice> <follows> <bob> . <bob> <follows> <fred> . -<bob> <status> "cool_person" . +<bob> <status> "I'm your Uncle Bob!" . <charlie> <follows> <bob> . <charlie> <follows> <dani> . <dani> <follows> <bob> . <dani> <follows> <greg> . -<dani> <status> "cool_person" . +<dani> <status> "Smart Dani" . <emily> <follows> <fred> . <fred> <follows> <greg> . -<greg> <status> "cool_person" . +<greg> <status> "Mr. Cool greg" . -- GitLab