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

polserver / polserver / 36186523474
82%

Build:
DEFAULT BRANCH: master
Ran 25 Sep 2026 08:48PM UTC
Jobs 1
Files 856
Run time 2min
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

25 Sep 2026 08:33PM UTC coverage: 81.927% (-0.05%) from 81.977%
36186523474

push

github

web-flow
Prove the client tests' negative assertions with a barrier (#982)

* Retime the client tests' negative waits to what a round trip now costs

A negative assertion pays its whole window every time it passes. The
windows were sized for a 60ms round trip, which now costs about 5ms.

- QUIET_SECS goes from 0.75s to 0.25s, and guild.inc SETTLE_QUIET from
  500ms to 250ms. Both stay a wider multiple of a round trip.
- POLL_INTERVAL goes from 0.1 to 0.02, above the core's 0.01 floor for
  Wait_For_Event.
- Sixteen waits with their own whole-second timeout use QUIET_SECS.
- set_warmode() checks the flag before sleeping, not after.

* Assert what the client tests were shown but never looked at

The client tests received several fields they never checked. They now
assert:

- the quest arrow id matches the id the call returned, and the removal
  names the same arrow;
- the TargetMultiPlacement offsets, hue and allow flag, and the exact
  multi id;
- the menu entry titles;
- that a short buff removal carries no clilocs;
- the prompt serial, and which of the two prompt packets carried it.

A new case pins that SendQuestArrow always receives an arrowid: uo.em
defaults it to 0, so the documented pid fallback cannot be reached. It
is meant to fail once that is fixed.

* Give the client tests a barrier to assert against instead of a window

A negative assertion waited QUIET_SECS and concluded from silence.
client_sync() proves it instead. The client sends a 0x73 keep-alive
with a cookie of its own, and the core echoes it behind everything it
had already queued for that client.

The ping rides the game socket, not the todo channel: a todo is
answered out of the client's loop and can overtake queued packets.

The barrier does not cover anything a timer, task, NPC or script sends
later. Those assertions keep a timed window.

test_client_sync.src pins the ordering. Its key case sends a message
before the barrier and expects the barrier to report it, so removing
the send ma... (continued)

60253 of 73545 relevant lines covered (81.93%)

681278.55 hits per line

Coverage Regressions

Lines Coverage ∆ File
26
83.1
-3.1% pol-core/pol/party.cpp
6
87.59
-4.14% pol-core/pol/network/clientio.cpp
5
53.13
-5.21% pol-core/pol/systems/suspiciousacts.cpp
3
84.73
-0.23% pol-core/pol/ufunc.cpp
2
73.47
-0.38% pol-core/pol/dropitem.cpp
2
63.41
0.0% pol-core/pol/mobile/ufacing.cpp
2
53.97
-0.21% pol-core/pol/network/clientthread.cpp
2
93.06
-1.39% pol-core/pol/network/cliface.cpp
1
87.87
-0.06% pol-core/pol/module/uomod2.cpp
1
90.12
-0.41% pol-core/pol/speech.cpp
1
70.07
-0.23% pol-core/pol/uimport.cpp
1
94.67
-1.33% pol-core/uoconvert/terrainplane.cpp
Jobs
ID Job ID Ran Files Coverage
1 36186523474.1 25 Sep 2026 08:48PM UTC 856
81.93
GitHub Action Run
Source Files on build 36186523474
  • Tree
  • List 856
  • Changed 15
  • Source Changed 0
  • Coverage Changed 15
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • c5083dc6 on github
  • Prev Build on master (#36121560630)
  • Next Build on master (#36192247533)
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