• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openconfig / ygot / 40421798323
89%
master: 89%

Build:
Build:
LAST BUILD BRANCH: dependabot/github_actions/shogo82148/actions-goveralls-1.11.5
DEFAULT BRANCH: master
Ran 26 Oct 2026 11:47PM UTC
Jobs 1
Files 85
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

26 Oct 2026 11:44PM UTC coverage: 88.302% (-0.5%) from 88.775%
40421798323

Pull #1115

github

robshakir
ygot, ytypes: eliminate recursive JSON normalisation and eager debug allocations

- ygot/render.go, ygot/struct_validation_map.go:
  - Remove recursive normalizeJSONValue (json.Marshal + json.Unmarshal) at
    every container depth in structJSON and jsonValue, reducing RFC7951
    rendering from O(Depth * TreeSize) to O(TreeSize).
  - Add normalizeScalars to jsonOutputConfig: enabled for ConstructIETFJSON
    and MergeStructJSON so writeIETFScalarJSON normalises scalars directly to
    encoding/json.Unmarshal Go types (float64, string, bool) without JSON
    round-trips; disabled for Marshal7951, EncodeTypedValue, and EmitJSON
    where encoding/json serialises the intermediate map directly to bytes.
  - Skip nil Map/Slice/Ptr/Interface fields at the start of structJSON before
    stype.Field(i), prependmodsJSON, and structTagToLibPaths.
  - Pre-size output slices in leaflistToSlice, mapValuePairsToJSON, mapJSON,
    jsonSlice, and jsonAnnotationSlice.
- util/debug.go, util/reflect.go, ytypes/*.go:
  - Add util.IsDebugLibraryEnabled() and util.IsDebugSchemaEnabled(), and
    guard string concatenation in util.DbgErr when debugLibrary is false.
  - Guard eager debug argument evaluations (including O(N^2) pretty.Sprint
    in unmarshalKeyedList, pretty.Sprint(destv.Interface()) and per-field
    dataTreePaths in unmarshalStruct, pretty.Sprint(value) in
    InitializeStructField, and ni.Schema.Path() in dataNodesAtPath) behind
    debugLibrary / debugSchema checks.
- Add ConstructIETFJSON type-parity tests and 5% testing.AllocsPerRun
  regression gates with benchmarks in util, ytypes, and ygot.
Pull Request #1115: ygot, ytypes: eliminate recursive JSON normalisation and eager debug allocations

138 of 220 new or added lines in 10 files covered. (62.73%)

14 existing lines in 3 files now uncovered.

14199 of 16080 relevant lines covered (88.3%)

1678.23 hits per line

Uncovered Changes

Lines Coverage ∆ File
35
87.75
-2.12% ygot/render.go
13
82.49
-2.81% util/reflect.go
7
85.23
-1.23% ytypes/leaf.go
7
85.75
-1.96% ytypes/leafref.go
6
86.59
-3.18% ytypes/container.go
6
88.97
-1.32% ytypes/list.go
4
91.41
-3.04% ytypes/int_type.go
4
90.67
-1.68% ytypes/util_schema.go

Coverage Regressions

Lines Coverage ∆ File
6
82.49
-2.81% util/reflect.go
6
87.75
-2.12% ygot/render.go
2
97.99
0.0% util/gnmi.go
Jobs
ID Job ID Ran Files Coverage
1 40421798323.1 26 Oct 2026 11:47PM UTC 85
88.3
GitHub Action Run
Source Files on build 40421798323
  • Tree
  • List 85
  • Changed 11
  • Source Changed 0
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #1115
  • PR Base - master (#40419440996)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc