Files
infix/test/case/system/factory_config/Readme.adoc
T
Richard Alpe d333c66f9c test: add generic boot-from-factory-config test
Verify that the device's factory-default configuration boots cleanly and
that the device remains usable afterwards -- i.e. it does not fall back to
the fail-secure failure-config.

The test exercises the device's own first-boot bootstrap path: it clears
the startup-config and reboots with the test-mode startup override set, so
confd initialises running from the factory-config (its first-boot path).
That mirrors a factory-fresh / factory-reset device and avoids applying a
full config swap over the live management session -- confd cannot replace
the whole running datastore from within an RPC without timing out, and a
factory config may reconfigure the very transport we are connected over.

The test is image-generic, using whatever factory-config the running image
was built with, so it covers both the stock Infix factory config and any
spin factory config. A single-node (1x1) topology is used on purpose: a
factory config is not written with a lab full of peers in mind, so booting
it across a multi-node topology could trigger broadcast storms or similar.
NETCONF only, as it is the one management transport present in every
factory config.

Signed-off-by: Richard Alpe <richard@bit42.se>
2026-06-30 10:32:43 +02:00

35 lines
1.3 KiB
Plaintext

=== Boot From Factory Config
ifdef::topdoc[:imagesdir: {topdoc}../../test/case/system/factory_config]
==== Description
Verify that the device's factory-default configuration boots cleanly and
that the device remains usable afterwards -- i.e. it does not fall back to
the fail-secure failure-config.
This exercises the device's own first-boot bootstrap path: with no
startup-config present, confd initialises running from the factory-config.
That is exactly what a factory-fresh (or factory-reset) device does, and
it avoids applying a full config swap over the live management session.
The test is image-generic: it uses whatever factory-config the running
image was built with, so it covers both the stock Infix factory config and
any spin factory config.
A single-node topology is used on purpose: a factory config is not written
with a lab full of peers in mind, so applying it across a multi-node
topology could trigger broadcast storms or similar.
==== Topology
image::topology.svg[Boot From Factory Config topology, align=center, scaledwidth=75%]
==== Sequence
. Set up topology and attach to target DUT
. Determine factory-config hostname
. Clear startup-config so the device boots from factory
. Reboot onto the factory config
. Verify device is usable and not in failure-config