Repository navigation
tests: pass when a realtime host reports a late servo period - #4751
Merged
Merged
Conversation
servo_delay busy waits inside the servo period, so on a realtime host a late period sends "Unexpected realtime delay" to the error channel, and the test counted it as a failure. Leave that message out, as stale-motion-status already does.
On a realtime host rtapi_app reports a late servo period once per session, and motion passes the report on to the error channel. On the rtpreempt buildbot that happens in a dozen or more tests per run, at a random point. These tests failed on any extra message on the error channel, or expected a specific one next, so leave that report out: axis-type, jog-speed-change, kins-switch, kins-switchkins-core, m62-m68-range, tlo, tp/helix-motion and workplane-preview. linuxcncrsh gets it back from a 'get error' in place of OK, so checkresult turns it back into OK before the diff.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #4749. On a realtime host rtapi_app reports a late servo period once per session ("Unexpected realtime delay on task 0 with period 1000000 ..."), and motion passes that report on to the error channel. On the bookworm rtpreempt buildbot it happens in 12 to 24 tests per run, at a random point, so any test that fails on an extra error channel message fails now and then. Since #4749 that was
probe-queue-not-emptyin 4423, 4424 and 4426,linuxcncrshin 4425 andaxis-typein 4428;jog-speed-change,workplane-previewandtp/helix-motionfailed the same way in October.I went through every test that reads the error channel. These leave the report out now, like
stale-motion-statusandworkplane-retainsince #4749:probe-queue-not-empty,axis-type,jog-speed-change,kins-switchkins-core,m62-m68-range,workplane-preview,tp/helix-motion: failed on any message, or wrote every message into the result.kins-switch,tlo: expected a specific message next.linuxcncrsh: aget errorreturns the report in place ofERROR OK, socheckresultturns it back intoERROR OKbefore the diff. The report is returned once and then cleared, so a real error still shows at the nextget error.The other tests that read the error channel need no change: they wait for one specific message or base their verdict on other checks, and this PR does not change what they check.
kins-switch-unsolvedneeds the same change, but #4758 rewrites that test, so I put it there.To check it I made a local rtapi_app report one late period after a set number of cycles and ran these tests under SCHED_FIFO with the report at 1.5 s, 4 s and 9 s: master's tests failed 7, 4 and 2 of 10, these pass 10 of 10 each time. They also pass without realtime.