func TestLikeGoSubFolder(t *testing.T) { pos_cases := []string{ "go", "v8", "v-8", } for _, c := range pos_cases { assert.True(t, fmt.Sprintf("LikeGoSubFolder %v", c), LikeGoSubFolder(c)) } neg_cases := []string{ "js", "1234", "1234-5678", "1234_5678", } for _, c := range neg_cases { assert.False(t, fmt.Sprintf("LikeGoSubFolder %v", c), LikeGoSubFolder(c)) } }
func TestBoltFileCache(t *testing.T) { fn := filepath.Join(os.TempDir(), "TestBoltFileCache.bolt") assert.NoErrorOrDie(t, os.RemoveAll(fn)) db, err := bh.Open(fn, 0755, nil) assert.NoErrorOrDie(t, err) counter := make(map[string]int) c := BoltFileCache{ DB: db, IncCounter: func(name string) { counter[name] = counter[name] + 1 }, } const ( sign1 = "abc" sign2 = "def" sign3 = "ghi" gofile = "file.go" rootfolder = "root" sub = "sub" subfolder = "root/sub" ) fi := &sppb.GoFileInfo{} ////////////////////////////////////////////////////////////// // New file found. ////////////////////////////////////////////////////////////// // Get before set, should return false assert.False(t, "c.Get", c.Get(sign1, fi)) assert.Equal(t, "counter", counter, map[string]int{ "crawler.filecache.missed": 1, }) // Set the info. c.Set(sign1, &sppb.GoFileInfo{Status: sppb.GoFileInfo_ShouldIgnore}) assert.Equal(t, "counter", counter, map[string]int{ "crawler.filecache.missed": 1, "crawler.filecache.sign_saved": 1, }) // Now, should fetch the cache assert.True(t, "c.Get", c.Get(sign1, fi)) assert.Equal(t, "fi", fi, &sppb.GoFileInfo{Status: sppb.GoFileInfo_ShouldIgnore}) assert.Equal(t, "counter", counter, map[string]int{ "crawler.filecache.missed": 1, "crawler.filecache.sign_saved": 1, "crawler.filecache.hit": 1, }) }
func TestFindFullPackage_NotFound(t *testing.T) { db := &searcherDB{} _, found := db.FindFullPackage("abc") assert.False(t, "found", found) }
func TestNullFileCache(t *testing.T) { c := NullFileCache{} c.Set("", nil) assert.False(t, "c.Get", c.Get("", nil)) }