Skip to content

Commit

Permalink
Merge pull request #90562 from carlossanlop/release/6.0-staging
Browse files Browse the repository at this point in the history
[release/6.0][manual] Merge release/6.0-staging into release/6.0
  • Loading branch information
carlossanlop authored Aug 15, 2023
2 parents e1ed4b0 + 9a0cc47 commit 762f437
Show file tree
Hide file tree
Showing 18 changed files with 205 additions and 124 deletions.
56 changes: 28 additions & 28 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Dependencies>
<ProductDependencies>
<Dependency Name="Microsoft.NETCore.Runtime.ICU.Transport" Version="6.0.0-rtm.23315.1">
<Dependency Name="Microsoft.NETCore.Runtime.ICU.Transport" Version="6.0.0-rtm.23409.1">
<Uri>https://github.com/dotnet/icu</Uri>
<Sha>18b103db239331f9b917e741b13c95eddf32f6df</Sha>
<Sha>0397ca2c2ed47ae1c490edde1fac14ec7200eb71</Sha>
</Dependency>
<Dependency Name="System.Net.MsQuic.Transport" Version="6.0.0-servicing.22205.1">
<Uri>https://github.com/dotnet/msquic</Uri>
Expand Down Expand Up @@ -102,49 +102,49 @@
<Uri>https://github.com/microsoft/vstest</Uri>
<Sha>140434f7109d357d0158ade9e5164a4861513965</Sha>
</Dependency>
<Dependency Name="System.ComponentModel.TypeConverter.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.ComponentModel.TypeConverter.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Data.Common.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Data.Common.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Drawing.Common.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Drawing.Common.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.IO.Compression.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.IO.Compression.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.IO.Packaging.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.IO.Packaging.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Net.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Net.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Private.Runtime.UnicodeData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Private.Runtime.UnicodeData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Runtime.TimeZoneData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Runtime.TimeZoneData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Security.Cryptography.X509Certificates.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Security.Cryptography.X509Certificates.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="System.Windows.Extensions.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Windows.Extensions.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.CilStrip.Sources" Version="6.0.0-beta.23316.2">
<Dependency Name="Microsoft.DotNet.CilStrip.Sources" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="runtime.linux-arm64.Microsoft.NETCore.Runtime.Mono.LLVM.Sdk" Version="11.1.0-alpha.1.21416.1">
<Uri>https://github.com/dotnet/llvm-project</Uri>
Expand Down Expand Up @@ -242,13 +242,13 @@
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-optimization</Uri>
<Sha>d50065944d8b41d804448a7056351481d583ad3d</Sha>
</Dependency>
<Dependency Name="Microsoft.DotNet.HotReload.Utils.Generator.BuildTool" Version="6.0.0-alpha.0.23316.3">
<Dependency Name="Microsoft.DotNet.HotReload.Utils.Generator.BuildTool" Version="6.0.0-alpha.0.23411.2">
<Uri>https://github.com/dotnet/hotreload-utils</Uri>
<Sha>2293d2ba069595f1c87f4e002c84cbab7201bfe7</Sha>
<Sha>dd752be1a2fa9ea5c55fbbf1e28dc65902b3a476</Sha>
</Dependency>
<Dependency Name="System.Runtime.Numerics.TestData" Version="6.0.0-beta.23316.2">
<Dependency Name="System.Runtime.Numerics.TestData" Version="6.0.0-beta.23410.1">
<Uri>https://github.com/dotnet/runtime-assets</Uri>
<Sha>60b420e88cdd0ec0becb2115e14288adc1a1cb55</Sha>
<Sha>b642300c07f64ba35fdf1e2d2c4476107519f8f4</Sha>
</Dependency>
<Dependency Name="Microsoft.CodeAnalysis.NetAnalyzers" Version="6.0.0-rc1.21413.4">
<Uri>https://github.com/dotnet/roslyn-analyzers</Uri>
Expand Down
29 changes: 15 additions & 14 deletions eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -108,18 +108,18 @@
<SystemValueTupleVersion>4.5.0</SystemValueTupleVersion>
<runtimenativeSystemIOPortsVersion>6.0.0-rc.1.21415.6</runtimenativeSystemIOPortsVersion>
<!-- Runtime-Assets dependencies -->
<SystemRuntimeNumericsTestDataVersion>6.0.0-beta.23316.2</SystemRuntimeNumericsTestDataVersion>
<SystemComponentModelTypeConverterTestDataVersion>6.0.0-beta.23316.2</SystemComponentModelTypeConverterTestDataVersion>
<SystemDataCommonTestDataVersion>6.0.0-beta.23316.2</SystemDataCommonTestDataVersion>
<SystemDrawingCommonTestDataVersion>6.0.0-beta.23316.2</SystemDrawingCommonTestDataVersion>
<SystemIOCompressionTestDataVersion>6.0.0-beta.23316.2</SystemIOCompressionTestDataVersion>
<SystemIOPackagingTestDataVersion>6.0.0-beta.23316.2</SystemIOPackagingTestDataVersion>
<SystemNetTestDataVersion>6.0.0-beta.23316.2</SystemNetTestDataVersion>
<SystemPrivateRuntimeUnicodeDataVersion>6.0.0-beta.23316.2</SystemPrivateRuntimeUnicodeDataVersion>
<SystemRuntimeTimeZoneDataVersion>6.0.0-beta.23316.2</SystemRuntimeTimeZoneDataVersion>
<SystemSecurityCryptographyX509CertificatesTestDataVersion>6.0.0-beta.23316.2</SystemSecurityCryptographyX509CertificatesTestDataVersion>
<SystemWindowsExtensionsTestDataVersion>6.0.0-beta.23316.2</SystemWindowsExtensionsTestDataVersion>
<MicrosoftDotNetCilStripSourcesVersion>6.0.0-beta.23316.2</MicrosoftDotNetCilStripSourcesVersion>
<SystemRuntimeNumericsTestDataVersion>6.0.0-beta.23410.1</SystemRuntimeNumericsTestDataVersion>
<SystemComponentModelTypeConverterTestDataVersion>6.0.0-beta.23410.1</SystemComponentModelTypeConverterTestDataVersion>
<SystemDataCommonTestDataVersion>6.0.0-beta.23410.1</SystemDataCommonTestDataVersion>
<SystemDrawingCommonTestDataVersion>6.0.0-beta.23410.1</SystemDrawingCommonTestDataVersion>
<SystemIOCompressionTestDataVersion>6.0.0-beta.23410.1</SystemIOCompressionTestDataVersion>
<SystemIOPackagingTestDataVersion>6.0.0-beta.23410.1</SystemIOPackagingTestDataVersion>
<SystemNetTestDataVersion>6.0.0-beta.23410.1</SystemNetTestDataVersion>
<SystemPrivateRuntimeUnicodeDataVersion>6.0.0-beta.23410.1</SystemPrivateRuntimeUnicodeDataVersion>
<SystemRuntimeTimeZoneDataVersion>6.0.0-beta.23410.1</SystemRuntimeTimeZoneDataVersion>
<SystemSecurityCryptographyX509CertificatesTestDataVersion>6.0.0-beta.23410.1</SystemSecurityCryptographyX509CertificatesTestDataVersion>
<SystemWindowsExtensionsTestDataVersion>6.0.0-beta.23410.1</SystemWindowsExtensionsTestDataVersion>
<MicrosoftDotNetCilStripSourcesVersion>6.0.0-beta.23410.1</MicrosoftDotNetCilStripSourcesVersion>
<!-- dotnet-optimization dependencies -->
<optimizationwindows_ntx64MIBCRuntimeVersion>1.0.0-prerelease.21416.5</optimizationwindows_ntx64MIBCRuntimeVersion>
<optimizationwindows_ntx86MIBCRuntimeVersion>1.0.0-prerelease.21416.5</optimizationwindows_ntx86MIBCRuntimeVersion>
Expand All @@ -145,7 +145,8 @@
<MicrosoftNETTestSdkVersion>17.4.0-preview-20220707-01</MicrosoftNETTestSdkVersion>
<MicrosoftDotNetXHarnessTestRunnersXunitVersion>6.0.0-prerelease.23401.2</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
<MicrosoftDotNetXHarnessCLIVersion>6.0.0-prerelease.23401.2</MicrosoftDotNetXHarnessCLIVersion>
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>6.0.0-alpha.0.23226.4</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>6.0.0-alpha.0.23411.2</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
<MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>6.0.0-alpha.0.23367.3</MicrosoftDotNetHotReloadUtilsGeneratorBuildToolVersion>
<XUnitVersion>2.4.2-pre.9</XUnitVersion>
<XUnitRunnerVisualStudioVersion>2.4.2</XUnitRunnerVisualStudioVersion>
<CoverletCollectorVersion>1.3.0</CoverletCollectorVersion>
Expand All @@ -162,7 +163,7 @@
<MicrosoftNETILLinkTasksVersion>6.0.100-1.21459.1</MicrosoftNETILLinkTasksVersion>
<MicrosoftNETILLinkAnalyzerPackageVersion>$(MicrosoftNETILLinkTasksVersion)</MicrosoftNETILLinkAnalyzerPackageVersion>
<!-- ICU -->
<MicrosoftNETCoreRuntimeICUTransportVersion>6.0.0-rtm.23315.1</MicrosoftNETCoreRuntimeICUTransportVersion>
<MicrosoftNETCoreRuntimeICUTransportVersion>6.0.0-rtm.23409.1</MicrosoftNETCoreRuntimeICUTransportVersion>
<!-- MsQuic -->
<SystemNetMsQuicTransportVersion>6.0.0-servicing.22205.1</SystemNetMsQuicTransportVersion>
<!-- Mono LLVM -->
Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/inc/clrconfigvalues.h
Original file line number Diff line number Diff line change
Expand Up @@ -526,7 +526,7 @@ RETAIL_CONFIG_DWORD_INFO(UNSUPPORTED_ProfAPI_ValidateNGENInstrumentation, W("Pro

#ifdef FEATURE_PERFMAP
RETAIL_CONFIG_DWORD_INFO(EXTERNAL_PerfMapEnabled, W("PerfMapEnabled"), 0, "This flag is used on Linux to enable writing /tmp/perf-$pid.map. It is disabled by default")
RETAIL_CONFIG_STRING_INFO(EXTERNAL_PerfMapJitDumpPath, W("PerfMapJitDumpPath"), "Specifies a path to write the perf jitdump file. Defaults to GetTempPathA()")
RETAIL_CONFIG_STRING_INFO(EXTERNAL_PerfMapJitDumpPath, W("PerfMapJitDumpPath"), "Specifies a path to write the perf jitdump file. Defaults to /tmp")
RETAIL_CONFIG_DWORD_INFO(EXTERNAL_PerfMapIgnoreSignal, W("PerfMapIgnoreSignal"), 0, "When perf map is enabled, this option will configure the specified signal to be accepted and ignored as a marker in the perf logs. It is disabled by default")
RETAIL_CONFIG_DWORD_INFO(EXTERNAL_PerfMapShowOptimizationTiers, W("PerfMapShowOptimizationTiers"), 1, "Shows optimization tiers in the perf map for methods, as part of the symbol name. Useful for seeing separate stack frames for different optimization tiers of each method.")
RETAIL_CONFIG_STRING_INFO(EXTERNAL_NativeImagePerfMapFormat, W("NativeImagePerfMapFormat"), "Specifies the format of native image perfmap files generated by crossgen. Valid options are RVA or OFFSET.")
Expand Down
10 changes: 2 additions & 8 deletions src/coreclr/vm/perfinfo.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,13 @@
#include "perfinfo.h"
#include "pal.h"

PerfInfo::PerfInfo(int pid)
PerfInfo::PerfInfo(int pid, const char* basePath)
: m_Stream(nullptr)
{
LIMITED_METHOD_CONTRACT;

SString tempPath;
if (!WszGetTempPath(tempPath))
{
return;
}

SString path;
path.Printf("%Sperfinfo-%d.map", tempPath.GetUnicode(), pid);
path.Printf("%s/perfinfo-%d.map", basePath, pid);
OpenFile(path);
}

Expand Down
2 changes: 1 addition & 1 deletion src/coreclr/vm/perfinfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
*/
class PerfInfo {
public:
PerfInfo(int pid);
PerfInfo(int pid, const char* basePath);
~PerfInfo();
void LogImage(PEFile* pFile, WCHAR* guid);

Expand Down
89 changes: 51 additions & 38 deletions src/coreclr/vm/perfmap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,14 @@
#define FMT_CODE_ADDR "%p"
#endif

#ifndef __ANDROID__
#define TEMP_DIRECTORY_PATH "/tmp"
#else
// On Android, "/tmp/" doesn't exist; temporary files should go to
// /data/local/tmp/
#define TEMP_DIRECTORY_PATH "/data/local/tmp"
#endif

Volatile<bool> PerfMap::s_enabled = false;
PerfMap * PerfMap::s_Current = nullptr;
bool PerfMap::s_ShowOptimizationTiers = false;
Expand All @@ -40,53 +48,64 @@ void PerfMap::Initialize()
{
LIMITED_METHOD_CONTRACT;

const DWORD perfMapEnabled = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapEnabled);
if (perfMapEnabled == DISABLED)
{
return;
}

// Build the path to the map file on disk.
char tempPathBuffer[MAX_LONGPATH+1];
const char* tempPath = InternalConstructPath(tempPathBuffer, sizeof(tempPathBuffer));

// Only enable the map if requested.
if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapEnabled) == ALL || CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapEnabled) == PERFMAP)
if (perfMapEnabled == ALL || perfMapEnabled == PERFMAP)
{
// Get the current process id.
int currentPid = GetCurrentProcessId();

// Create the map.
s_Current = new PerfMap(currentPid);
s_Current = new PerfMap(currentPid, tempPath);

int signalNum = (int) CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapIgnoreSignal);

if (signalNum > 0)
{
PAL_IgnoreProfileSignal(signalNum);
}
}

if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapShowOptimizationTiers) != 0)
{
s_ShowOptimizationTiers = true;
}

s_enabled = true;
// only enable JitDumps if requested
if (perfMapEnabled == ALL || perfMapEnabled == JITDUMP)
{
PAL_PerfJitDump_Start(tempPath);
}

if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapEnabled) == ALL || CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapEnabled) == JITDUMP)
if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapShowOptimizationTiers) != 0)
{
char jitdumpPath[4096];

// CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapJitDumpPath) returns a LPWSTR
// Use GetEnvironmentVariableA because it is simpler.
// Keep comment here to make it searchable.
DWORD len = GetEnvironmentVariableA("COMPlus_PerfMapJitDumpPath", jitdumpPath, sizeof(jitdumpPath) - 1);

if (len == 0)
{
GetTempPathA(sizeof(jitdumpPath) - 1, jitdumpPath);
}
s_ShowOptimizationTiers = true;
}

s_enabled = true;
}

PAL_PerfJitDump_Start(jitdumpPath);
// InternalConstructPath is guaranteed to return a non-null path
// the function uses the input buffer only whe PerfMapJitDumpPath environment variable is set
const char * PerfMap::InternalConstructPath(char *tmpBuf, int lenBuf)
{
DWORD len = GetEnvironmentVariableA("DOTNET_PerfMapJitDumpPath", tmpBuf, lenBuf);
if (len == 0)
{
len = GetEnvironmentVariableA("COMPlus_PerfMapJitDumpPath", tmpBuf, lenBuf);
}

if (CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_PerfMapShowOptimizationTiers) != 0)
{
s_ShowOptimizationTiers = true;
}

s_enabled = true;
if (len == 0 || // GetEnvironmentVariableA returns 0 if the variable is not found,
len >= lenBuf) // or the length of the string not including the null terminator on success.
{
return TEMP_DIRECTORY_PATH;
}

return tmpBuf;
}

// Destroy the map for the process - called from EEShutdownHelper.
Expand All @@ -103,27 +122,21 @@ void PerfMap::Destroy()
}

// Construct a new map for the process.
PerfMap::PerfMap(int pid)
PerfMap::PerfMap(int pid, const char* path)
{
LIMITED_METHOD_CONTRACT;

// Initialize with no failures.
m_ErrorEncountered = false;

// Build the path to the map file on disk.
WCHAR tempPath[MAX_LONGPATH+1];
if(!GetTempPathW(MAX_LONGPATH, tempPath))
{
return;
}

SString path;
path.Printf("%Sperf-%d.map", &tempPath, pid);
SString pathFile;
pathFile.Printf("%s/perf-%d.map", path, pid);

// Open the map file for writing.
OpenFile(path);
OpenFile(pathFile);

m_PerfInfo = new PerfInfo(pid);
m_PerfInfo = new PerfInfo(pid, path);
}

// Construct a new map without a specified file name.
Expand Down
5 changes: 4 additions & 1 deletion src/coreclr/vm/perfmap.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ class PerfMap
bool m_ErrorEncountered;

// Construct a new map for the specified pid.
PerfMap(int pid);
PerfMap(int pid, const char* path);

// Default to /tmp or use DOTNET_PerfMapJitDumpPath if set
static const char* InternalConstructPath(char *tmpBuf, int lenBuf);

protected:
// Indicates whether optimization tiers should be shown for methods in perf maps
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -322,7 +322,8 @@ public void AppHost_FrameworkDependent_GlobalLocation_Succeeds(bool useRegistere
.Execute()
.Should().Pass()
.And.HaveStdOutContaining("Hello World")
.And.HaveStdOutContaining(sharedTestState.RepoDirectories.MicrosoftNETCoreAppVersion);
.And.HaveStdOutContaining(sharedTestState.RepoDirectories.MicrosoftNETCoreAppVersion)
.And.NotHaveStdErr();

// Verify running from within the working directory
Command.Create(appExe)
Expand All @@ -336,7 +337,8 @@ public void AppHost_FrameworkDependent_GlobalLocation_Succeeds(bool useRegistere
.Execute()
.Should().Pass()
.And.HaveStdOutContaining("Hello World")
.And.HaveStdOutContaining(sharedTestState.RepoDirectories.MicrosoftNETCoreAppVersion);
.And.HaveStdOutContaining(sharedTestState.RepoDirectories.MicrosoftNETCoreAppVersion)
.And.NotHaveStdErr();
}
}

Expand Down
3 changes: 2 additions & 1 deletion src/installer/tests/HostActivation.Tests/StartupHooks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,8 @@ public void Muxer_activation_of_Empty_StartupHook_Variable_Succeeds()
.CaptureStdErr()
.Execute()
.Should().Pass()
.And.HaveStdOutContaining("Hello World");
.And.HaveStdOutContaining("Hello World")
.And.NotHaveStdErr();
}

// Run the app with a startup hook assembly that depends on assemblies not on the TPA list
Expand Down
Loading

0 comments on commit 762f437

Please sign in to comment.