Repository navigation
Move SIMD container tests, minipal and SIMD benchmarks tests into runtime tests. - #137077
Conversation
|
Azure Pipelines: Successfully started running 4 pipeline(s). 11 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
|
/azp run runtime-nativeaot-outerloop |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Port SIMD hash-table correctness coverage and all 18 benchmark workloads into NativeContainerTestsDriver, removing the standalone test sources and benchmark build scripts from src/native/containers. Build container and EventPipe performance suites in all supported configurations, but execute them only through explicit opt-in. Add dedicated performance registries, discovery coverage, and longer timeouts for performance runs.
Relocate the container and EventPipe suites and their shared runner to src/tests/native, mirroring the production source layout. Add a merged runtime-test runner to preserve CI discovery and Helix deployment of both process-isolated suites. Update build imports and move native-test documentation with the tests.
b528d42 to
18cb6ab
Compare
There was a problem hiding this comment.
🔵 Needs a closer look
The merged-runner/Helix packaging changes and newly enabled Debug/Checked performance suites require cross-platform CoreCLR/NativeAOT execution and deployment validation unavailable in this source-only review.
No open issues 🎉
What changed in this PR
This PR consolidates native component tests under src/tests/native, mirroring src/native, and integrates SIMD hash-table correctness coverage and benchmark workloads into the runtime-test infrastructure.
Changes:
- Relocates container and EventPipe tests, adds a merged runner, and updates minipal infrastructure references.
- Builds performance suites in all supported configurations while requiring explicit execution opt-in, with discovery checks and longer process timeouts.
- Removes standalone SIMD test and benchmark sources and scripts, and documents the unified workflow.
No builds or tests were run during this review.
| File | Description |
|---|---|
src/tests/tracing/eventpipe/README.md |
Links to the relocated native-test documentation. |
src/tests/tracing/eventpipe/native/eventpipe/NativeEventPipeTests.cs |
Removes the launcher from its old location. |
src/tests/native/README.md |
Documents layout, builds, and performance opt-in. |
src/tests/native/native.csproj |
Adds the native component merged runner. |
src/tests/native/eventpipe/NativeEventPipeTests.csproj |
Defines the relocated EventPipe launcher project. |
src/tests/native/eventpipe/NativeEventPipeTests.cs |
Adds performance opt-in and discovery checks. |
src/tests/native/eventpipe/native-eventpipe-tests-driver.c |
Registers performance tests as opt-in. |
src/tests/native/eventpipe/ep-thread-tests.c |
Relocates EventPipe thread coverage. |
src/tests/native/eventpipe/ep-tests.c |
Compiles event-writing benchmarks unconditionally. |
src/tests/native/eventpipe/ep-tests-debug.h |
Relocates debug allocation support. |
src/tests/native/eventpipe/ep-session-tests.c |
Relocates session lifecycle coverage. |
src/tests/native/eventpipe/ep-rt-types-test.h |
Relocates standalone host type definitions. |
src/tests/native/eventpipe/ep-rt-tests.c |
Relocates runtime-abstraction tests. |
src/tests/native/eventpipe/ep-rt-test.h |
Relocates runtime-abstraction helpers. |
src/tests/native/eventpipe/ep-rt-test.c |
Relocates platform-specific host support. |
src/tests/native/eventpipe/ep-rt-test-atomic.h |
Relocates atomic-operation helpers. |
src/tests/native/eventpipe/ep-rt-config-test.h |
Relocates standalone host configuration. |
src/tests/native/eventpipe/ep-provider-callback-dataqueue-tests.c |
Relocates provider callback queue coverage. |
src/tests/native/eventpipe/ep-perf-tests.c |
Adds a dedicated performance registry. |
src/tests/native/eventpipe/ep-file-tests.c |
Relocates trace-file coverage. |
src/tests/native/eventpipe/ep-fastserializer-tests.c |
Relocates serializer coverage. |
src/tests/native/eventpipe/ep-buffer-tests.c |
Compiles buffer benchmarks unconditionally. |
src/tests/native/eventpipe/ep-buffer-manager-tests.c |
Compiles buffer-manager benchmarks unconditionally. |
src/tests/native/eventpipe/CMakeLists.txt |
Includes the performance registry in every configuration. |
src/tests/native/Directory.Build.targets |
Updates the parent build-target import. |
src/tests/native/Directory.Build.props |
Integrates merged-runner build properties. |
src/tests/native/containers/NativeContainerTests.csproj |
Defines the relocated container launcher project. |
src/tests/native/containers/NativeContainerTests.cs |
Adds SIMD coverage, performance opt-in, and discovery checks. |
src/tests/native/containers/native-container-tests-driver.c |
Registers SIMD correctness and opt-in performance groups. |
src/tests/native/containers/dn-umap-tests.c |
Relocates unordered-map coverage. |
src/tests/native/containers/dn-queue-tests.c |
Relocates queue coverage. |
src/tests/native/containers/dn-container-perf-tests.c |
Adds the container performance registry. |
src/tests/native/containers/CMakeLists.txt |
Includes SIMD tests and links minipal. |
src/tests/native/common/test.h |
Adds default-execution metadata to test groups. |
src/tests/native/common/test.c |
Relocates shared test execution and failure reporting. |
src/tests/native/common/NativeTestProcess.cs |
Supports caller-selected process timeouts. |
src/tests/native/common/driver.c |
Adds opt-in filtering and --list-all discovery. |
src/tests/minipal/native-minipal-tests-driver.c |
Marks minipal groups for default execution. |
src/tests/minipal/Directory.Build.targets |
Imports relocated native-test targets. |
src/tests/minipal/Directory.Build.props |
Retains standalone execution with shared infrastructure. |
src/tests/minipal/CMakeLists.txt |
Uses the relocated common native runner. |
src/native/containers/simdhash-benchmark/run-benchmark.ps1 |
Removes the standalone Windows benchmark script. |
src/native/containers/simdhash-benchmark/measurement.h |
Removes standalone measurement declarations. |
src/native/containers/simdhash-benchmark/Makefile |
Removes standalone benchmark build targets. |
src/native/containers/simdhash-benchmark/ghashtable.h |
Removes the old comparison-table header. |
src/native/containers/simdhash-benchmark/ghashtable.c |
Removes the old comparison-table source. |
src/native/containers/simdhash-benchmark/benchmark.c |
Removes the standalone benchmark runner. |
src/native/containers/simdhash-benchmark/all-measurements.h |
Removes standalone workload definitions. |
src/native/containers/simdhash-benchmark/all-measurements.c |
Removes standalone workload registration. |
src/native/containers/dn-simdhash-test.c |
Removes the standalone SIMD correctness executable source. |
Review effort: Balanced
|
/azp run runtime-nativeaot-outerloop |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Accept POSIX-permitted EINVAL when no conversion is expected in the u16_strtoul and u16_strtoui64 tests. Preserve return-value, end-pointer, and overflow assertions. Add empty-input coverage for u16_strtoui64.
|
@am11, moving minipal under the native merged runner brought these tests into normal helix execution and exposed a macOS-specific assertion: u16_strtoul case 2 set errno to 22 instead of 0 parsing "Z" in base 10 sets errno to EINVAL on macos, which POSIX permits when no conversion occurs. Made a fix that accepts EINVAL only for expected no-conversion cases, preserving the return-value, end-pointer, and overflow checks. |
|
/azp run runtime-nativeaot-outerloop |
|
Azure Pipelines: Successfully started running 1 pipeline(s). |
Port SIMD hash-table correctness coverage and all 18 benchmark workloads into NativeContainerTestsDriver, removing the standalone test sources and benchmark build scripts from src/native/containers.
Build container and EventPipe performance suites in all supported configurations, but execute them only through explicit opt-in. Add dedicated performance registries, discovery coverage, and longer timeouts for performance runs.
PR also moves the native tests into new tests/native mirroring src/native folder layout.
PR also moves minipal native tests into new tests/native folder.