镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

Move SIMD container tests, minipal and SIMD benchmarks tests into runtime tests. - #137077

Merged
lateralusX merged 5 commits into
dotnet:mainfrom
lateralusX:lateralusX/native-simdhash-runtime-tests
Nov 12, 2026
Merged

lateralusX merged 5 commits into
dotnet:mainfrom
lateralusX:lateralusX/native-simdhash-runtime-tests

Conversation

@lateralusX

@lateralusX lateralusX commented Nov 6, 2026 •

Copy link
Copy Markdown
Member

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.

@azure-pipelines

Copy link
Copy Markdown
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.

@lateralusX

Copy link
Copy Markdown
Member Author

/azp run runtime-nativeaot-outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

Comment thread src/tests/tracing/eventpipe/README.md Resolved
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.
Comment thread src/tests/minipal/Directory.Build.props Resolved
@jkotas
jkotas requested review from am11 and a balanced review from Copilot November 9, 2026 18:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 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

@lateralusX lateralusX changed the title Move SIMD container tests and benchmarks into runtime tests. Move SIMD container tests, minipal and SIMD benchmarks tests into runtime tests. Nov 10, 2026

@am11 am11 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thank you!

@lateralusX

Copy link
Copy Markdown
Member Author

/azp run runtime-nativeaot-outerloop

@azure-pipelines

Copy link
Copy Markdown
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.
@lateralusX

Copy link
Copy Markdown
Member Author

@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
u16_strtoui64 case 1 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.

@lateralusX

Copy link
Copy Markdown
Member Author

/azp run runtime-nativeaot-outerloop

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 1 pipeline(s).

@lateralusX
lateralusX merged commit e622ec7 into dotnet:main Nov 12, 2026
170 of 173 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants