4 Commits
Author SHA1 Message Date
Christoph Wille c694a3a656 Test the desktop CLR lookup in the existing Framework fixture
ILSpy.Tests.Windows already carries a NetFrameworkProcessesTests fixture
with a Windows PowerShell host and a fuller description check, so the
fixture added to ILSpy.Tests with the lookup duplicated it. The two
lookup cases move next to the tests they belong with and the duplicate
file goes away.

Assisted-by: Claude:claude-fable-5-1:Claude Code
2026-09-21 08:19:40 +02:00
Christoph Wille a546eae3ad Tie the .NET Framework fixture host to the test host's lifetime
The PowerShell host used to sleep for a fixed 300 s, so any run in which
the process walks got slow (as happened on a starved CI runner) lost the
host mid-fixture and failed the remaining tests for the wrong reason.
Waiting on the test host's PID makes the fixture independent of wall
clock and also guarantees the host disappears with the test host even
if the teardown never runs.

Assisted-by: Claude:claude-fable-5:Claude Code
2026-08-19 15:03:51 +02:00
Christoph Wille cdeae656fe NuGet August 2026 Updates (#3981)
* Set v11 RTM
* Update features in README.md
* Remove the two 900-iteration process-list scroll tests
* Keep Svg.Controls.Skia.Avalonia at 12.0.0.13
* 10.0.11 and Roslyn for net11p7
* Fix module-scan test failing when PowerShell's NGen images are stale
* Opt Pack NuGets out of the MSBuild server to fix SBOM generation
2026-08-11 21:56:11 +02:00
Christoph Wille d6bf916398 Fix unreachable-process and selection defects in the process dialog
A refused unix socket raises SocketException, which derives from
Win32Exception rather than IOException, so it escaped the filter meant to
skip one unreachable process and failed the whole concurrent enumeration
instead: a machine where any .NET process exits between the port scan and
the connect showed an empty list. The classification is now a named
predicate covering both transports.

Two dialog defects shared a shape - state left behind by a query nobody is
waiting for any more. Rebuilding the bound collection on every filter
keystroke made the grid drop its selection and write that null back,
discarding the assemblies of a process the new filter still matched; and the
branch taken when nothing is selected cleared no loading flag, while the
query it superseded was no longer allowed to, so the progress bar animated
over an empty pane. Relatedly, the two-second command budget expired into a
process listed with null metadata, which made a slow machine look like a
runtime that answered with nothing; it is longer now, and expiry names the
process it gave up on, since the only thing that ever reaches the far end of
that budget is a runtime which will never answer.

The test gaps are closed the same way: a real dynamic assembly pins the
in-memory classification, the managed-only assertion is stated as the
property instead of a list of native names to exclude, and the .NET
Framework path gets live tests. Those showed that a desktop CLR process
mostly reports NGen native images rather than the IL assemblies behind them,
which is now recorded as the fidelity gap it is.

Assisted-by: Claude:claude-opus-5:Claude Code
2026-07-31 12:43:09 +02:00