Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit faba436

Browse files
committedNov 19, 2021
Enforce env startup hook precedence over runtimeconfig startup hooks
1 parent 8fa1369 commit faba436

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed
 

Diff for: ‎src/installer/tests/HostActivation.Tests/StartupHooks.cs

+10-5
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ public void Muxer_activation_of_RuntimeConfig_StartupHook_Succeeds()
131131
}
132132

133133
[Fact]
134-
public void Muxer_activation_of_RuntimeConfig_And_Environment_StartupHooks_Succeeds()
134+
public void Muxer_activation_of_RuntimeConfig_And_Environment_StartupHooks_SucceedsInExpectedOrder()
135135
{
136136
var fixture = sharedTestState.PortableAppFixture.Copy();
137137
var dotnet = fixture.BuiltDotnet;
@@ -147,16 +147,21 @@ public void Muxer_activation_of_RuntimeConfig_And_Environment_StartupHooks_Succe
147147
var startupHook2Fixture = sharedTestState.StartupHookWithDependencyFixture.Copy();
148148
var startupHook2Dll = startupHook2Fixture.TestProject.AppDll;
149149

150-
// RuntimeConfig and Environment startup hook
150+
// include any char to counter output from other threads such as in #57243
151+
const string wildcardPattern = @"[\r\n\s.]*";
152+
153+
// RuntimeConfig and Environment startup hooks in expected order
151154
dotnet.Exec(appDll)
152155
.EnvironmentVariable(startupHookVarName, startupHook2Dll)
153156
.CaptureStdOut()
154157
.CaptureStdErr()
155158
.Execute()
156159
.Should().Pass()
157-
.And.HaveStdOutContaining("Hello from startup hook!")
158-
.And.HaveStdOutContaining("Hello from startup hook with dependency!")
159-
.And.HaveStdOutContaining("Hello World");
160+
.And.HaveStdOutMatching("Hello from startup hook with dependency!" +
161+
wildcardPattern +
162+
"Hello from startup hook!" +
163+
wildcardPattern +
164+
"Hello World");
160165
}
161166

162167
// Empty startup hook variable

Diff for: ‎src/native/corehost/hostpolicy/hostpolicy_context.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -284,6 +284,8 @@ int hostpolicy_context_t::initialize(hostpolicy_init_t &hostpolicy_init, const a
284284
const pal::char_t *config_startup_hooks;
285285
if (coreclr_properties.try_get(common_property::StartUpHooks, &config_startup_hooks))
286286
{
287+
// env startup hooks shoold have precedence over config startup hooks
288+
// therefore append config_startup_hooks AFTER startup_hooks
287289
startup_hooks.push_back(PATH_SEPARATOR);
288290
startup_hooks.append(config_startup_hooks);
289291
}

0 commit comments

Comments
 (0)
Please sign in to comment.