7f4ef552

Created Started Finished

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.