1. NETSetup test sweep 2026-09-18 - TODO list
Run against netbase local pack 0.21.0-ModelFeature.421 (netbase ModelFeature HEAD 31e9bf7c91),
NetCore 0.22.6-develop.29, NETCommand 1.5.0-develop.13.
Settings src/local.runsettings (TestCategory!=Prod), artifacts in
src/TestResults/sweep-20260918/.
|
Note
|
this doc only LIST work. Nothing here is fixed - fix is own task. |
1.1. Run result
NETSetup.Tests was re-run 2026-09-18/19 in 12 namespace CHUNKS (own testhost + own TRX each),
because one single process of all 1358 tests got killed by host memory pressure at ~718.
Artifacts: src/TestResults/sweep-20260918/NETSetup.Tests-chunks/.
| Test project | Discovered | Ran | Passed | Failed | State |
|---|---|---|---|---|---|
osisa.OPNSense.Rest.Tests |
24 |
24 |
24 |
0 |
COMPLETE |
osisa.OPNSense.Tests |
39 |
35 |
35 |
0 |
COMPLETE |
osisa.Inventory.Tests |
86 |
83 |
89* |
0 |
COMPLETE |
osisa.Mikrotik.Tests |
241 |
224 |
224 |
0 |
COMPLETE |
osisa.Virtualization.Tests |
164 |
164 |
166* |
0 |
COMPLETE |
NETSetup.Tests |
1419 |
1358 |
1315 |
7 |
COMPLETE (37 not executed) |
*) TRX count higher than the discovery count - data-driven rows expand at execution.
| Chunk | Passed | Failed | Skipped | Duration |
|---|---|---|---|---|
helpers |
394 |
0 |
12 |
102s |
config |
360 |
0 |
7 |
224s |
commands |
133 |
0 |
1 |
3s |
stages |
130 |
1 |
1 |
747s |
customers |
43 |
0 |
8 |
4s |
docs |
128 |
0 |
0 |
3s |
files |
61 |
0 |
2 |
39s |
infra |
4 |
0 |
0 |
2s |
datastore |
11 |
4 |
1 |
~100m (hung in cleanup, testhost killed by hand) |
exe |
35 |
1 |
5 |
600s |
virtual |
16 |
1 |
0 |
4s |
rest |
0 |
0 |
0 |
2s |
Totals across both runs: 1973 discovered, 1888 runnable after the Prod filter, 85 hidden by
TestCategory!=Prod.
1.2. TODO 1 - failing tests (7 of 7, complete)
| # | Test | Symptom | First look |
|---|---|---|---|
1 |
|
|
Publish of the runtime take longer than the global 600s ceiling. Either it hang on a remote source, or it genuinely need its own |
2 |
|
|
Test expect the CLI to REFUSE fast when not elevated. Instead it run 5 minutes. The elevation check either never fire, or the spawned NETSetup.exe block on something before it. |
3 |
|
|
Test read a HARDCODED path into a DEAD agent-session scratchpad dir. Must come from config / test fixture, not a literal. Config-driven rule broken. |
4 |
|
|
Repository report 24 (11 real guests + 13 soft-deleted), native API report 11. The count include soft-deleted entries the native API cannot see. Host state + a real semantic question: should ReadAll include soft-deleted? |
5 |
|
|
Base test assume a clean store. The store carry 11 soft-deleted guests left by earlier aborted runs. Same root as 4. |
6 |
|
|
CANCELLED, not a real assert. Class cleanup hung (see TODO 5), testhost killed by hand so the sweep could continue. Re-run this class alone on a clean host to get a verdict. |
7 |
|
|
Same as 6. |
VERDICT 2026-09-19 - failures 4 to 7 are NOT product bugs. The host was cleaned (19 guests removed:
18 soft-delete markers plus the running TestIpfsNixHyperV) and DataStoreTests re-run:
24 passed, 1 skipped, 0 failed, including all four. ReadAll_ShouldReturnTheSameCountAsTheNativeApi
and …_ReadSoftDeleted_Initial were host-state artefacts; …_SoftDelete_Commit / _NoCommit
were cancelled by my own testhost kill. The clean re-run was itself killed on host memory pressure
before the summary line, so no TRX exist for it - console log
scratchpad/datastore-clean.log.
Real remaining failures: 3 - numbers 1, 2 and 3.
What stay OPEN is the environment, not these tests: the suite ACCUMULATE soft-delete markers and
leave guests RUNNING (NETSetupCrudTest1 and TestIpfsNixHyperV were both Running again after the
re-run), and that is exactly what poison the following run. See TODO 5.
1.3. TODO 2 - tests that never run (85 Prod-filtered)
All hidden by TestCategory!=Prod in src/local.runsettings. This is BY DESIGN - they reach live
hosts (Proxmox nodes, MikroTik/OPNsense boxes, Dropbox image store). Listed so the count is not a
surprise.
| Project | Count | Content |
|---|---|---|
NETSetup.Tests |
61 |
devBuilder03/05/06, devRunner01/02/03 reinstall + verification, Proxmox NixOS Ipfs/Nextcloud, OfflineWin11, Win11 C$, ISO publish |
osisa.Mikrotik.Tests |
17 |
live RouterOS box |
osisa.OPNSense.Tests |
4 |
live OPNsense box |
osisa.Inventory.Tests |
3 |
live inventory source |
Tagging gap CLOSED in this run: ProxmoxOfflineWin11Tests.Connect_ToProxmoxHost_Succeeds reach the
live osisaLib03 node and resolve devBuilder03, but carry only local. Now Prod.
1.4. TODO 3 - tests that never execute (37, NETSetup.Tests)
[Ignore] or Assert.Inconclusive, so they report neither pass nor fail. Reason text below is the
one the test itself carry. Split three ways by HOW DEFENSIBLE the switch-off is - attack group C
first, because a test with no stated reason cannot be told apart from one silenced to make a run
green.
Priority: C (16) before B (10) before A (11).
1.4.1. A - deliberate and justified (11)
Need something this box do not have, and they say so. Leave them, but they belong behind a category
(local / Prod / LongRunning) rather than [Ignore], so a run on a capable host pick them up.
| Test | Reason as given |
|---|---|
|
ExitFailure calls Environment.Exit which crashes test host - integration test only |
|
same - Environment.Exit crashes the test host |
|
same - Environment.Exit crashes the test host |
|
Requires Z: drive (VM config partition) - integration test only |
|
requires the Z: config partition mounted (VM-without-USB path) |
|
Integration test: requires a reachable MikroTik device |
|
Integration test: requires Chocolatey installed locally |
|
Integration test - runs real choco upgrade which takes minutes |
|
Requires elevated permissions and may modify system configuration |
|
Requires elevated permissions and may modify system configuration |
|
RUNTIME |
1.4.2. B - deliberate but the reason is a smell (10)
Switched off on purpose, but the note do not let anyone judge it. Each need a real reason or a delete.
| Test | Reason as given |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.3. C - dark, no reason at all (16) - FIX FIRST
Silently off. Nothing say whether the test is broken, obsolete, or was quieted to get a green run.
| Test | Note |
|---|---|
|
pure unit shape - should be runnable |
|
pure unit shape - should be runnable |
|
exception-path test, no host needed |
|
exception-path test, no host needed |
|
read-only sibling of an A-group test |
|
read-only sibling of an A-group test |
|
config read - why off? |
|
probably need WSL / Linux env - say so |
|
empty DataRow, so it assert nothing anyway |
|
customer config test |
|
touch Dropbox - belong in |
|
touch Dropbox - belong in |
|
touch Dropbox - belong in |
|
touch Hyper-V - belong in |
|
ISO build - belong in |
|
hardware-specific DataRow |
Pattern worth naming: several C entries are not really "ignored tests" at all, they are live /
long-running tests hidden with [Ignore] instead of carrying Prod / local / LongRunning. Tag
them and they disappear from this list by the runsettings filter, honestly.
1.5. TODO 4 - test projects outside NETSetup.sln
On disk, never built or run by a solution sweep. Decide: add to the solution, or drop.
-
src/CarreraMarble.Tests -
src/osisa.KeePass.Tests -
src/osisa.Plantuml.Tests -
src/osisa.LanSweeper.Tests(own solutionsrc/osisa.LanSweeper.sln)
1.6. TODO 5 - infrastructure blockers (not netsetup code)
-
The suite dirty its own host - CLEANED 2026-09-19 (19 guests removed: 18
#-prefixed soft-delete markers plus a runningTestIpfsNixHyperV; two orphan VHDX left atC:\NETSetupImages\NETSetupCrudTest1.vhdxand…\TestIpfsNixHyperV.vhdx). After the re-run the host carryNETSetupCrudTest1ANDTestIpfsNixHyperVRunning again, so the accumulation repeat every run. Until the suite tear its own guests down, a DataStore result is only trustworthy on a freshly cleaned box.HyperVIpfsNodeDeleteTestsrefuse to run at all once markers pile up ("LocalHyperV carry N soft-deleted guest(s); refusing to execute deletions"). -
DataStore class cleanup HANG (first run only) -
HyperVVirtualMachineRepositoryCrudTests2cleanup ("removing 1 machine(s) of this suite") sat idle ~35 min: testhost CPU moved 0.2 s in 25 s whileTestIpfsNixHyperVstayedRunning. Fingerprint of the known netbaseEnsureRemovebug - stop is async, destroy result discarded. The testhost had to be killed by hand, which cancelled failures 6 and 7. MSTestTestTimeoutnever fire (it do not cover class cleanup). CAVEAT: on the clean re-run a similar idle stretch turned out to be a legitimately slow 7m45s test, so low CPU alone do NOT prove a hang - check whether a new result line appear after it. -
netbase HEAD do not build -
osisa.Repositories.slnfail on three GLPI projects nothing else reference. Packed around them with a generatedsrc/osisa.Repositories.NoGlpi.slnf(netbase repo):-
osisa.GLPI/Repositories/GlpiUnitOfWork.cs+Configuration/ServiceCollectionExtensions.cs-Assets,Assistance,GlpiRepositoryMappingsnot in context (source-generator output missing) -
osisa.GLPI/Repositories/GlpiResourceRepository[TEntity,TId].cs:270-JsonObjectambiguous (System.Text.Json.NodesvsRestSharp) -
osisa.GLPI.Generator/GlpiGeneratorRunner.cs:86,94-EnsureDirectoryAsync/EnsureDeleteAsyncambiguous since NetCore add theISubPathoverload besidestring
-
-
netbase .421 is LOCAL ONLY -
C:\_gh\packages. CI and fresh clone cannot restore until netbase publish it. -
One process cannot run the whole suite - a single
dotnet testof all 1358 tests was killed on host memory pressure at ~718. The 12-chunk split (scratchpad/run-netsetup-chunks.sh, one testhost per namespace group) completed. Keep chunking. -
Serena MCP down all session (
:9121SSE refused), so no symbol-level work was possible.