func TestGetChangelogCache(t *testing.T) { const servername = "server1" pack := models.PackageInfo{ Name: "apt", Version: "1.0.0", NewVersion: "1.0.1", } var meta = cache.Meta{ Name: servername, Distro: config.Distro{ Family: "ubuntu", Release: "16.04", }, Packs: []models.PackageInfo{pack}, } const path = "/tmp/vuls-test-cache-11111111.db" log := logrus.NewEntry(&logrus.Logger{}) if err := cache.SetupBolt(path, log); err != nil { t.Errorf("Failed to setup bolt: %s", err) } defer os.Remove(path) if err := cache.DB.EnsureBuckets(meta); err != nil { t.Errorf("Failed to ensure buckets: %s", err) } d := newDebian(config.ServerInfo{}) actual := d.getChangelogCache(&meta, pack) if actual != "" { t.Errorf("Failed to get empty stirng from cache:") } clog := "changelog-text" if err := cache.DB.PutChangelog(servername, "apt", clog); err != nil { t.Errorf("Failed to put changelog: %s", err) } actual = d.getChangelogCache(&meta, pack) if actual != clog { t.Errorf("Failed to get changelog from cache: %s", actual) } // increment a version of the pack pack.NewVersion = "1.0.2" actual = d.getChangelogCache(&meta, pack) if actual != "" { t.Errorf("The changelog is not invalidated: %s", actual) } // change a name of the pack pack.Name = "bash" actual = d.getChangelogCache(&meta, pack) if actual != "" { t.Errorf("The changelog is not invalidated: %s", actual) } }
func setupCangelogCache() error { needToSetupCache := false for _, s := range servers { switch s.getDistro().Family { case "ubuntu", "debian": needToSetupCache = true break } } if needToSetupCache { if err := cache.SetupBolt(config.Conf.CacheDBPath, Log); err != nil { return err } } return nil }