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

umputun / feed-master / 35482477981
75%

Build:
DEFAULT BRANCH: master
Ran 20 Sep 2026 01:53AM UTC
Jobs 1
Files 16
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

20 Sep 2026 01:51AM UTC coverage: 74.631%. Remained the same
35482477981

push

github

web-flow
Remove timing races from youtube service tests (#176)

fixes the four timing-dependent tests paskal reported in #175. Each one asserted on work that had to finish inside a short deadline, so they failed on slower machines and passed here.

`TestService_Do` and `TestService_DoIsAllowedFilter` ran `Do` under a 900ms deadline with a 500ms ticker, so the initial pass and one tick both had to land inside it. The tick only adds two more `ChannelService.Get` calls: the store contents, the downloader calls, the duration calls and both RSS files all come from the first pass, because on the second pass every entry is either already stored, already marked processed, or filtered out, so `isNew` never returns true and nothing is written. Both tests now call `procChannels` twice directly, so every assertion holds unconditionally, and they are renamed to `TestService_procChannels` and `TestService_procChannelsIsAllowedFilter` to match what they exercise. `CheckDuration` went with the deadline, it only drives `Do`'s ticker.

`TestService_DoYtDlpUpdateOnStartup` killed its own `touch` command, because `exec.CommandContext` shares the test's context and the 600ms deadline expired mid-flight. `Do` now runs on a goroutine and each subtest waits on the observable signal, the marker file for the enabled case and a fresh `ChannelService.Get` for the disabled one, since `Do` runs the startup update before the first channel poll. Cancel-and-join is registered through `t.Cleanup` immediately after the goroutine starts, before any assertion that can call `FailNow`, and the explicit cancel and join after the wait stay for the success path. Without the `t.Cleanup` half, a failed wait leaves `Do` running into the next subtest and past `db.Close()`.

`TestChannel_Get` drops its one second `http.Client` timeout. The server is in-process, and CI's `-timeout=100s` still bounds a genuinely hung request.

`TestService_Do` is now the test that actually covers the `Do` loop. Its two subte... (continued)

1468 of 1967 relevant lines covered (74.63%)

10.7 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35482477981.1 20 Sep 2026 01:53AM UTC 16
74.63
GitHub Action Run
Source Files on build 35482477981
  • Tree
  • List 16
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 6f302eb3 on github
  • Prev Build on master (#35482446996)
  • Next Build on master (#35482499508)
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