Documentation
¶
Overview ¶
Package jsontest contains functionality to assist in testing JSON.
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Data = func() (entries []Entry) { fis := mustGet(fs.ReadDir(testdataFS, "testdata")) slices.SortFunc(fis, func(x, y fs.DirEntry) int { return strings.Compare(x.Name(), y.Name()) }) for _, fi := range fis { var entry Entry words := strings.Split(strings.TrimSuffix(fi.Name(), ".json.gz"), "_") for i := range words { words[i] = strings.Title(words[i]) } entry.Name = strings.Join(words, "") filePath := path.Join("testdata", fi.Name()) f := mustGet(testdataFS.Open(filePath)) defer f.Close() mustGet(f.(io.Seeker).Seek(-4, io.SeekEnd)) b := mustGet(io.ReadAll(f)) entry.Size = int(binary.LittleEndian.Uint32(b[:])) entry.Data = sync.OnceValue(func() []byte { b := mustGet(fs.ReadFile(testdataFS, filePath)) zr := mustGet(gzip.NewReader(bytes.NewReader(b))) data := mustGet(io.ReadAll(zr)) if len(data) != entry.Size { panic(fmt.Sprintf("size mismatch: got %d, want %d", len(data), entry.Size)) } return data }) switch entry.Name { case "CanadaGeometry": entry.New = func() any { return new(canadaRoot) } case "CitmCatalog": entry.New = func() any { return new(citmRoot) } case "GolangSource": entry.New = func() any { return new(golangRoot) } case "StringEscaped": entry.New = func() any { return new(stringRoot) } case "StringUnicode": entry.New = func() any { return new(stringRoot) } case "SyntheaFhir": entry.New = func() any { return new(syntheaRoot) } case "TwitterStatus": entry.New = func() any { return new(twitterRoot) } } entries = append(entries, entry) } return entries }()
Data is a list of JSON testdata.
Functions ¶
This section is empty.
Types ¶
Click to show internal directories.
Click to hide internal directories.