diff --git a/server/main_test.go b/server/main_test.go index 1fb2b3d1daa78e37a705994c3288bdd3579822ad..45d30bc9b21f3ac6beaeb15401d4a9bd66f487d8 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 60aa89b782f373ee10edb3e5ca92e503bc02fafc..83699eba9e4c0e93cc38444c1ec7ef8d0094948d 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" .