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

FROSADO / onecloudriver / 32080850087
78%

Build:
DEFAULT BRANCH: main
Ran 17 Aug 2026 11:36PM UTC
Jobs 1
Files 47
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

17 Aug 2026 11:32PM UTC coverage: 78.311% (+0.1%) from 78.169%
32080850087

push

github

web-flow
fix(fs): apply root-level delta changes (canonicalize the drive root ID) (#102)

* fix(fs): apply root-level delta changes (canonicalize the drive root ID)

Graph delta items reference the drive root by its real item ID (e.g.
"DF54...!sea8cc...") in parentReference, while the InodeCache stores the root
inode under graph.RootID ("root"). applyDelta's parent lookup therefore
missed and root-level changes (create/edit/delete/rename at the drive root)
were silently skipped as "parent not in cache" — in the mount's delta loop
and in the manual `onecloudriver sync` command (#73).

- delta.go: new resolveParentID maps the real root ID to "root" for the
  cache lookup. The real ID is learned at most once from (a) the delta root
  item itself when present in the cycle (free, no network), or (b) a lazy
  GetItem(root) on the first parent miss (sync.Once, fails gracefully, at
  most one extra call per DeltaSync lifetime) — so cycles carrying only a
  root-level edit (no root item) also apply.
- The delta root item now also refreshes the cached root's folder metadata
  (childCount) and persists it as dirty.
- Tests: applyDelta root-level new item (ID learned from the root item),
  root-level content change (ID learned via lazy GetItem), and an end-to-end
  pollAndApply cycle [root item, root-level file] (the #73 scenario). The
  BoundedMemory mock is now path-aware so the lazy GetItem
  (/me/drive/root) answers 404 without consuming a delta page slot. All
  three fail against the pre-fix code.

Closes #101

* test(fs): fix unsigned underflow in BoundedMemory heap measurement

Under -count=N -race the process heap can carry leftovers from previous
iterations, so the mid-sync peak can read lower than the baseline sampled
before it; peak - baseline then underflows to a gigantic uint64 and fails
spuriously. Use saturating subtraction. Caught by the Stress CI job
(race x10).

37 of 37 new or added lines in 1 file covered. (100.0%)

2 existing lines in 1 file now uncovered.

4459 of 5694 relevant lines covered (78.31%)

3461.64 hits per line

Coverage Regressions

Lines Coverage ∆ File
2
84.91
-3.77% internal/graph/children.go
Jobs
ID Job ID Ran Files Coverage
1 32080850087.1 17 Aug 2026 11:36PM UTC 47
78.31
GitHub Action Run
Source Files on build 32080850087
  • Tree
  • List 47
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • ad5bdc8f on github
  • Prev Build on main (#32078980380)
  • Next Build on main (#32109894159)
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