Tests and Experiments
This directory contains automated tests, manual diagnostic programs, and standalone experiments. It is separate from src so test-only dependencies and exploratory code are not included in production assemblies.
Directory map
| Directory | Purpose |
|---|---|
StgSharpDebug |
Executable test harness for manual debugging and stress testing of allocators, matrices, rendering, NGRA, and other subsystems. This is not an automated unit-test suite. |
STgSharpTest |
Older MSTest-based tests for the former Script/EXPRESS and related projects. Some references and machine-specific test data are legacy and may require repair before the project can run. |
SingleFile |
Standalone source experiments and generated-code samples that are not part of a project or the normal build. |
Run the active debug harness directly when investigating a subsystem:
dotnet run --project test/StgSharpDebug/StgSharpDebug.csproj
Archived Text Regex diagnostics
The Text Regex analyzer and source-generator preview are frozen. Their original source files
are retained under StgSharpDebug/Legacy/TextRegex and excluded
from compilation, packaging, and build/publish copying. Main no longer calls them, and
--regex-preview is not an active entry point.
The corresponding runtime, text-specific AST/parser, and generator are archived under src/Nitload.RegularAnalysis/Legacy. Generic AST and token infrastructure remain active. See the NGRA transformation plan for the new NFA direction.
Native builds
Building the debug project still builds its normal project references, including Graphics and
Mathematics, and prepares the native library with CMake. BuildNativeBeforeManaged defaults
to true; Debug selects clang-debug, and other configurations select clang-release.
RequireNativeLibrary reports a missing DLL at build time instead of allowing execution to
fail later.
For a managed-only build without a native toolchain or DLL, pass
-p:BuildNativeBeforeManaged=false -p:RequireNativeLibrary=false.
This does not make debug routines that use native services runnable without the native library.
New repeatable tests should use a test project and avoid machine-specific paths, external mutable data, and dependencies on previous test execution. Keep one-off investigations in SingleFile or the manual debug harness until their expected behavior is stable enough for automation.