diff --git a/hugolib/hugo_sites_test.go b/hugolib/hugo_sites_test.go index 5ba49970f..baaa0ce8f 100644 --- a/hugolib/hugo_sites_test.go +++ b/hugolib/hugo_sites_test.go @@ -10,6 +10,7 @@ import ( "path/filepath" "text/template" + "github.com/fortytw2/leaktest" "github.com/fsnotify/fsnotify" "github.com/spf13/afero" "github.com/spf13/hugo/helpers" @@ -185,6 +186,7 @@ func TestMultiSitesBuild(t *testing.T) { } func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) { + defer leaktest.Check(t)() testCommonResetState() siteConfig := testSiteConfig{DefaultContentLanguage: "fr"} sites := createMultiTestSitesForConfig(t, siteConfig, configTemplate, configSuffix) @@ -347,6 +349,7 @@ func doTestMultiSitesBuild(t *testing.T, configTemplate, configSuffix string) { } func TestMultiSitesRebuild(t *testing.T) { + defer leaktest.Check(t)() testCommonResetState() siteConfig := testSiteConfig{DefaultContentLanguage: "fr"} sites := createMultiTestSites(t, siteConfig, multiSiteTOMLConfigTemplate) @@ -654,7 +657,6 @@ func TestChangeDefaultLanguage(t *testing.T) { // Default language is now en, so that should now be the "root" language assertFileContent(t, "public/fr/sect/doc1/index.html", true, "Single", "Bonjour") assertFileContent(t, "public/sect/doc2/index.html", true, "Single", "Hello") - } var multiSiteTOMLConfigTemplate = ` diff --git a/hugolib/site.go b/hugolib/site.go index 87c440d38..8066dbefc 100644 --- a/hugolib/site.go +++ b/hugolib/site.go @@ -526,7 +526,7 @@ func (s *Site) reBuild(events []fsnotify.Event) (whatChanged, error) { // We do this in parallel... even though it's likely only one file at a time. // We need to process the reading prior to the conversion for each file, but // we can convert one file while another one is still reading. - errs := make(chan error) + errs := make(chan error, 2) readResults := make(chan HandledResult) filechan := make(chan *source.File) convertResults := make(chan HandledResult) @@ -611,6 +611,13 @@ func (s *Site) reBuild(events []fsnotify.Event) (whatChanged, error) { s.timerStep("read & convert pages from source") + for i := 0; i < 2; i++ { + err := <-errs + if err != nil { + jww.ERROR.Println(err) + } + } + changed := whatChanged{ source: len(sourceChanged) > 0, other: len(tmplChanged) > 0 || len(i18nChanged) > 0 || len(dataChanged) > 0,