Prevent cyclic ref crash in JSON encode

Note that this commit makes no promise about great JSON output from the encoder, but the cyclic refs should be broken.

Fixes #1123
This commit is contained in:
bep 2015-05-23 12:28:01 +02:00
parent be778c3160
commit be7c3bbb09
4 changed files with 35 additions and 3 deletions

View file

@ -0,0 +1,32 @@
package hugolib
import (
"encoding/json"
"fmt"
"testing"
)
// Issue #1123
// Testing prevention of cyclic refs in JSON encoding
// May be smart to run with: -timeout 4000ms
func TestEncodePage(t *testing.T) {
// borrowed from menu_test.go
s := createTestSite(MENU_PAGE_SOURCES)
testSiteSetup(s, t)
j, err := json.Marshal(s)
check(t, err)
fmt.Println("Site as JSON", string(j))
p, err := json.Marshal(s.Pages[0])
check(t, err)
fmt.Println("Page as JSON", string(p))
}
func check(t *testing.T, err error) {
if err != nil {
t.Fatalf("Failed %s", err)
}
}