func testQueryType(t test.TB, fn func(*queryTest), itype indexType) { defer index.SetVerboseCorpusLogging(true) index.SetVerboseCorpusLogging(false) idx := index.NewMemoryIndex() // string key-value pairs in memory, as if they were on disk var err error var corpus *index.Corpus if itype == indexCorpusBuild { if corpus, err = idx.KeepInMemory(); err != nil { t.Fatal(err) } } qt := &queryTest{ t: t, id: indextest.NewIndexDeps(idx), } qt.id.Fataler = t qt.Handler = func() *Handler { h := NewHandler(idx, qt.id.SignerBlobRef) if itype == indexCorpusScan { if corpus, err = idx.KeepInMemory(); err != nil { t.Fatal(err) } idx.PreventStorageAccessForTesting() } if corpus != nil { h.SetCorpus(corpus) } return h } fn(qt) }
func testQueryTypes(t test.TB, types []indexType, fn func(*queryTest)) { defer test.TLog(t)() for _, it := range types { if *queryType == "" || *queryType == it.String() { t.Logf("Testing: --querytype=%s ...", it) testQueryType(t, fn, it) } } }