mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-10-17 18:11:42 -07:00
forgetest tests: the confirmed trims of the tool's own unit tests
The cases that tested a mock, a timer, a wording or a table, or that
replayed a judgment a host test already holds, leave forgetest/tests.
What catches a false PASS, keeps the bench safe, or guards the gate
stays.
- test_baseline: the fake sysfs tree is a mixin with no test_ methods,
so ExtensionFreeTests and BaselineModeTests no longer re-run
BaselineTests' 25 cases (133 runs, now 45). CoolPublishTests, the
lamp-fade cases and TransientNotLeftoverTests go; PositionDeadbandTests
keeps a reading past the band and an unreadable reading, both never
excused. Both latch-relock cases stay.
- test_fixture: MdnsTests, the three timing cases, the probe's log
wording, and nine prompt-routing variants go. A live test never runs
unattended, the arm-press opt-in, the short-press edge, the presence
press handing over the arm press, and the arm notice dropping at the
press stay (35 cases, now 21).
- test_cloud_suite: three false-PASS guards stay: the latch open at a
dark print's button, a lid stop that is not edge-driven, the kernel
refusing the resume. The guards for the latch unlocking in the hold
and a paused print resuming left with their catalog tests in 6a434bb.
The rest go, with the harness pieces and the hunt-lid fixture only
they read (41 cases, now 3).
- test_cooling_suite: GateOffTests, CriticalTierTests, FanGateTests and
FansQuietTests go with their harness; the flow verdict's log reads
stay: only the text after the offset, never an older verdict before it
(the flow-under-load false-PASS guard), a rotated log read whole.
- test_queue: RunClockTests and three ordering cases go, and refusals
are judged by a reason given, not its words; both live
acknowledgment cases stay.
- test_takeover_position: the six cases that judge the head and move
nothing stay.
- test_camera_home_return: the five cases where the head must not move
stay, and so do the three that check the hand-back jog's direction and
distance (homed, unhomed with the counters not counted twice, after
cloud mode): a wrong sign or a double count drives the head into the
gantry stops (15 cases, now 8).
- test_server: the keep-alive and ETag cases, the takeover and scope
half of the bench case, and the page's self-contained asserts
(test_page.py's) go.
- test_operator: the wording cases, the fixture case (test_fixture.py's)
and JournalTests go.
- test_mode: the supervisor timeout table goes.
- test_takeover_client: the listener, the offline service back, the
online client without the hunt, and GRBL under no marker stay.
- test_responsiveness: PageTests and ImplementationCostTests go; the
log cache keeps appends, a partial line, a replaced file and a fresh
list, and the fingerprint cache a changed manifest and one with no
content hash.
- test_bench_registry: GfbenchTests and two description and argument
pins go.
- test_installer: the log-format and TLS-wording cases and
InstallerShapeTests go; the die case checks the reason is in the log,
not its format.
- test_image: KernelIdentTests and the registration pin go.
Each file's __main__ guard now ends the file, and the docstrings say what
each still proves.
Proof: each of the fifteen files passes under Linux as forgetest-ci
discovers it, and pyflakes reports nothing new in them.
Acceptance: none; test-only.
This commit is contained in:
@@ -9,9 +9,9 @@ that client is comes only from gfcloud's one-start markers. Started bare it
|
||||
is the online client with the service's connect-time hunt, and the moves
|
||||
the service sends after the hunt outlast the run. The start is made under
|
||||
the no-hunt marker, and under the offline marker when the takeover found
|
||||
the offline service, which it then proves came back; a miss is a leftover
|
||||
that fails the run. Runs against the fake forgectrl, a fake /proc, and a
|
||||
fake init script that plays the client's start."""
|
||||
the offline service, which it then proves came back. Runs against the
|
||||
fake forgectrl, a fake /proc, and a fake init script that plays the
|
||||
client's start."""
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
@@ -141,38 +141,6 @@ class TakeoverClientTests(unittest.TestCase):
|
||||
self.assertTrue(any("back as the offline service (pid %d)" % self.NEW_PID in l for l in run.lines),
|
||||
run.lines)
|
||||
|
||||
def test_an_online_client_after_the_offline_service_fails_the_run(self):
|
||||
# the client that came up is not listening: an online client, or
|
||||
# a marker the start never saw
|
||||
self._offline_client(self.OLD_PID)
|
||||
real = self._initd
|
||||
|
||||
def lost_marker(service, action, timeout=60):
|
||||
if action == "start" and os.path.exists(baseline.OFFLINE_MARKER):
|
||||
os.remove(baseline.OFFLINE_MARKER)
|
||||
return real(service, action, timeout)
|
||||
hw.initd = lost_marker
|
||||
cap, run = self.takeover()
|
||||
self.assertEqual(cap["restart_clients"],
|
||||
[{"where": "takeover end", "expected": "the offline service",
|
||||
"found": "a client that is not the offline service (pid %d)" % self.NEW_PID}])
|
||||
left = baseline.Baseline(run.log)
|
||||
items = []
|
||||
left._preserved(items, cap)
|
||||
self.assertEqual([x.item for x in items], ["cloud client at the takeover end"])
|
||||
self.assertTrue(items[0].action.startswith("not restored"), items[0].action)
|
||||
|
||||
def test_no_client_started_takes_the_markers_down(self):
|
||||
# the gate closed, or standby: nothing read the markers, and a
|
||||
# later start must not come up offline or without its hunt
|
||||
self._offline_client(self.OLD_PID)
|
||||
self.comes_up = "gated"
|
||||
cap, run = self.takeover()
|
||||
self.assertEqual(self.at_start, ["gfcloud-nohunt", "gfcloud-offline"])
|
||||
self.assertEqual(self.markers_left(), [])
|
||||
self.assertEqual(len(cap["restart_clients"]), 1)
|
||||
self.assertIn("no cloud client running", cap["restart_clients"][0]["found"])
|
||||
|
||||
def test_an_online_client_comes_back_without_the_hunt(self):
|
||||
cap, run = self.takeover()
|
||||
self.assertEqual(self.at_start, ["gfcloud-nohunt"])
|
||||
@@ -180,14 +148,6 @@ class TakeoverClientTests(unittest.TestCase):
|
||||
self.assertNotIn("restart_clients", cap)
|
||||
self.assertEqual(self.markers_left(), [])
|
||||
|
||||
def test_a_stale_offline_socket_file_is_not_the_offline_service(self):
|
||||
# a socket another process left at the path: the online client
|
||||
# found stays online
|
||||
self._socket(99, 7002, baseline.OFFLINE_SOCKET)
|
||||
cap, run = self.takeover()
|
||||
self.assertEqual(self.at_start, ["gfcloud-nohunt"])
|
||||
self.assertNotIn("restart_clients", cap)
|
||||
|
||||
def test_grbl_mode_starts_under_no_marker(self):
|
||||
self.fc.state["mode"] = {"mode": "grbl", "controller": "running", "pid": self.OLD_PID,
|
||||
"motion": "verified"}
|
||||
|
||||
Reference in New Issue
Block a user