* use 7.0.0 Microsoft.Extensions* when targeting net7.0, so .NET 6 vs 7 diff shows the actual difference for Extensions benchmarks, fixes https://github.com/dotnet/runtime/issues/77900
* update net461 to net462 as the 7.0.0 version of System* libraries like System.Threading.Channels do not support net461 anymore
* remove net5.0 (it's not supported anymore)
* the test projects don't need to target old monikers, net7.0 is enough
* Add support for decimals in ValuesGenerator.
As suggested in the documentation, added support for the decimal type.
Also corrected the documentation to properly enumerate the supported types.
Fixes#2546
* Add tests to cover supported types in ValueGenerator
Also required updates to ValueGenerator.GenerateValue method to support byte
* Fix compilation errors in AlignedMemory
On newer platforms, the NativeMemory.AlignedAlloc wants UIntPtr not uint arguments
* Addressed review comments
Added a lot of documentation about what public methods do.
Added exceptions when invalid requests of the unique methods for too many distinct values.
Switched to single-line methods for SupportsXXX
Added notes on why we cannot change the existing behavior of supported types, and what the internal methods do (range and values returned).
Added testing coverage for new exceptions
* Fixed documentation
Failed to call out sbyte support in ValuesGenerator
* copy back the helix job folder for diagnosis
* copy back the helix job folder for diagnosis
* hack:setting WasmNativeWorkload=false for wasm run. should be removed before PR
* fixed merge confict
* fix copyjob
* move copy helix job-* folder code to benchmarks_ci.py
* update benchmarkdotnet version
* add more log info for diagnosis
* suppress an unnecessory exception
* fix copy back job-* folder
* fix copy job
* correct helixuploadroot
* add error handling
* fix copy path
* enabled binlog
* rethrow
* add back copy job folder for diagnosis
* dotnet workload install wasm-tools to work around missing workload error
* run dotnet workload install wasm-tools from dotnet-wasm directory to use the same nuget.config
* install wasm-tools workload from perf directory
* install wasm-tools workload with a specific nuget.config with wasm feed
* fix path
* workdir of install wasm-tools
* Get PR#1891 from main
* update to new version of benchmarkdotnet for wasm aot fixes
* add -d to print diagnostic info for wasm_tools workload installation failure
* Allow to build with local BenchmarkDotNet sources
Make it easier to use custom BenchmarkDotNet sources. Example use:
dotnet build -bl -c Release -p:BenchmarkDotNetSources="\myPath\git\BenchmarkDotNet\" src\benchmarks\micro
* Set _BenchmarkDotNetSourcesN conditionaly
To avoid:
src\harness\BenchmarkDotNet.Extensions\BenchmarkDotNet.Extensions.csproj(6,5): error MSB4184: The expression "[MSBuild]::NormalizeDirectory('')" cannot be evaluated. Parameter "path" cannot have zero length.
* Use _BenchmarkDotNetSourcesN
* Use BenchmarkDotNet sources in payload
* update to newer benchmarkdotnet version
* remove testing code
* update bdn version
* remove duplicated section
* print out args.configuration for diagnosis
* print args
* print args
* minor fix
* looks up wasm in ExtraBenchmarkDotNetArguments
* check wasmEngine for wasm runs
* minor fix
* minor fix
* remove work around code for install wasm_tools workload, WasmNativeWorkload property. mark perf_file.WriteAllBytesAsync not run under wasm since async is not supported under wasm
* add back Directory.Build.props to see if can work around an aot build error
* disable FlushAsync test from wasm run since async is not supported.
Co-authored-by: Radek Doulik <radekdoulik@gmail.com>
* Fix missing links in Scenario Tests Guide doc
`other scenarios` is either missing or should be renamed `basic scenarios` to match [`basic-scenarios.md`](https://github.com/dotnet/performance/blob/main/docs/basic-scenarios.md)
* Update docs/scenarios-workflow.md
* Update docs/scenarios-workflow.md
* Update docs/scenarios-workflow.md
Co-authored-by: Dan Moseley <danmose@microsoft.com>
* Crossgen/Crossgen2 size-on-disk tests
* Add support for size-on-disk assembly testing for crossgen/crossgen2
* This works by running crossgen in the precommand phase to generate a ready-to-run image for the assembly in the given test scenario. The test phase runs the size-on-disk tool to collect size information for the ready-to-run binary.
* Allow crossgen / crossgen2 execution to be hooked into pre.py scripts by factoring out the command line argument handling. crossgen.py can be used as a subparser during argument parsing (via `add_crossgen[2]_arguments`), when populating the evaluated args (`parse_crossgen[2]_args`), and finally returning the crossgen command line arguments to execute the scenario (via `get_crossgen[2]_command_line`).
* Align the crossgen and crossgen2 arguments. We were using `--test-name` and `--single` to represent assembly name. For now, accept both for crossgen until we stop using `--test-name` in Arcade. Later we can remove the deprecated option.
* Always emit crossgen images to `crossgen.out` and clean that up in `post.py`. We can add hierarchy there if we need, but we were starting to pollute the directory structure that the post.py commands take care to clean.
* Add documentation for the new scenario along with example pre, test, post commands
* Update src/scenarios/shared/crossgen.py
Co-authored-by: Bill Wert <billwert@microsoft.com>
Co-authored-by: Bill Wert <billwert@microsoft.com>