7f4ef552

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Stop settle waiting for a routerboard a CHR does not have

A CHR prints #error exporting "/system/routerboard/mode-button" and two
more like it on every export it will ever produce, and settle counted
any # line containing "error" as configuration that had not resolved
yet. It read the export 108 times over ten minutes in a hand-run and
would never have stopped. A menu RouterOS could not print is not
configuration waiting on something, so those lines are excluded.

Two things kept this hidden. The held router killed itself after 900
seconds, because expect_user inherited the script's timeout, so a test
that took longer lost its vm mid-run; it now holds for as long as
whatever is driving it. And the tool tests passed --username before the
subcommand, which the router refactor had moved onto each subcommand,
so all five failed on argument parsing before reaching a router. The
address is the first positional, so it goes ahead of any file.

The tool call in the tests is now bounded. The tool waits for a router
indefinitely on purpose, but under a test a router that is never coming
back is a suite that never finishes, and one that hangs holds the
build's lock until somebody notices. One did, for twelve hours.

The vm and tool suite passes: 11 of 11.

Total

38s

Created Started Finished

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 8s 8s 9s 0s
Build 8s 29s 29s 38s 0s
Suite 0s 39s 38s 38s 0s

Timeline

Config Eval Build
0s10s20s30s