mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-29 07:00:31 +03:00
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:
parent
be778c3160
commit
be7c3bbb09
4 changed files with 35 additions and 3 deletions
32
hugolib/siteJSONEncode_test.go
Normal file
32
hugolib/siteJSONEncode_test.go
Normal 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)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue