[JIT] CodeGen verification testing (#75102)
authorWill Smith <lol.tihan@gmail.com>
Fri, 23 Sep 2022 22:31:05 +0000 (15:31 -0700)
committerGitHub <noreply@github.com>
Fri, 23 Sep 2022 22:31:05 +0000 (15:31 -0700)
commit7681692bdcb3ab4290194f2ead2bedd929af76d5
treed1ba86c1d820b4e05393b4965e34dbb18d35f337
parent2f8c0ebdeea4bc4b381300705e1639011654480b
[JIT] CodeGen verification testing (#75102)

* Add test

* Add CHECKs

* Build scripts and test settings

* COMPlus -> DOTNET

* Fix filenames

* Missing >

* Missing quotes

* use %scriptPath%

* Rework properties, start two examples

* Arch demo

* Cleanup

* Remove tab

* Easier environment variables.  Undo precommand changes.

* undo blank line

* clean CHECKs

* Draft of bash

* Bash, conditionals

* More variables, start on run.cmd/sh/py

* another output

* Support in cmd/bash for RunningDisasmChecks

* copy, factor, formatting

* Initial work to include FileCheck. Added SuperFileCheck.

* Able to build SuperFileCheck

* Do not DisasmCheck TypeEquality_r for now. Update some FileChecks to follow SuperFileCheck rules.

* Partially wiring up SuperFileCheck to tests

* Piping list of method names from SuperFileCheck to JitDisasm

* Handling bash a little bit

* Moving SuperFileCheck to tests/Common

* Few tweaks

* Building SuperFileCheck as part of the test build

* Tweaking a few things

* Fixed a bug

* Moving SuperFileCheck back to src\coreclr\tools. Removed checks from TypeEquality_r.

* Restore original logic in Runtime_73681

* Trying to add CI leg for disasmchecks

* Use x64 package if x86 platform detected for JIT tools package

* Remove innerloop for disasmchecks

* Trying to fix build. Only run in Windows for now.

* Update Runtime_73681.cs

Trying to fail test

* Trying to fix build

* Update Runtime_73681.cs

* Update Runtime_73681.cs

* Fixing a few issues

* Trying to run disasmchecks as part of CI

* Trying to run disasmchecks

* Trying to run disasmchecks

* Trying to run disasmchecks

* Revert a change

* Trying to run disasmchecks

* Trying to run disasmchecks

* build SuperFileCheck on non-windows

* few tweaks

* Trying to fix CI

* Including SuperFileCheck for tests

* Cleanup

* More cleanup

* Cleanup

* Changed SuperFileCheck to not publish everything. Changed SuperFileCheck's lookup for FileCheck.

* Invoking SuperFileCheck using dotnet

* Making the test pass

* Only run disasm checks for coreclr and not mono

* Using HasBatchDisasmCheck and HasBashDisasmCheck to determine to run the check

* Enabling filecheck on linux and osx

* Added more comments

* Added ARM64 specific test. Do not run SuperFileCheck if no methods were found.

* Added documentation. Changed disasm-output.

* Minor doc tweak

* Minor doc tweak

* Minor doc tweak

* Minor doc tweak

* Minor doc tweak

* Cleanup. Trying to fix linux

* Fixing test

* Add information on additional functionality

* cleanup

* Add FileCheck snippet

* Undo environment variable changes

* Feedback from Mark

* Cleanup

* Trying to fix linux test run

* Trying to fix linux test run

* A few missing changes from the original branch

* Enable OSX for disasm checks

* cleanup / comment

* Force test failure

* Update Runtime_73681.cs

* Set env vars after errorlevel check

* Reverting back on setting environment variables in test. Added new FileCheck test for mod optimization

* Force a failure by changing the register

* Ignore native binaries for superpmi collect

* Update Runtime_34937.cs

* Force the correct failure

* Update Runtime_34937.cs

* Update Runtime_34937.cs

* Adding specific OS check prefixes. Changed dump-input context amount

* Added getting fully qualified method names with wildcards for SuperFileCheck

* More tests. Fixed a few issues with generics.

* Disabling generic support

* Error if it cannot find enclosing type declaration

* Fixing build

* Remove namespac

* Bring generics back, but in a limited form

Co-authored-by: Mark Plesko <markples@microsoft.com>
18 files changed:
docs/workflow/testing/coreclr/disasm-checks.md [new file with mode: 0644]
eng/Subsets.props
eng/Version.Details.xml
eng/Versions.props
src/coreclr/scripts/superpmi_collect_setup.py
src/coreclr/tools/SuperFileCheck/Program.cs [new file with mode: 0644]
src/coreclr/tools/SuperFileCheck/SuperFileCheck.csproj [new file with mode: 0644]
src/tests/Common/CLRTest.Execute.Bash.targets
src/tests/Common/CLRTest.Execute.Batch.targets
src/tests/Common/CLRTest.Jit.targets
src/tests/Common/Directory.Build.targets
src/tests/Directory.Build.targets
src/tests/JIT/Regression/JitBlue/Runtime_33972/Runtime_33972.cs
src/tests/JIT/Regression/JitBlue/Runtime_33972/Runtime_33972.csproj
src/tests/JIT/Regression/JitBlue/Runtime_34937/Runtime_34937.cs
src/tests/JIT/Regression/JitBlue/Runtime_34937/Runtime_34937.csproj
src/tests/JIT/Regression/JitBlue/Runtime_73681/Runtime_73681.cs [new file with mode: 0644]
src/tests/JIT/Regression/JitBlue/Runtime_73681/Runtime_73681.csproj [new file with mode: 0644]