diff --git a/.gitignore b/.gitignore
index f00927bf..fbd649f4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -145,7 +145,7 @@ _TeamCity*
_NCrunch_*
.*crunch*.local.xml
nCrunchTemp_*
-.NCrunch*
+.NCrunch_*
# MightyMoose
*.mm.*
diff --git a/PlatformLibs.sln b/PlatformLibs.sln
index 7d65c7df..ddb9d4fe 100644
--- a/PlatformLibs.sln
+++ b/PlatformLibs.sln
@@ -50,23 +50,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Extensions.Hosting.SerilogC
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Extensions.Hosting.Tests", "libs\hosting\tests\Hosting.Tests\Extensions.Hosting.Tests.csproj", "{FA64DAF0-66F7-4F6B-BB1B-3B53F4FBC088}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solution Items", "{6560E27F-806F-4500-9C50-AA2755458AA1}"
- ProjectSection(SolutionItems) = preProject
- .dockerignore = .dockerignore
- .editorconfig = .editorconfig
- .gitattributes = .gitattributes
- .gitignore = .gitignore
- build.ps1 = build.ps1
- LICENSE = LICENSE
- readme.md = readme.md
- libs\src.props = libs\src.props
- libs\test.props = libs\test.props
- EndProjectSection
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{110FA643-6DE5-48FB-9368-FDE268A192C1}"
- ProjectSection(SolutionItems) = preProject
- .github\dependabot.yml = .github\dependabot.yml
- EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Bullseye", "libs\bullseye\src\Bullseye\Bullseye.csproj", "{558069C6-0126-45A2-89E0-A2739E5C1FBC}"
EndProject
@@ -247,6 +231,9 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "little-forker", "little-forker", "{C035DC26-7F31-432A-8CE2-221F7E1877B2}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D87C8600-94DC-463D-947B-F1EFA6E748B4}"
+ ProjectSection(SolutionItems) = preProject
+ libs\little-forker\src\Directory.Build.props = libs\little-forker\src\Directory.Build.props
+ EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{1137E742-AF34-47F0-BFAA-F7FD0FE246F0}"
EndProject
diff --git a/build/Program.cs b/build/Program.cs
index 1846c27a..a211df7f 100644
--- a/build/Program.cs
+++ b/build/Program.cs
@@ -25,19 +25,30 @@
foreach (var lib in libs)
{
+ var srcPackages = Directory.GetFiles($"libs/{lib}/src/", "*.csproj", SearchOption.AllDirectories);
+
+ var buildTarget = $"{lib}-build";
+ Target(
+ buildTarget,
+ DependsOn(Clean),
+ srcPackages,
+ packableProject => Run("dotnet", $"pack {packableProject} -c Release -o {ArtifactsDir}"));
+
+ var packTarget = $"{lib}-pack";
+ Target(
+ packTarget,
+ DependsOn(Clean),
+ srcPackages,
+ packableProject => Run("dotnet", $"pack {packableProject} -c Release -o {ArtifactsDir}"));
+ defaultTargets.Add(packTarget);
+
var testProjects = Directory.GetFiles($"libs/{lib}/tests/", "*.Tests.csproj", SearchOption.AllDirectories); // will ignore "IntegrationTests.csproj"
var testTarget = $"{lib}-test";
Target(testTarget,
+ DependsOn(buildTarget),
testProjects,
testProject => Run("dotnet", $"test {testProject} -c Release"));
defaultTargets.Add(testTarget);
-
- var packableProjects = Directory.GetFiles($"libs/{lib}/src/", "*.csproj", SearchOption.AllDirectories);
- var packTarget = $"{lib}-pack";
- Target(packTarget, DependsOn(Clean),
- packableProjects,
- packableProject => Run("dotnet", $"pack {packableProject} -c Release -o {ArtifactsDir}"));
- defaultTargets.Add(packTarget);
}
Target(PushToGitHub, () =>
diff --git a/libs/little-forker/src/Directory.Build.props b/libs/little-forker/src/Directory.Build.props
index b8b2e3ad..44df6ea6 100644
--- a/libs/little-forker/src/Directory.Build.props
+++ b/libs/little-forker/src/Directory.Build.props
@@ -5,7 +5,7 @@
little-forker-
- 0.1
+ 4.0
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.LittleForker.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.LittleForker.dll
deleted file mode 100644
index 3ecb1557..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.LittleForker.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.LittleForker.xml b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.LittleForker.xml
deleted file mode 100644
index 5a48ce02..00000000
--- a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.LittleForker.xml
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
- Logicality.LittleForker
-
-
-
-
- Allows a process to be co-cooperatively shut down (as opposed the more
- brutal Process.Kill()
-
-
-
-
- The pipe name a process will listen on for a EXIT signal.
-
- The process ID process listening.
- A generated pipe name.
-
-
-
- Creates a listener for cooperative shutdown.
-
-
- The callback that is invoked when cooperative shutdown has been
- requested.
-
-
- A logger factory.
-
- A method to be called if an error occurs while listening
-
- A disposable representing the named pipe listener.
-
-
-
-
- Signals to a process to shut down.
-
- The process ID to signal too.
- A logger factory.
- A task representing the operation.
-
-
-
- Interlocked support for boolean values
-
-
-
-
- Current value
-
-
-
-
- Initializes a new instance of
-
- initial value
-
-
-
- Sets a new value
-
- new value
- the original value before any operation was performed
-
-
-
- Compares the current value and the comparand for equality and, if they are equal,
- replaces the current value with the new value in an atomic/thread-safe operation.
-
- new value
- value to compare the current value with
- the original value before any operation was performed
-
-
-
- The process's exit code.
-
-
-
-
- The process's Id.
-
-
-
-
- Helper that raises event when the process has exited. A wrapper around
- Process.Exited with some error handling and logging.
-
-
-
-
- Initializes a new instance of
-
-
- The process Id of the process to watch for exited.
-
-
- A callback that is invoked when process has exited or does not
- exist with the instance as a
- parameter.
-
-
- A logger.
-
-
-
-
- Defined how a process is expected to run.
-
-
-
-
- Processes that are expected to terminate of their own accord.
-
-
-
-
- Processes that are not expected to terminiate of their own
- accord and that must be co-operatively shutdown or killed.
-
-
-
-
- Launches an process and tracks it's lifecycle .
-
-
-
-
- The state a process is in.
-
-
-
-
- Initializes a new instance of
-
-
- The working directory to start the process in.
-
-
- The path to the process.
-
-
- The process run type.
-
-
- A logger factory.
-
-
- Arguments to be passed to the process.
-
-
- Environment variables that are set before the process starts.
-
-
- A flag to indicated whether to capture standard error output.
-
-
-
-
- Contains the caught exception in the event a process failed to
- be launched.
-
-
-
-
- Information about the launched process.
-
-
-
-
- Raised when the process emits console data.
-
-
-
-
- Raised when the process emits stderr console data.
-
-
-
-
- Raised when the process state has changed.
-
-
-
-
- Starts the process.
-
-
-
-
- Initiates a process stop. If a timeout is supplied (and greater
- than 0ms), it will attempt a "co-operative" shutdown by
- signalling an EXIT command to the process. The process needs to
- support such signalling and needs to complete within the timeout
- otherwise the process will be terminated via Kill(). The maximum
- recommended timeout is 25 seconds. This is 5 seconds less than
- default 30 seconds that windows will consider a service to be
- 'hung'.
-
-
-
-
-
-
- Represents a queue of tasks where a task is processed one at a time. When disposed
- the outstanding tasks are cancelled.
-
-
-
-
- Enqueues a task for processing.
-
- The operations to invoke.
- A task representing the operation. Awaiting is optional.
-
-
-
- Enqueues a task for processing.
-
- The operations to invoke.
- A task representing the operation. Awaiting is optional.
-
-
-
- Enqueues a task for processing.
-
- The operation to invoke that is co-operatively cancelable.
- A task representing the operation. Awaiting is optional.
-
-
-
- Enqueues a task for processing.
-
- The operation to invoke that is co-operatively cancelable.
- A task representing the operation. Awaiting is optional.
-
-
-
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.deps.json b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.deps.json
deleted file mode 100644
index 050f7478..00000000
--- a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.deps.json
+++ /dev/null
@@ -1,768 +0,0 @@
-{
- "runtimeTarget": {
- "name": ".NETCoreApp,Version=v6.0",
- "signature": ""
- },
- "compilationOptions": {},
- "targets": {
- ".NETCoreApp,Version=v6.0": {
- "Logicality.NonTerminatingProcess/0.1.0-alpha.0.424+build.0": {
- "dependencies": {
- "Logicality.LittleForker": "1.0.0",
- "Microsoft.Extensions.Configuration.Binder": "3.1.0",
- "Microsoft.Extensions.Configuration.CommandLine": "3.1.0",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "3.1.0",
- "Microsoft.SourceLink.GitHub": "1.1.1",
- "MinVer": "4.3.0",
- "Serilog.Sinks.Console": "3.1.1",
- "Logicality.LittleForker.Reference": "0.0.0.0"
- },
- "runtime": {
- "Logicality.NonTerminatingProcess.dll": {}
- }
- },
- "Microsoft.Build.Tasks.Git/1.1.1": {},
- "Microsoft.CSharp/4.0.1": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Dynamic.Runtime": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Linq": "4.1.0",
- "System.Linq.Expressions": "4.1.0",
- "System.ObjectModel": "4.0.12",
- "System.Reflection": "4.3.0",
- "System.Reflection.Extensions": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Reflection.TypeExtensions": "4.1.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Runtime.InteropServices": "4.3.0",
- "System.Threading": "4.3.0"
- }
- },
- "Microsoft.Extensions.Configuration/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.Abstractions/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Primitives": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.Binder/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Binder.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.CommandLine/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.CommandLine.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.EnvironmentVariables/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Logging.Abstractions/3.1.0": {
- "runtime": {
- "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Primitives/3.1.0": {
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.NETCore.Platforms/1.1.0": {},
- "Microsoft.NETCore.Targets/1.1.0": {},
- "Microsoft.SourceLink.Common/1.1.1": {},
- "Microsoft.SourceLink.GitHub/1.1.1": {
- "dependencies": {
- "Microsoft.Build.Tasks.Git": "1.1.1",
- "Microsoft.SourceLink.Common": "1.1.1"
- }
- },
- "MinVer/4.3.0": {},
- "runtime.native.System/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0"
- }
- },
- "Serilog/2.5.0": {
- "dependencies": {
- "Microsoft.CSharp": "4.0.1",
- "System.Collections": "4.0.11",
- "System.Collections.NonGeneric": "4.0.1",
- "System.Dynamic.Runtime": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Linq": "4.1.0",
- "System.Reflection": "4.3.0",
- "System.Reflection.Extensions": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Text.RegularExpressions": "4.1.0",
- "System.Threading": "4.3.0"
- },
- "runtime": {
- "lib/netstandard1.3/Serilog.dll": {
- "assemblyVersion": "2.0.0.0",
- "fileVersion": "2.5.0.0"
- }
- }
- },
- "Serilog.Sinks.Console/3.1.1": {
- "dependencies": {
- "Serilog": "2.5.0",
- "System.Console": "4.3.0",
- "System.Runtime.InteropServices": "4.3.0",
- "System.Runtime.InteropServices.RuntimeInformation": "4.3.0"
- },
- "runtime": {
- "lib/netcoreapp1.1/Serilog.Sinks.Console.dll": {
- "assemblyVersion": "3.1.1.0",
- "fileVersion": "3.1.1.0"
- }
- }
- },
- "stateless/5.11.0": {
- "runtime": {
- "lib/net5.0/stateless.dll": {
- "assemblyVersion": "4.0.0.0",
- "fileVersion": "5.11.0.0"
- }
- }
- },
- "System.Collections/4.0.11": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Collections.NonGeneric/4.0.1": {
- "dependencies": {
- "System.Diagnostics.Debug": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Console/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.IO": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Text.Encoding": "4.3.0"
- }
- },
- "System.Diagnostics.Debug/4.0.11": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Dynamic.Runtime/4.0.11": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Linq": "4.1.0",
- "System.Linq.Expressions": "4.1.0",
- "System.ObjectModel": "4.0.12",
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit": "4.0.1",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Primitives": "4.3.0",
- "System.Reflection.TypeExtensions": "4.1.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Globalization/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.IO/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0",
- "System.Text.Encoding": "4.3.0",
- "System.Threading.Tasks": "4.3.0"
- }
- },
- "System.Linq/4.1.0": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0"
- }
- },
- "System.Linq.Expressions/4.1.0": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.IO": "4.3.0",
- "System.Linq": "4.1.0",
- "System.ObjectModel": "4.0.12",
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit": "4.0.1",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Emit.Lightweight": "4.0.1",
- "System.Reflection.Extensions": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Reflection.TypeExtensions": "4.1.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.ObjectModel/4.0.12": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Reflection/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.IO": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Emit/4.0.1": {
- "dependencies": {
- "System.IO": "4.3.0",
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Emit.ILGeneration/4.0.1": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Emit.Lightweight/4.0.1": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Extensions/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Reflection": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Primitives/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.TypeExtensions/4.1.0": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Resources.ResourceManager/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Globalization": "4.3.0",
- "System.Reflection": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Runtime/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0"
- }
- },
- "System.Runtime.Extensions/4.1.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Runtime.Handles/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Runtime.InteropServices/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Reflection": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Handles": "4.3.0"
- }
- },
- "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Reflection.Extensions": "4.3.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.InteropServices": "4.3.0",
- "System.Threading": "4.3.0",
- "runtime.native.System": "4.3.0"
- }
- },
- "System.Text.Encoding/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Text.RegularExpressions/4.1.0": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Threading/4.3.0": {
- "dependencies": {
- "System.Runtime": "4.3.0",
- "System.Threading.Tasks": "4.3.0"
- }
- },
- "System.Threading.Tasks/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "Logicality.LittleForker/1.0.0": {
- "dependencies": {
- "Microsoft.Extensions.Logging.Abstractions": "3.1.0",
- "stateless": "5.11.0"
- },
- "runtime": {
- "Logicality.LittleForker.dll": {}
- }
- },
- "Logicality.LittleForker.Reference/0.0.0.0": {
- "runtime": {
- "Logicality.LittleForker.dll": {
- "assemblyVersion": "0.0.0.0",
- "fileVersion": "0.1.0.0"
- }
- }
- }
- }
- },
- "libraries": {
- "Logicality.NonTerminatingProcess/0.1.0-alpha.0.424+build.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- },
- "Microsoft.Build.Tasks.Git/1.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==",
- "path": "microsoft.build.tasks.git/1.1.1",
- "hashPath": "microsoft.build.tasks.git.1.1.1.nupkg.sha512"
- },
- "Microsoft.CSharp/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==",
- "path": "microsoft.csharp/4.0.1",
- "hashPath": "microsoft.csharp.4.0.1.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==",
- "path": "microsoft.extensions.configuration/3.1.0",
- "hashPath": "microsoft.extensions.configuration.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.Abstractions/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==",
- "path": "microsoft.extensions.configuration.abstractions/3.1.0",
- "hashPath": "microsoft.extensions.configuration.abstractions.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.Binder/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==",
- "path": "microsoft.extensions.configuration.binder/3.1.0",
- "hashPath": "microsoft.extensions.configuration.binder.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.CommandLine/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-KDjz4HBw549oW4Y1eQAImAugCSYn84KXwgGZtgMqEwctvkdxZo0ObZC5QQI/YvX21U+DArR9+NfWZ3MxD9MhPA==",
- "path": "microsoft.extensions.configuration.commandline/3.1.0",
- "hashPath": "microsoft.extensions.configuration.commandline.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.EnvironmentVariables/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-WryksPlAFFRMWIGpFwDDbrVSD/kSO7P7fRRzBHh6vEIrgflsM8tpPCcgIvKszH4fz4vcuapih9RMdiiJ2VS7aw==",
- "path": "microsoft.extensions.configuration.environmentvariables/3.1.0",
- "hashPath": "microsoft.extensions.configuration.environmentvariables.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Logging.Abstractions/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==",
- "path": "microsoft.extensions.logging.abstractions/3.1.0",
- "hashPath": "microsoft.extensions.logging.abstractions.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Primitives/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==",
- "path": "microsoft.extensions.primitives/3.1.0",
- "hashPath": "microsoft.extensions.primitives.3.1.0.nupkg.sha512"
- },
- "Microsoft.NETCore.Platforms/1.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A==",
- "path": "microsoft.netcore.platforms/1.1.0",
- "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
- },
- "Microsoft.NETCore.Targets/1.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-aOZA3BWfz9RXjpzt0sRJJMjAscAUm3Hoa4UWAfceV9UTYxgwZ1lZt5nO2myFf+/jetYQo4uTP7zS8sJY67BBxg==",
- "path": "microsoft.netcore.targets/1.1.0",
- "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
- },
- "Microsoft.SourceLink.Common/1.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==",
- "path": "microsoft.sourcelink.common/1.1.1",
- "hashPath": "microsoft.sourcelink.common.1.1.1.nupkg.sha512"
- },
- "Microsoft.SourceLink.GitHub/1.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
- "path": "microsoft.sourcelink.github/1.1.1",
- "hashPath": "microsoft.sourcelink.github.1.1.1.nupkg.sha512"
- },
- "MinVer/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==",
- "path": "minver/4.3.0",
- "hashPath": "minver.4.3.0.nupkg.sha512"
- },
- "runtime.native.System/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
- "path": "runtime.native.system/4.3.0",
- "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
- },
- "Serilog/2.5.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-JwwkgNYNFKT4kQZ3qBV3VqPgchUg1A6FnlFa9hgyanylwBhJ7eTFl3pgLVxijFEb+oHLImRcMaTsMzBt2AG0aQ==",
- "path": "serilog/2.5.0",
- "hashPath": "serilog.2.5.0.nupkg.sha512"
- },
- "Serilog.Sinks.Console/3.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-56mI5AqvyF/i/c2451nvV71kq370XOCE4Uu5qiaJ295sOhMb9q3BWwG7mWLOVSnmpWiq0SBT3SXfgRXGNP6vzA==",
- "path": "serilog.sinks.console/3.1.1",
- "hashPath": "serilog.sinks.console.3.1.1.nupkg.sha512"
- },
- "stateless/5.11.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-5XXmdEQBOpgE90vqxfZH0ekdqfGB6xLe0Uyb7EyHr/fgv/zkZtDcru4KxRvAvWxE1u4c8MOZnOnXoRfQOfFnTg==",
- "path": "stateless/5.11.0",
- "hashPath": "stateless.5.11.0.nupkg.sha512"
- },
- "System.Collections/4.0.11": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==",
- "path": "system.collections/4.0.11",
- "hashPath": "system.collections.4.0.11.nupkg.sha512"
- },
- "System.Collections.NonGeneric/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
- "path": "system.collections.nongeneric/4.0.1",
- "hashPath": "system.collections.nongeneric.4.0.1.nupkg.sha512"
- },
- "System.Console/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-DHDrIxiqk1h03m6khKWV2X8p/uvN79rgSqpilL6uzpmSfxfU5ng8VcPtW4qsDsQDHiTv6IPV9TmD5M/vElPNLg==",
- "path": "system.console/4.3.0",
- "hashPath": "system.console.4.3.0.nupkg.sha512"
- },
- "System.Diagnostics.Debug/4.0.11": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==",
- "path": "system.diagnostics.debug/4.0.11",
- "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512"
- },
- "System.Dynamic.Runtime/4.0.11": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
- "path": "system.dynamic.runtime/4.0.11",
- "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512"
- },
- "System.Globalization/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
- "path": "system.globalization/4.3.0",
- "hashPath": "system.globalization.4.3.0.nupkg.sha512"
- },
- "System.IO/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
- "path": "system.io/4.3.0",
- "hashPath": "system.io.4.3.0.nupkg.sha512"
- },
- "System.Linq/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
- "path": "system.linq/4.1.0",
- "hashPath": "system.linq.4.1.0.nupkg.sha512"
- },
- "System.Linq.Expressions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
- "path": "system.linq.expressions/4.1.0",
- "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512"
- },
- "System.ObjectModel/4.0.12": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
- "path": "system.objectmodel/4.0.12",
- "hashPath": "system.objectmodel.4.0.12.nupkg.sha512"
- },
- "System.Reflection/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
- "path": "system.reflection/4.3.0",
- "hashPath": "system.reflection.4.3.0.nupkg.sha512"
- },
- "System.Reflection.Emit/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
- "path": "system.reflection.emit/4.0.1",
- "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512"
- },
- "System.Reflection.Emit.ILGeneration/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
- "path": "system.reflection.emit.ilgeneration/4.0.1",
- "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512"
- },
- "System.Reflection.Emit.Lightweight/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
- "path": "system.reflection.emit.lightweight/4.0.1",
- "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512"
- },
- "System.Reflection.Extensions/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-rJkrJD3kBI5B712aRu4DpSIiHRtr6QlfZSQsb0hYHrDCZORXCFjQfoipo2LaMUHoT9i1B7j7MnfaEKWDFmFQNQ==",
- "path": "system.reflection.extensions/4.3.0",
- "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
- },
- "System.Reflection.Primitives/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
- "path": "system.reflection.primitives/4.3.0",
- "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
- },
- "System.Reflection.TypeExtensions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
- "path": "system.reflection.typeextensions/4.1.0",
- "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512"
- },
- "System.Resources.ResourceManager/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
- "path": "system.resources.resourcemanager/4.3.0",
- "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
- },
- "System.Runtime/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
- "path": "system.runtime/4.3.0",
- "hashPath": "system.runtime.4.3.0.nupkg.sha512"
- },
- "System.Runtime.Extensions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==",
- "path": "system.runtime.extensions/4.1.0",
- "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512"
- },
- "System.Runtime.Handles/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-OKiSUN7DmTWeYb3l51A7EYaeNMnvxwE249YtZz7yooT4gOZhmTjIn48KgSsw2k2lYdLgTKNJw/ZIfSElwDRVgg==",
- "path": "system.runtime.handles/4.3.0",
- "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
- },
- "System.Runtime.InteropServices/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-uv1ynXqiMK8mp1GM3jDqPCFN66eJ5w5XNomaK2XD+TuCroNTLFGeZ+WCmBMcBDyTFKou3P6cR6J/QsaqDp7fGQ==",
- "path": "system.runtime.interopservices/4.3.0",
- "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
- },
- "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-cbz4YJMqRDR7oLeMRbdYv7mYzc++17lNhScCX0goO2XpGWdvAt60CGN+FHdePUEHCe/Jy9jUlvNAiNdM+7jsOw==",
- "path": "system.runtime.interopservices.runtimeinformation/4.3.0",
- "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512"
- },
- "System.Text.Encoding/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
- "path": "system.text.encoding/4.3.0",
- "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
- },
- "System.Text.RegularExpressions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
- "path": "system.text.regularexpressions/4.1.0",
- "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512"
- },
- "System.Threading/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
- "path": "system.threading/4.3.0",
- "hashPath": "system.threading.4.3.0.nupkg.sha512"
- },
- "System.Threading.Tasks/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
- "path": "system.threading.tasks/4.3.0",
- "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
- },
- "Logicality.LittleForker/1.0.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- },
- "Logicality.LittleForker.Reference/0.0.0.0": {
- "type": "reference",
- "serviceable": false,
- "sha512": ""
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.dll
deleted file mode 100644
index ef2ae399..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.exe b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.exe
deleted file mode 100644
index 2978dd10..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.exe and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.runtimeconfig.json b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.runtimeconfig.json
deleted file mode 100644
index 3e5d4719..00000000
--- a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.runtimeconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "runtimeOptions": {
- "tfm": "net6.0",
- "framework": {
- "name": "Microsoft.NETCore.App",
- "version": "6.0.16"
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.xml b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.xml
deleted file mode 100644
index 317e7632..00000000
--- a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Logicality.NonTerminatingProcess.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Logicality.NonTerminatingProcess
-
-
-
-
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Abstractions.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Abstractions.dll
deleted file mode 100644
index 52befe91..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Abstractions.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Binder.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Binder.dll
deleted file mode 100644
index 84b0357b..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Binder.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.CommandLine.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.CommandLine.dll
deleted file mode 100644
index 5cd78f5f..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.CommandLine.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.EnvironmentVariables.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.EnvironmentVariables.dll
deleted file mode 100644
index fa1bd7e8..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.EnvironmentVariables.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.dll
deleted file mode 100644
index 718180b5..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Logging.Abstractions.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Logging.Abstractions.dll
deleted file mode 100644
index 82e06989..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Primitives.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Primitives.dll
deleted file mode 100644
index d12ec5bd..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Primitives.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Serilog.Sinks.Console.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Serilog.Sinks.Console.dll
deleted file mode 100644
index b0178a75..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Serilog.Sinks.Console.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Serilog.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Serilog.dll
deleted file mode 100644
index acb43403..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/Serilog.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/stateless.dll b/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/stateless.dll
deleted file mode 100644
index 2fdd58ee..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/NonTerminatingProcess/stateless.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.deps.json b/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.deps.json
deleted file mode 100644
index 319cf547..00000000
--- a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.deps.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "runtimeTarget": {
- "name": ".NETCoreApp,Version=v6.0",
- "signature": ""
- },
- "compilationOptions": {},
- "targets": {
- ".NETCoreApp,Version=v6.0": {
- "Logicality.SelfTerminatingProcess/0.1.0-alpha.0.424+build.0": {
- "dependencies": {
- "Microsoft.SourceLink.GitHub": "1.1.1",
- "MinVer": "4.3.0"
- },
- "runtime": {
- "Logicality.SelfTerminatingProcess.dll": {}
- }
- },
- "Microsoft.Build.Tasks.Git/1.1.1": {},
- "Microsoft.SourceLink.Common/1.1.1": {},
- "Microsoft.SourceLink.GitHub/1.1.1": {
- "dependencies": {
- "Microsoft.Build.Tasks.Git": "1.1.1",
- "Microsoft.SourceLink.Common": "1.1.1"
- }
- },
- "MinVer/4.3.0": {}
- }
- },
- "libraries": {
- "Logicality.SelfTerminatingProcess/0.1.0-alpha.0.424+build.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- },
- "Microsoft.Build.Tasks.Git/1.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==",
- "path": "microsoft.build.tasks.git/1.1.1",
- "hashPath": "microsoft.build.tasks.git.1.1.1.nupkg.sha512"
- },
- "Microsoft.SourceLink.Common/1.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==",
- "path": "microsoft.sourcelink.common/1.1.1",
- "hashPath": "microsoft.sourcelink.common.1.1.1.nupkg.sha512"
- },
- "Microsoft.SourceLink.GitHub/1.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==",
- "path": "microsoft.sourcelink.github/1.1.1",
- "hashPath": "microsoft.sourcelink.github.1.1.1.nupkg.sha512"
- },
- "MinVer/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-YNVAW3loCFW4kTwensApaZUl+7xREK75QQNOFSbsbXx2sCSm9/IHBjUHsJGn3u0UA5r/sAqrdYBNUlOFfLhUrA==",
- "path": "minver/4.3.0",
- "hashPath": "minver.4.3.0.nupkg.sha512"
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.dll b/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.dll
deleted file mode 100644
index 26c60f94..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.dll and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.exe b/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.exe
deleted file mode 100644
index eda9ac00..00000000
Binary files a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.exe and /dev/null differ
diff --git a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.runtimeconfig.json b/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.runtimeconfig.json
deleted file mode 100644
index 3e5d4719..00000000
--- a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.runtimeconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "runtimeOptions": {
- "tfm": "net6.0",
- "framework": {
- "name": "Microsoft.NETCore.App",
- "version": "6.0.16"
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.xml b/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.xml
deleted file mode 100644
index bc9f95d3..00000000
--- a/libs/little-forker/src/LittleForker.Tests/SelfTerminatingProcess/Logicality.SelfTerminatingProcess.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- Logicality.SelfTerminatingProcess
-
-
-
-
diff --git a/libs/little-forker/src/LittleForker/AssemblyInfo.cs b/libs/little-forker/src/LittleForker/AssemblyInfo.cs
deleted file mode 100644
index a670b500..00000000
--- a/libs/little-forker/src/LittleForker/AssemblyInfo.cs
+++ /dev/null
@@ -1,3 +0,0 @@
-using System.Runtime.CompilerServices;
-
-[assembly: InternalsVisibleTo("LittleForker.Tests")]
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker/LittleForker.csproj b/libs/little-forker/src/LittleForker/LittleForker.csproj
index 3a7af827..56e8860e 100644
--- a/libs/little-forker/src/LittleForker/LittleForker.csproj
+++ b/libs/little-forker/src/LittleForker/LittleForker.csproj
@@ -1,7 +1,9 @@
- net6.0
+ net6.0;net7.0
+ Logicality.LittleForker
+ Logicality.LittleForker
process-supervision, child-process
A utility to assist with spawing child processes, monitor their lifecycle and co-operative shutdown.
@@ -9,8 +11,14 @@
-
+
+
+
+
+
+
+
diff --git a/libs/little-forker/src/LittleForker/ProcessSupervisor.cs b/libs/little-forker/src/LittleForker/ProcessSupervisor.cs
index ea3c6179..a57c2f08 100644
--- a/libs/little-forker/src/LittleForker/ProcessSupervisor.cs
+++ b/libs/little-forker/src/LittleForker/ProcessSupervisor.cs
@@ -6,6 +6,14 @@
namespace Logicality.LittleForker;
+public class ProcessSupervisorSettings
+{
+ public ProcessSupervisorSettings()
+ {
+
+ }
+}
+
///
/// Launches an process and tracks it's lifecycle .
///
diff --git a/libs/little-forker/src/LittleForker/ProcessSupervisorExtensions.cs b/libs/little-forker/src/LittleForker/ProcessSupervisorExtensions.cs
index 2f6bf673..92e36d88 100644
--- a/libs/little-forker/src/LittleForker/ProcessSupervisorExtensions.cs
+++ b/libs/little-forker/src/LittleForker/ProcessSupervisorExtensions.cs
@@ -1,6 +1,6 @@
namespace Logicality.LittleForker;
-public static class ProcessSupervisorExtensions
+public static class ProcessSupervisorExtensions
{
public static Task WhenStateIs(
this ProcessSupervisor processSupervisor,
@@ -23,25 +23,4 @@ void Handler(ProcessSupervisor.State state)
return taskCompletionSource.Task;
}
-
- public static Task WhenOutputStartsWith(
- this ProcessSupervisor processSupervisor,
- string startsWith,
- CancellationToken cancellationToken = default)
- {
- var taskCompletionSource = new TaskCompletionSource();
- cancellationToken.Register(() => taskCompletionSource.TrySetCanceled());
-
- void Handler(string data)
- {
- if (data != null && data.StartsWith(startsWith))
- {
- taskCompletionSource.SetResult(0);
- processSupervisor.OutputDataReceived -= Handler;
- }
- }
-
- processSupervisor.OutputDataReceived += Handler;
- return taskCompletionSource.Task;
- }
}
\ No newline at end of file
diff --git a/libs/little-forker/src/LittleForker/TaskExtensions.cs b/libs/little-forker/src/LittleForker/TaskExtensions.cs
index 6ae31503..656a9fd4 100644
--- a/libs/little-forker/src/LittleForker/TaskExtensions.cs
+++ b/libs/little-forker/src/LittleForker/TaskExtensions.cs
@@ -17,37 +17,33 @@ internal static Task WithCancellation(this Task task, CancellationToken
internal static async Task TimeoutAfter(this Task task, TimeSpan timeout)
{
- using (var timeoutCancellationTokenSource = new CancellationTokenSource())
- {
- var completedTask = await Task
- .WhenAny(task, Task.Delay(timeout, timeoutCancellationTokenSource.Token))
- .ConfigureAwait(false);
-
- if (completedTask == task)
- {
- timeoutCancellationTokenSource.Cancel();
- await task.ConfigureAwait(false);
- return;
- }
+ using var timeoutCancellationTokenSource = new CancellationTokenSource();
+ var completedTask = await Task
+ .WhenAny(task, Task.Delay(timeout, timeoutCancellationTokenSource.Token))
+ .ConfigureAwait(false);
- throw new TimeoutException("The operation has timed out.");
+ if (completedTask == task)
+ {
+ timeoutCancellationTokenSource.Cancel();
+ await task.ConfigureAwait(false);
+ return;
}
+
+ throw new TimeoutException("The operation has timed out.");
}
internal static async Task TimeoutAfter(this Task task, TimeSpan timeout)
{
- using (var timeoutCancellationTokenSource = new CancellationTokenSource())
+ using var timeoutCancellationTokenSource = new CancellationTokenSource();
+ var completedTask = await Task
+ .WhenAny(task, Task.Delay(timeout, timeoutCancellationTokenSource.Token))
+ .ConfigureAwait(false);
+ if (completedTask == task)
{
- var completedTask = await Task
- .WhenAny(task, Task.Delay(timeout, timeoutCancellationTokenSource.Token))
- .ConfigureAwait(false);
- if (completedTask == task)
- {
- timeoutCancellationTokenSource.Cancel();
- return await task.ConfigureAwait(false);
- }
-
- throw new TimeoutException("The operation has timed out.");
+ timeoutCancellationTokenSource.Cancel();
+ return await task.ConfigureAwait(false);
}
+
+ throw new TimeoutException("The operation has timed out.");
}
}
\ No newline at end of file
diff --git a/libs/little-forker/src/NonTerminatingProcess/NonTerminatingProcess.csproj b/libs/little-forker/src/NonTerminatingProcess/NonTerminatingProcess.csproj
index 9463e324..06988867 100644
--- a/libs/little-forker/src/NonTerminatingProcess/NonTerminatingProcess.csproj
+++ b/libs/little-forker/src/NonTerminatingProcess/NonTerminatingProcess.csproj
@@ -3,7 +3,7 @@
Exe
net6.0
- ..\LittleForker.Tests\NonTerminatingProcess\
+ ..\..\tests\LittleForker.Tests\NonTerminatingProcess\
false
false
@@ -13,10 +13,10 @@
-
-
-
-
+
+
+
+
diff --git a/libs/little-forker/src/NonTerminatingProcess/Program.cs b/libs/little-forker/src/NonTerminatingProcess/Program.cs
index 6e68e066..4c36c156 100644
--- a/libs/little-forker/src/NonTerminatingProcess/Program.cs
+++ b/libs/little-forker/src/NonTerminatingProcess/Program.cs
@@ -4,105 +4,182 @@
using Microsoft.Extensions.Logging.Abstractions;
using Serilog;
-namespace Logicality.NonTerminatingProcess
+
+
+var logger = new LoggerConfiguration()
+ .WriteTo.Console()
+ .CreateLogger();
+
+var configRoot = new ConfigurationBuilder()
+ .AddCommandLine(args)
+ .AddEnvironmentVariables()
+ .Build();
+
+// Running program with --debug=true will attach a debugger.
+// Used to assist with debugging LittleForker.
+if (configRoot.GetValue("debug", false))
{
- internal sealed class Program
+ Debugger.Launch();
+}
+
+var ignoreShutdownSignal = configRoot.GetValue("ignore-shutdown-signal", false);
+if (ignoreShutdownSignal)
+{
+ logger.Information("Will ignore Shutdown Signal");
+}
+
+var exitWithNonZero = configRoot.GetValue("exit-with-non-zero", false);
+if (exitWithNonZero)
+{
+ logger.Information("Will exit with non-zero exit code");
+}
+
+var shutdown = new CancellationTokenSource(TimeSpan.FromSeconds(100));
+var pid = Environment.ProcessId;
+var parentPid = configRoot.GetValue("ParentProcessId");
+
+logger.Information($"Long running process started. PID={pid}");
+
+using (parentPid.HasValue
+ ? new ProcessExitedHelper(parentPid.Value, _ => ParentExited(parentPid.Value), new NullLoggerFactory())
+ : NoopDisposable.Instance)
+{
+ using (await CooperativeShutdown.Listen(ExitRequested, new NullLoggerFactory()))
{
- // Yeah this process is supposed to be "non-terminating"
- // but we don't want tons of orphaned instances running
- // because of tests so it terminates after a long
- // enough time (100 seconds)
- private readonly CancellationTokenSource _shutdown = new CancellationTokenSource(TimeSpan.FromSeconds(100));
- private readonly IConfigurationRoot _configRoot;
- private readonly bool _ignoreShutdownSignal;
- private readonly bool _exitWithNonZero;
-
- static Program()
+ // Poll the shutdown token in a tight loop
+ while (!shutdown.IsCancellationRequested || ignoreShutdownSignal)
{
- Log.Logger = new LoggerConfiguration()
- .WriteTo.Console()
- .CreateLogger();
+ await Task.Delay(100);
}
+ logger.Information("Exiting.");
+ }
+}
- private Program(string[] args)
+return exitWithNonZero ? -1 : 0;
+
+void ExitRequested()
+{
+ logger.Information("Cooperative shutdown requested.");
+
+ if (ignoreShutdownSignal)
+ {
+ Log.Logger.Information("Shut down signal ignored.");
+ return;
+ }
+ shutdown.Cancel();
+}
+
+void ParentExited(int processId)
+{
+ logger.Information($"Parent process {processId} exited.");
+ shutdown.Cancel();
+}
+
+class NoopDisposable : IDisposable
+{
+ public void Dispose()
+ { }
+
+ internal static readonly IDisposable Instance = new NoopDisposable();
+}
+
+/*
+internal sealed class Program
+{
+ // Yeah this process is supposed to be "non-terminating"
+ // but we don't want tons of orphaned instances running
+ // because of tests so it terminates after a long
+ // enough time (100 seconds)
+ private readonly CancellationTokenSource _shutdown = new(TimeSpan.FromSeconds(100));
+ private readonly IConfigurationRoot _configRoot;
+ private readonly bool _ignoreShutdownSignal;
+ private readonly bool _exitWithNonZero;
+
+ static Program()
+ {
+ Log.Logger = new LoggerConfiguration()
+ .WriteTo.Console()
+ .CreateLogger();
+ }
+
+ private Program(string[] args)
+ {
+ _configRoot = new ConfigurationBuilder()
+ .AddCommandLine(args)
+ .AddEnvironmentVariables()
+ .Build();
+
+ // Running program with --debug=true will attach a debugger.
+ // Used to assist with debugging LittleForker.
+ if (_configRoot.GetValue("debug", false))
{
- _configRoot = new ConfigurationBuilder()
- .AddCommandLine(args)
- .AddEnvironmentVariables()
- .Build();
-
- // Running program with --debug=true will attach a debugger.
- // Used to assist with debugging LittleForker.
- if (_configRoot.GetValue("debug", false))
- {
- Debugger.Launch();
- }
+ Debugger.Launch();
+ }
- _ignoreShutdownSignal = _configRoot.GetValue("ignore-shutdown-signal", false);
- if (_ignoreShutdownSignal)
- {
- Log.Logger.Information("Will ignore Shutdown Signal");
- }
-
- _exitWithNonZero = _configRoot.GetValue("exit-with-non-zero", false);
- if (_exitWithNonZero)
- {
- Log.Logger.Information("Will exit with non-zero exit code");
- }
+ _ignoreShutdownSignal = _configRoot.GetValue("ignore-shutdown-signal", false);
+ if (_ignoreShutdownSignal)
+ {
+ Log.Logger.Information("Will ignore Shutdown Signal");
}
- private async Task Run()
+ _exitWithNonZero = _configRoot.GetValue("exit-with-non-zero", false);
+ if (_exitWithNonZero)
{
- var pid = Process.GetCurrentProcess().Id;
- Log.Logger.Information($"Long running process started. PID={pid}");
+ Log.Logger.Information("Will exit with non-zero exit code");
+ }
+ }
- var parentPid = _configRoot.GetValue("ParentProcessId");
+ private async Task Run()
+ {
+ var pid = Process.GetCurrentProcess().Id;
+ Log.Logger.Information($"Long running process started. PID={pid}");
+
+ var parentPid = _configRoot.GetValue("ParentProcessId");
- using (parentPid.HasValue
- ? new ProcessExitedHelper(parentPid.Value, _ => ParentExited(parentPid.Value), new NullLoggerFactory())
- : NoopDisposable.Instance)
+ using (parentPid.HasValue
+ ? new ProcessExitedHelper(parentPid.Value, _ => ParentExited(parentPid.Value), new NullLoggerFactory())
+ : NoopDisposable.Instance)
+ {
+ using (await CooperativeShutdown.Listen(ExitRequested, new NullLoggerFactory()))
{
- using (await CooperativeShutdown.Listen(ExitRequested, new NullLoggerFactory()))
+ // Poll the shutdown token in a tight loop
+ while(!_shutdown.IsCancellationRequested || _ignoreShutdownSignal)
{
- // Poll the shutdown token in a tight loop
- while(!_shutdown.IsCancellationRequested || _ignoreShutdownSignal)
- {
- await Task.Delay(100);
- }
- Log.Information("Exiting.");
+ await Task.Delay(100);
}
+ Log.Information("Exiting.");
}
-
- return _exitWithNonZero ? -1 : 0;
}
- static Task Main(string[] args) => new Program(args).Run();
-
- private void ExitRequested()
- {
- Log.Logger.Information("Cooperative shutdown requested.");
+ return _exitWithNonZero ? -1 : 0;
+ }
- if (_ignoreShutdownSignal)
- {
- Log.Logger.Information("Shut down signal ignored.");
- return;
- }
+ static Task Main(string[] args) => new Program(args).Run();
- _shutdown.Cancel();
- }
+ private void ExitRequested()
+ {
+ Log.Logger.Information("Cooperative shutdown requested.");
- private void ParentExited(int processId)
+ if (_ignoreShutdownSignal)
{
- Log.Logger.Information($"Parent process {processId} exited.");
- _shutdown.Cancel();
+ Log.Logger.Information("Shut down signal ignored.");
+ return;
}
- private class NoopDisposable : IDisposable
- {
- public void Dispose()
- {}
+ _shutdown.Cancel();
+ }
- internal static readonly IDisposable Instance = new NoopDisposable();
- }
+ private void ParentExited(int processId)
+ {
+ Log.Logger.Information($"Parent process {processId} exited.");
+ _shutdown.Cancel();
}
-}
+
+ private class NoopDisposable : IDisposable
+ {
+ public void Dispose()
+ {}
+
+ internal static readonly IDisposable Instance = new NoopDisposable();
+ }
+}*/
\ No newline at end of file
diff --git a/libs/little-forker/src/SelfTerminatingProcess/SelfTerminatingProcess.csproj b/libs/little-forker/src/SelfTerminatingProcess/SelfTerminatingProcess.csproj
index e8130b7b..3f57f96b 100644
--- a/libs/little-forker/src/SelfTerminatingProcess/SelfTerminatingProcess.csproj
+++ b/libs/little-forker/src/SelfTerminatingProcess/SelfTerminatingProcess.csproj
@@ -4,9 +4,8 @@
Exe
net6.0
latest
- bin
false
- ..\LittleForker.Tests\SelfTerminatingProcess\
+ ..\..\tests\LittleForker.Tests\SelfTerminatingProcess\
false
diff --git a/libs/little-forker/tests/LittleForker.Tests/.gitignore b/libs/little-forker/tests/LittleForker.Tests/.gitignore
new file mode 100644
index 00000000..74ff0bc1
--- /dev/null
+++ b/libs/little-forker/tests/LittleForker.Tests/.gitignore
@@ -0,0 +1,2 @@
+NonTerminatingProcess/*
+SelfTerminatingProcess/*
diff --git a/libs/little-forker/tests/LittleForker.Tests/Constants.cs b/libs/little-forker/tests/LittleForker.Tests/Constants.cs
new file mode 100644
index 00000000..08b110f1
--- /dev/null
+++ b/libs/little-forker/tests/LittleForker.Tests/Constants.cs
@@ -0,0 +1,9 @@
+using System;
+namespace Logicality.LittleForker;
+
+internal static class Constants
+{
+ internal const string DotNet = "dotnet";
+ internal const string NonTerminatingProcessPath = "./NonTerminatingProcess/Logicality.NonTerminatingProcess.dll";
+ internal const string SelfTerminatingProcessPath = "./SelfTerminatingProcess/Logicality.SelfTerminatingProcess.dll";
+}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/CooperativeShutdownTests.cs b/libs/little-forker/tests/LittleForker.Tests/CooperativeShutdownTests.cs
index d2888306..82917b2b 100644
--- a/libs/little-forker/tests/LittleForker.Tests/CooperativeShutdownTests.cs
+++ b/libs/little-forker/tests/LittleForker.Tests/CooperativeShutdownTests.cs
@@ -23,7 +23,7 @@ public async Task When_server_signals_exit_then_should_notify_client_to_exit()
() => exitCalled.SetResult(true),
_loggerFactory);
- await CooperativeShutdown.SignalExit(Process.GetCurrentProcess().Id, _loggerFactory);
+ await CooperativeShutdown.SignalExit(Environment.ProcessId, _loggerFactory);
(await exitCalled.Task).ShouldBeTrue();
diff --git a/libs/little-forker/tests/LittleForker.Tests/LittleForker.Tests.csproj b/libs/little-forker/tests/LittleForker.Tests/LittleForker.Tests.csproj
index 81378262..f45aba77 100644
--- a/libs/little-forker/tests/LittleForker.Tests/LittleForker.Tests.csproj
+++ b/libs/little-forker/tests/LittleForker.Tests/LittleForker.Tests.csproj
@@ -1,7 +1,7 @@
- net6.0
+ net6.0;net7.0
Logicality.LittleForker
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/LittleForker.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/LittleForker.dll
deleted file mode 100644
index 05147981..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/LittleForker.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/LittleForker.xml b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/LittleForker.xml
deleted file mode 100644
index b95694c5..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/LittleForker.xml
+++ /dev/null
@@ -1,240 +0,0 @@
-
-
-
- LittleForker
-
-
-
-
- Allows a process to be co-cooperatively shut down (as opposed the more
- brutal Process.Kill()
-
-
-
-
- The pipe name a process will listen on for a EXIT signal.
-
- The process ID process listening.
- A generated pipe name.
-
-
-
- Creates a listener for cooperative shutdown.
-
-
- The callback that is invoked when cooperative shutdown has been
- requested.
-
-
- A logger factory.
-
- A method to be called if an error occurs while listening
-
- A disposable representing the named pipe listener.
-
-
-
-
- Signals to a process to shut down.
-
- The process ID to signal too.
- A logger factory.
- A task representing the operation.
-
-
-
- Interlocked support for boolean values
-
-
-
-
- Current value
-
-
-
-
- Initializes a new instance of
-
- initial value
-
-
-
- Sets a new value
-
- new value
- the original value before any operation was performed
-
-
-
- Compares the current value and the comparand for equality and, if they are equal,
- replaces the current value with the new value in an atomic/thread-safe operation.
-
- new value
- value to compare the current value with
- the original value before any operation was performed
-
-
-
- The process's exit code.
-
-
-
-
- The process's Id.
-
-
-
-
- Helper that raises event when the process has exited. A wrapper around
- Process.Exited with some error handling and logging.
-
-
-
-
- Initializes a new instance of
-
-
- The process Id of the process to watch for exited.
-
-
- A callback that is invoked when process has exited or does not
- exist with the instance as a
- parameter.
-
-
- A logger.
-
-
-
-
- Defined how a process is expected to run.
-
-
-
-
- Processes that are expected to terminate of their own accord.
-
-
-
-
- Processes that are not expected to terminiate of their own
- accord and that must be co-operatively shutdown or killed.
-
-
-
-
- Launches an process and tracks it's lifecycle .
-
-
-
-
- The state a process is in.
-
-
-
-
- Initializes a new instance of
-
-
- The working directory to start the process in.
-
-
- The path to the process.
-
-
- The process run type.
-
-
- A logger factory.
-
-
- Arguments to be passed to the process.
-
-
- Environment variables that are set before the process starts.
-
-
- A flag to indicated whether to capture standard error output.
-
-
-
-
- Contains the caught exception in the event a process failed to
- be launched.
-
-
-
-
- Information about the launched process.
-
-
-
-
- Raised when the process emits console data.
-
-
-
-
- Raised when the process emits stderr console data.
-
-
-
-
- Raised when the process state has changed.
-
-
-
-
- Starts the process.
-
-
-
-
- Initiates a process stop. If a timeout is supplied (and greater
- than 0ms), it will attempt a "co-operative" shutdown by
- signalling an EXIT command to the process. The process needs to
- support such signalling and needs to complete within the timeout
- otherwise the process will be terminated via Kill(). The maximum
- recommended timeout is 25 seconds. This is 5 seconds less than
- default 30 seconds that windows will consider a service to be
- 'hung'.
-
-
-
-
-
-
- Represents a queue of tasks where a task is processed one at a time. When disposed
- the outstanding tasks are cancelled.
-
-
-
-
- Enqueues a task for processing.
-
- The operations to invoke.
- A task representing the operation. Awaiting is optional.
-
-
-
- Enqueues a task for processing.
-
- The operations to invoke.
- A task representing the operation. Awaiting is optional.
-
-
-
- Enqueues a task for processing.
-
- The operation to invoke that is co-operatively cancelable.
- A task representing the operation. Awaiting is optional.
-
-
-
- Enqueues a task for processing.
-
- The operation to invoke that is co-operatively cancelable.
- A task representing the operation. Awaiting is optional.
-
-
-
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Abstractions.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Abstractions.dll
deleted file mode 100644
index 52befe91..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Abstractions.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Binder.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Binder.dll
deleted file mode 100644
index 84b0357b..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.Binder.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.CommandLine.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.CommandLine.dll
deleted file mode 100644
index 5cd78f5f..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.CommandLine.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.EnvironmentVariables.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.EnvironmentVariables.dll
deleted file mode 100644
index fa1bd7e8..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.EnvironmentVariables.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.dll
deleted file mode 100644
index 718180b5..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Configuration.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Logging.Abstractions.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Logging.Abstractions.dll
deleted file mode 100644
index 82e06989..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Logging.Abstractions.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Primitives.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Primitives.dll
deleted file mode 100644
index d12ec5bd..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Microsoft.Extensions.Primitives.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.deps.json b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.deps.json
deleted file mode 100644
index 9d6886b2..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.deps.json
+++ /dev/null
@@ -1,715 +0,0 @@
-{
- "runtimeTarget": {
- "name": ".NETCoreApp,Version=v3.1",
- "signature": ""
- },
- "compilationOptions": {},
- "targets": {
- ".NETCoreApp,Version=v3.1": {
- "NonTerminatingProcess/1.0.0": {
- "dependencies": {
- "LittleForker": "1.0.0",
- "Microsoft.Extensions.Configuration.Binder": "3.1.0",
- "Microsoft.Extensions.Configuration.CommandLine": "3.1.0",
- "Microsoft.Extensions.Configuration.EnvironmentVariables": "3.1.0",
- "Serilog.Sinks.Console": "3.1.1"
- },
- "runtime": {
- "NonTerminatingProcess.dll": {}
- }
- },
- "Microsoft.CSharp/4.0.1": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Dynamic.Runtime": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Linq": "4.1.0",
- "System.Linq.Expressions": "4.1.0",
- "System.ObjectModel": "4.0.12",
- "System.Reflection": "4.3.0",
- "System.Reflection.Extensions": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Reflection.TypeExtensions": "4.1.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Runtime.InteropServices": "4.3.0",
- "System.Threading": "4.3.0"
- }
- },
- "Microsoft.Extensions.Configuration/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration.Abstractions": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.Abstractions/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Primitives": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Abstractions.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.Binder/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.Binder.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.CommandLine/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.CommandLine.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Configuration.EnvironmentVariables/3.1.0": {
- "dependencies": {
- "Microsoft.Extensions.Configuration": "3.1.0"
- },
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Configuration.EnvironmentVariables.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Logging.Abstractions/3.1.0": {
- "runtime": {
- "lib/netstandard2.0/Microsoft.Extensions.Logging.Abstractions.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.Extensions.Primitives/3.1.0": {
- "runtime": {
- "lib/netcoreapp3.1/Microsoft.Extensions.Primitives.dll": {
- "assemblyVersion": "3.1.0.0",
- "fileVersion": "3.100.19.56504"
- }
- }
- },
- "Microsoft.NETCore.Platforms/1.1.0": {},
- "Microsoft.NETCore.Targets/1.1.0": {},
- "runtime.native.System/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0"
- }
- },
- "Serilog/2.5.0": {
- "dependencies": {
- "Microsoft.CSharp": "4.0.1",
- "System.Collections": "4.0.11",
- "System.Collections.NonGeneric": "4.0.1",
- "System.Dynamic.Runtime": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Linq": "4.1.0",
- "System.Reflection": "4.3.0",
- "System.Reflection.Extensions": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Text.RegularExpressions": "4.1.0",
- "System.Threading": "4.3.0"
- },
- "runtime": {
- "lib/netstandard1.3/Serilog.dll": {
- "assemblyVersion": "2.0.0.0",
- "fileVersion": "2.5.0.0"
- }
- }
- },
- "Serilog.Sinks.Console/3.1.1": {
- "dependencies": {
- "Serilog": "2.5.0",
- "System.Console": "4.3.0",
- "System.Runtime.InteropServices": "4.3.0",
- "System.Runtime.InteropServices.RuntimeInformation": "4.3.0"
- },
- "runtime": {
- "lib/netcoreapp1.1/Serilog.Sinks.Console.dll": {
- "assemblyVersion": "3.1.1.0",
- "fileVersion": "3.1.1.0"
- }
- }
- },
- "Stateless/5.1.3": {
- "runtime": {
- "lib/netstandard2.0/Stateless.dll": {
- "assemblyVersion": "4.0.0.0",
- "fileVersion": "5.1.3.0"
- }
- }
- },
- "System.Collections/4.0.11": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Collections.NonGeneric/4.0.1": {
- "dependencies": {
- "System.Diagnostics.Debug": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Console/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.IO": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Text.Encoding": "4.3.0"
- }
- },
- "System.Diagnostics.Debug/4.0.11": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Dynamic.Runtime/4.0.11": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Linq": "4.1.0",
- "System.Linq.Expressions": "4.1.0",
- "System.ObjectModel": "4.0.12",
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit": "4.0.1",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Primitives": "4.3.0",
- "System.Reflection.TypeExtensions": "4.1.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Globalization/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.IO/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0",
- "System.Text.Encoding": "4.3.0",
- "System.Threading.Tasks": "4.3.0"
- }
- },
- "System.Linq/4.1.0": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0"
- }
- },
- "System.Linq.Expressions/4.1.0": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.IO": "4.3.0",
- "System.Linq": "4.1.0",
- "System.ObjectModel": "4.0.12",
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit": "4.0.1",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Emit.Lightweight": "4.0.1",
- "System.Reflection.Extensions": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Reflection.TypeExtensions": "4.1.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.ObjectModel/4.0.12": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Diagnostics.Debug": "4.0.11",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Reflection/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.IO": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Emit/4.0.1": {
- "dependencies": {
- "System.IO": "4.3.0",
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Emit.ILGeneration/4.0.1": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Emit.Lightweight/4.0.1": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Reflection.Emit.ILGeneration": "4.0.1",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Extensions/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Reflection": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.Primitives/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Reflection.TypeExtensions/4.1.0": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Resources.ResourceManager/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Globalization": "4.3.0",
- "System.Reflection": "4.3.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Runtime/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0"
- }
- },
- "System.Runtime.Extensions/4.1.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Runtime.Handles/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Runtime.InteropServices/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Reflection": "4.3.0",
- "System.Reflection.Primitives": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Handles": "4.3.0"
- }
- },
- "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
- "dependencies": {
- "System.Reflection": "4.3.0",
- "System.Reflection.Extensions": "4.3.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.InteropServices": "4.3.0",
- "System.Threading": "4.3.0",
- "runtime.native.System": "4.3.0"
- }
- },
- "System.Text.Encoding/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "System.Text.RegularExpressions/4.1.0": {
- "dependencies": {
- "System.Collections": "4.0.11",
- "System.Globalization": "4.3.0",
- "System.Resources.ResourceManager": "4.3.0",
- "System.Runtime": "4.3.0",
- "System.Runtime.Extensions": "4.1.0",
- "System.Threading": "4.3.0"
- }
- },
- "System.Threading/4.3.0": {
- "dependencies": {
- "System.Runtime": "4.3.0",
- "System.Threading.Tasks": "4.3.0"
- }
- },
- "System.Threading.Tasks/4.3.0": {
- "dependencies": {
- "Microsoft.NETCore.Platforms": "1.1.0",
- "Microsoft.NETCore.Targets": "1.1.0",
- "System.Runtime": "4.3.0"
- }
- },
- "LittleForker/1.0.0": {
- "dependencies": {
- "Microsoft.Extensions.Logging.Abstractions": "3.1.0",
- "Stateless": "5.1.3"
- },
- "runtime": {
- "LittleForker.dll": {}
- }
- }
- }
- },
- "libraries": {
- "NonTerminatingProcess/1.0.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- },
- "Microsoft.CSharp/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==",
- "path": "microsoft.csharp/4.0.1",
- "hashPath": "microsoft.csharp.4.0.1.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-Lu41BWNmwhKr6LgyQvcYBOge0pPvmiaK8R5UHXX4//wBhonJyWcT2OK1mqYfEM5G7pTf31fPrpIHOT6sN7EGOA==",
- "path": "microsoft.extensions.configuration/3.1.0",
- "hashPath": "microsoft.extensions.configuration.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.Abstractions/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-ESz6bVoDQX7sgWdKHF6G9Pq672T8k+19AFb/txDXwdz7MoqaNQj2/in3agm/3qae9V+WvQZH86LLTNVo0it8vQ==",
- "path": "microsoft.extensions.configuration.abstractions/3.1.0",
- "hashPath": "microsoft.extensions.configuration.abstractions.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.Binder/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-o9eELDBfNkR7sUtYysFZ1Q7BQ1mYt27DMkups/3vu7xgPyOpMD+iAfrBZFzUXT2iw0fmFb8s1gfNBZS+IgjKdQ==",
- "path": "microsoft.extensions.configuration.binder/3.1.0",
- "hashPath": "microsoft.extensions.configuration.binder.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.CommandLine/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-KDjz4HBw549oW4Y1eQAImAugCSYn84KXwgGZtgMqEwctvkdxZo0ObZC5QQI/YvX21U+DArR9+NfWZ3MxD9MhPA==",
- "path": "microsoft.extensions.configuration.commandline/3.1.0",
- "hashPath": "microsoft.extensions.configuration.commandline.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Configuration.EnvironmentVariables/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-WryksPlAFFRMWIGpFwDDbrVSD/kSO7P7fRRzBHh6vEIrgflsM8tpPCcgIvKszH4fz4vcuapih9RMdiiJ2VS7aw==",
- "path": "microsoft.extensions.configuration.environmentvariables/3.1.0",
- "hashPath": "microsoft.extensions.configuration.environmentvariables.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Logging.Abstractions/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-jjo4YXRx6MIpv6DiRxJjSpl+sPP0+5VW0clMEdLyIAz44PPwrDTFrd5PZckIxIXl1kKZ2KK6IL2nkt0+ug2MQg==",
- "path": "microsoft.extensions.logging.abstractions/3.1.0",
- "hashPath": "microsoft.extensions.logging.abstractions.3.1.0.nupkg.sha512"
- },
- "Microsoft.Extensions.Primitives/3.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-LEKAnX7lhUhSoIc2XraCTK3M4IU/LdVUzCe464Sa4+7F4ZJuXHHRzZli2mDbiT4xzAZhgqXbvfnb5+CNDcQFfg==",
- "path": "microsoft.extensions.primitives/3.1.0",
- "hashPath": "microsoft.extensions.primitives.3.1.0.nupkg.sha512"
- },
- "Microsoft.NETCore.Platforms/1.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-idaVSR7ew5XDPrfLP7d36Ku/ccVVEL9UUELGX571U9pLLvUS40bfcpsMSbvwaAPBX5gLnz69G2cTb7+8uN3fNA==",
- "path": "microsoft.netcore.platforms/1.1.0",
- "hashPath": "microsoft.netcore.platforms.1.1.0.nupkg.sha512"
- },
- "Microsoft.NETCore.Targets/1.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-BwoPHv7y0C6m1x9P0EqsanTX7hGx7/I6vTufhGR8oGzQQIYLrxhHrzVjXakRRIfPQLZ6cVrDDGJpkMefwjh1qw==",
- "path": "microsoft.netcore.targets/1.1.0",
- "hashPath": "microsoft.netcore.targets.1.1.0.nupkg.sha512"
- },
- "runtime.native.System/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-TkXr4hGTR6iKbKfjodEXZqydO5JVQJufXKfUQD6cNqRKJzRNwoq7if1e+x5Oiqs4HEUiaxDFDzrDPRuuhAccLA==",
- "path": "runtime.native.system/4.3.0",
- "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
- },
- "Serilog/2.5.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-JwwkgNYNFKT4kQZ3qBV3VqPgchUg1A6FnlFa9hgyanylwBhJ7eTFl3pgLVxijFEb+oHLImRcMaTsMzBt2AG0aQ==",
- "path": "serilog/2.5.0",
- "hashPath": "serilog.2.5.0.nupkg.sha512"
- },
- "Serilog.Sinks.Console/3.1.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-56mI5AqvyF/i/c2451nvV71kq370XOCE4Uu5qiaJ295sOhMb9q3BWwG7mWLOVSnmpWiq0SBT3SXfgRXGNP6vzA==",
- "path": "serilog.sinks.console/3.1.1",
- "hashPath": "serilog.sinks.console.3.1.1.nupkg.sha512"
- },
- "Stateless/5.1.3": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-ZQ4XGc1DyrrCxhjIoj6cCIEF39KE8eWP/nyLji5IJOTMc0/JQuhzHUF7YTp1gZ/GWx7QHyQSKuSkSF0wAaV8/g==",
- "path": "stateless/5.1.3",
- "hashPath": "stateless.5.1.3.nupkg.sha512"
- },
- "System.Collections/4.0.11": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-YUJGz6eFKqS0V//mLt25vFGrrCvOnsXjlvFQs+KimpwNxug9x0Pzy4PlFMU3Q2IzqAa9G2L4LsK3+9vCBK7oTg==",
- "path": "system.collections/4.0.11",
- "hashPath": "system.collections.4.0.11.nupkg.sha512"
- },
- "System.Collections.NonGeneric/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
- "path": "system.collections.nongeneric/4.0.1",
- "hashPath": "system.collections.nongeneric.4.0.1.nupkg.sha512"
- },
- "System.Console/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-cEaRntm8ZPeydLEgB9BFgSCtLq1OH8NKEOYbScAuS951k/SkRNHoOa7eH/j7laqQRemlRs+OfWT3PfJC25KomA==",
- "path": "system.console/4.3.0",
- "hashPath": "system.console.4.3.0.nupkg.sha512"
- },
- "System.Diagnostics.Debug/4.0.11": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-w5U95fVKHY4G8ASs/K5iK3J5LY+/dLFd4vKejsnI/ZhBsWS9hQakfx3Zr7lRWKg4tAw9r4iktyvsTagWkqYCiw==",
- "path": "system.diagnostics.debug/4.0.11",
- "hashPath": "system.diagnostics.debug.4.0.11.nupkg.sha512"
- },
- "System.Dynamic.Runtime/4.0.11": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
- "path": "system.dynamic.runtime/4.0.11",
- "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512"
- },
- "System.Globalization/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-FTwzGe2H4gLc3ntm182f3urwoW/XOo86zWR18UTnmAhGiP86xVal32NPy8TF+tGtUNH6Swx1NxfuF5WcX4g30A==",
- "path": "system.globalization/4.3.0",
- "hashPath": "system.globalization.4.3.0.nupkg.sha512"
- },
- "System.IO/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-w7XW+nMsWTj1rYjEWgpq9cvJUtCwghvCDlBgjbzp/P/B6wVFTgO66CIuqJtyDk6aVlFRj0sCMjQuHav3C/7L2A==",
- "path": "system.io/4.3.0",
- "hashPath": "system.io.4.3.0.nupkg.sha512"
- },
- "System.Linq/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
- "path": "system.linq/4.1.0",
- "hashPath": "system.linq.4.1.0.nupkg.sha512"
- },
- "System.Linq.Expressions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
- "path": "system.linq.expressions/4.1.0",
- "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512"
- },
- "System.ObjectModel/4.0.12": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
- "path": "system.objectmodel/4.0.12",
- "hashPath": "system.objectmodel.4.0.12.nupkg.sha512"
- },
- "System.Reflection/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-QvYQf904nQBXZ5aecu0SYhXIDxvPTNyyNK5GJk5scORZ+suONOEoLEnVVVNBh2oo0iOMxs0wNnUSRYUKjTOY1g==",
- "path": "system.reflection/4.3.0",
- "hashPath": "system.reflection.4.3.0.nupkg.sha512"
- },
- "System.Reflection.Emit/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
- "path": "system.reflection.emit/4.0.1",
- "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512"
- },
- "System.Reflection.Emit.ILGeneration/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
- "path": "system.reflection.emit.ilgeneration/4.0.1",
- "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512"
- },
- "System.Reflection.Emit.Lightweight/4.0.1": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
- "path": "system.reflection.emit.lightweight/4.0.1",
- "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512"
- },
- "System.Reflection.Extensions/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-ceOwyoOAcGXe5RcsxOa5YTv+WkusdkcgI4uLWAruXJQqzsm+JpykgmVl1qIEteujPe25CSiuZ0bia6bEC91wjg==",
- "path": "system.reflection.extensions/4.3.0",
- "hashPath": "system.reflection.extensions.4.3.0.nupkg.sha512"
- },
- "System.Reflection.Primitives/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-t4hYC7B1Nx1nfCita2rvT5jmUIBdB9WetwDCNRM563xaMe2OJG6B/IYw/3G3yjVNSnDwNE4ZCgX1+sWaWiFdtw==",
- "path": "system.reflection.primitives/4.3.0",
- "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
- },
- "System.Reflection.TypeExtensions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
- "path": "system.reflection.typeextensions/4.1.0",
- "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512"
- },
- "System.Resources.ResourceManager/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-9wMxekOHhBZK/q67VtoJqMatuAtYxxvMwPZaNtcE4hDE7ABntfCwYGfiI2Py85NF1a4+vEFxbs0aU4lZLapIJA==",
- "path": "system.resources.resourcemanager/4.3.0",
- "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
- },
- "System.Runtime/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-lzGIsYqFiek4CIq57IfoD82j2eDEY8MUuaeydMYqPbMGtwQjIrQOBkQ8BEZt6/OFFdbzrTMTBYDSwknfZ3cINA==",
- "path": "system.runtime/4.3.0",
- "hashPath": "system.runtime.4.3.0.nupkg.sha512"
- },
- "System.Runtime.Extensions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-CUOHjTT/vgP0qGW22U4/hDlOqXmcPq5YicBaXdUR2UiUoLwBT+olO6we4DVbq57jeX5uXH2uerVZhf0qGj+sVQ==",
- "path": "system.runtime.extensions/4.1.0",
- "hashPath": "system.runtime.extensions.4.1.0.nupkg.sha512"
- },
- "System.Runtime.Handles/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-C9iaNbc8GDTo1QhPZfM9rMVAW4bvGIyy2dQNfkLH9cWTN1SciXs3vAiUocQa2+B/qoSxWFGVToCVufdjdtu52A==",
- "path": "system.runtime.handles/4.3.0",
- "hashPath": "system.runtime.handles.4.3.0.nupkg.sha512"
- },
- "System.Runtime.InteropServices/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-Bw8KLS0ShC4QpngDuL3T8Xh8FysQL9hCOnxtQptYkDpn1kuI5AxovlxfLG0c9AIgUGacShvMklB9J35knOZlSQ==",
- "path": "system.runtime.interopservices/4.3.0",
- "hashPath": "system.runtime.interopservices.4.3.0.nupkg.sha512"
- },
- "System.Runtime.InteropServices.RuntimeInformation/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-Yd576GicDywTfJFH7Q7xr5yKWqIInr7c11zhyDIfQvIqreKIQ+86ChmaIDXaq1k3lPSnEH76YD8ZVCHLBl8sOw==",
- "path": "system.runtime.interopservices.runtimeinformation/4.3.0",
- "hashPath": "system.runtime.interopservices.runtimeinformation.4.3.0.nupkg.sha512"
- },
- "System.Text.Encoding/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-IinDSYC7nZb0lQk79K+IOK7iiMJBYB91QtYzfKUyUWaP+TDVHoLJbYc6Qo53NSTXqnYOZL5BjTqXjp1SGsIGKA==",
- "path": "system.text.encoding/4.3.0",
- "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
- },
- "System.Text.RegularExpressions/4.1.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
- "path": "system.text.regularexpressions/4.1.0",
- "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512"
- },
- "System.Threading/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-a2F+Zx5I0i9eiralJbAzTio7iYgMNK49g4pHWOuOFndEPpTtNpJjY4/w5Dd5LhVRtrfcm/hLBU5h9S9wkBXSFw==",
- "path": "system.threading/4.3.0",
- "hashPath": "system.threading.4.3.0.nupkg.sha512"
- },
- "System.Threading.Tasks/4.3.0": {
- "type": "package",
- "serviceable": true,
- "sha512": "sha512-3qCGA18efLdzj3ypbcV3tDHTE+U9ubICeDBxmNvSNTcDrwUX7u+JDD8MhVq2DtMEf4mxqHTf3gegXBTXYoes7g==",
- "path": "system.threading.tasks/4.3.0",
- "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
- },
- "LittleForker/1.0.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.dll
deleted file mode 100644
index 531525ef..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.exe b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.exe
deleted file mode 100644
index 9f546b47..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.exe and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.runtimeconfig.dev.json b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.runtimeconfig.dev.json
deleted file mode 100644
index 477e698c..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.runtimeconfig.dev.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "runtimeOptions": {
- "additionalProbingPaths": [
- "C:\\Users\\damian\\.dotnet\\store\\|arch|\\|tfm|",
- "C:\\Users\\damian\\.nuget\\packages",
- "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
- ]
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.runtimeconfig.json b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.runtimeconfig.json
deleted file mode 100644
index bc456d78..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.runtimeconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "runtimeOptions": {
- "tfm": "netcoreapp3.1",
- "framework": {
- "name": "Microsoft.NETCore.App",
- "version": "3.1.0"
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.xml b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.xml
deleted file mode 100644
index ac11791a..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/NonTerminatingProcess.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- NonTerminatingProcess
-
-
-
-
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Serilog.Sinks.Console.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Serilog.Sinks.Console.dll
deleted file mode 100644
index b0178a75..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Serilog.Sinks.Console.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Serilog.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Serilog.dll
deleted file mode 100644
index acb43403..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Serilog.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Stateless.dll b/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Stateless.dll
deleted file mode 100644
index 89419fed..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/NonTerminatingProcess/Stateless.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/ProcessExitedHelperTests.cs b/libs/little-forker/tests/LittleForker.Tests/ProcessExitedHelperTests.cs
index 84aa9b2c..15724931 100644
--- a/libs/little-forker/tests/LittleForker.Tests/ProcessExitedHelperTests.cs
+++ b/libs/little-forker/tests/LittleForker.Tests/ProcessExitedHelperTests.cs
@@ -35,8 +35,8 @@ public async Task When_parent_process_exits_than_should_call_parent_exited_callb
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll");
+ Constants.DotNet,
+ Constants.NonTerminatingProcessPath);
var parentIsRunning = supervisor.WhenStateIs(ProcessSupervisor.State.Running);
supervisor.OutputDataReceived += data => _outputHelper.WriteLine($"Parent Process: {data}");
await supervisor.Start();
@@ -44,12 +44,12 @@ public async Task When_parent_process_exits_than_should_call_parent_exited_callb
// Monitor parent
var parentExited = new TaskCompletionSource();
- using (new ProcessExitedHelper(supervisor.ProcessInfo.Id, watcher => parentExited.SetResult(watcher.ProcessId), _loggerFactory))
+ using (new ProcessExitedHelper(supervisor.ProcessInfo!.Id, watcher => parentExited.SetResult(watcher.ProcessId), _loggerFactory))
{
// Stop parent
await supervisor.Stop(TimeSpan.FromSeconds(2));
var processId = await parentExited.Task.TimeoutAfter(TimeSpan.FromSeconds(2));
- processId.Value.ShouldBeGreaterThan(0);
+ processId!.Value.ShouldBeGreaterThan(0);
}
}
@@ -61,8 +61,8 @@ public async Task When_parent_process_exits_then_child_process_should_also_do_so
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll");
+ Constants.DotNet,
+ Constants.NonTerminatingProcessPath);
parentSupervisor.OutputDataReceived += data => _outputHelper.WriteLine($"Parent: {data}");
var parentIsRunning = parentSupervisor.WhenStateIs(ProcessSupervisor.State.Running);
await parentSupervisor.Start();
@@ -73,8 +73,8 @@ public async Task When_parent_process_exits_then_child_process_should_also_do_so
_loggerFactory,
ProcessRunType.SelfTerminating,
Environment.CurrentDirectory,
- "dotnet",
- $"./NonTerminatingProcess/NonTerminatingProcess.dll --ParentProcessId={parentSupervisor.ProcessInfo.Id}");
+ Constants.DotNet,
+ $"{Constants.NonTerminatingProcessPath} --ParentProcessId={parentSupervisor.ProcessInfo!.Id}");
childSupervisor.OutputDataReceived += data => _outputHelper.WriteLine($"Child: {data}");
var childIsRunning = childSupervisor.WhenStateIs(ProcessSupervisor.State.Running);
var childHasStopped = childSupervisor.WhenStateIs(ProcessSupervisor.State.ExitedSuccessfully);
diff --git a/libs/little-forker/tests/LittleForker.Tests/ProcessSupervisorTests.cs b/libs/little-forker/tests/LittleForker.Tests/ProcessSupervisorTests.cs
index 66217b12..2d5e01ff 100644
--- a/libs/little-forker/tests/LittleForker.Tests/ProcessSupervisorTests.cs
+++ b/libs/little-forker/tests/LittleForker.Tests/ProcessSupervisorTests.cs
@@ -7,7 +7,7 @@
namespace Logicality.LittleForker;
-public class ProcessSupervisorTests : IDisposable
+public class ProcessSupervisorTests
{
private readonly ITestOutputHelper _outputHelper;
private readonly ILoggerFactory _loggerFactory;
@@ -21,7 +21,7 @@ public ProcessSupervisorTests(ITestOutputHelper outputHelper)
[Fact]
public async Task Given_invalid_process_path_then_state_should_be_StartError()
{
- var supervisor = new ProcessSupervisor(_loggerFactory, ProcessRunType.NonTerminating, "c:/", "invalid.exe");
+ using var supervisor = new ProcessSupervisor(_loggerFactory, ProcessRunType.NonTerminating, "c:/", "invalid.exe");
var stateIsStartFailed = supervisor.WhenStateIs(ProcessSupervisor.State.StartFailed);
await supervisor.Start();
@@ -35,7 +35,7 @@ public async Task Given_invalid_process_path_then_state_should_be_StartError()
[Fact]
public async Task Given_invalid_working_directory_then_state_should_be_StartError()
{
- var supervisor = new ProcessSupervisor(_loggerFactory, ProcessRunType.NonTerminating, "c:/does_not_exist", "git.exe");
+ using var supervisor = new ProcessSupervisor(_loggerFactory, ProcessRunType.NonTerminating, "c:/does_not_exist", "git.exe");
await supervisor.Start();
supervisor.CurrentState.ShouldBe(ProcessSupervisor.State.StartFailed);
@@ -48,14 +48,14 @@ public async Task Given_invalid_working_directory_then_state_should_be_StartErro
public async Task Given_short_running_exe_then_should_run_to_exit()
{
var envVars = new StringDictionary {{"a", "b"}};
- var supervisor = new ProcessSupervisor(
+ using var supervisor = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.SelfTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./SelfTerminatingProcess/SelfTerminatingProcess.dll",
+ Constants.DotNet,
+ Constants.SelfTerminatingProcessPath,
envVars);
- supervisor.OutputDataReceived += data => _outputHelper.WriteLine2(data);
+ supervisor.OutputDataReceived += _outputHelper.WriteLine2;
var whenStateIsExited = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedSuccessfully);
var whenStateIsExitedWithError = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedWithError);
@@ -66,18 +66,18 @@ public async Task Given_short_running_exe_then_should_run_to_exit()
task.ShouldBe(whenStateIsExited);
supervisor.CurrentState.ShouldBe(ProcessSupervisor.State.ExitedSuccessfully);
supervisor.OnStartException.ShouldBeNull();
- supervisor.ProcessInfo.ExitCode.ShouldBe(0);
+ supervisor.ProcessInfo!.ExitCode.ShouldBe(0);
}
[Fact]
public async Task Given_non_terminating_process_then_should_exit_when_stopped()
{
- var supervisor = new ProcessSupervisor(
+ using var supervisor = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll");
+ Constants.DotNet,
+ Constants.NonTerminatingProcessPath);
supervisor.OutputDataReceived += data => _outputHelper.WriteLine2($"Process: {data}");
var running = supervisor.WhenStateIs(ProcessSupervisor.State.Running);
await supervisor.Start();
@@ -99,9 +99,9 @@ public async Task Can_restart_a_stopped_short_running_process()
_loggerFactory,
ProcessRunType.SelfTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./SelfTerminatingProcess/SelfTerminatingProcess.dll");
- supervisor.OutputDataReceived += data => _outputHelper.WriteLine2(data);
+ Constants.DotNet,
+ Constants.SelfTerminatingProcessPath);
+ supervisor.OutputDataReceived += _outputHelper.WriteLine2;
var stateIsStopped = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedSuccessfully);
await supervisor.Start();
await stateIsStopped;
@@ -117,9 +117,9 @@ public async Task Can_restart_a_stopped_long_running_process()
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll");
- supervisor.OutputDataReceived += data => _outputHelper.WriteLine2(data);
+ Constants.DotNet,
+ Constants.NonTerminatingProcessPath);
+ supervisor.OutputDataReceived += _outputHelper.WriteLine2;
var exitedKilled = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedKilled);
await supervisor.Start();
await supervisor.Stop();
@@ -135,54 +135,54 @@ public async Task Can_restart_a_stopped_long_running_process()
[Fact]
public async Task When_stop_a_non_terminating_process_without_a_timeout_then_should_exit_killed()
{
- var supervisor = new ProcessSupervisor(
+ using var supervisor = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll");
- supervisor.OutputDataReceived += data => _outputHelper.WriteLine2(data);
+ Constants.DotNet,
+ Constants.NonTerminatingProcessPath);
+ supervisor.OutputDataReceived += _outputHelper.WriteLine2;
var stateIsStopped = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedKilled);
await supervisor.Start();
await supervisor.Stop(); // No timeout so will just kill the process
await stateIsStopped.TimeoutAfter(TimeSpan.FromSeconds(2));
- _outputHelper.WriteLine($"Exit code {supervisor.ProcessInfo.ExitCode}");
+ _outputHelper.WriteLine($"Exit code {supervisor.ProcessInfo!.ExitCode}");
}
[Fact]
public async Task When_stop_a_non_terminating_process_that_does_not_shutdown_within_timeout_then_should_exit_killed()
{
- var supervisor = new ProcessSupervisor(
+ using var supervisor = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll --ignore-shutdown-signal=true");
- supervisor.OutputDataReceived += data => _outputHelper.WriteLine2(data);
+ Constants.DotNet,
+ $"{Constants.NonTerminatingProcessPath} --ignore-shutdown-signal=true");
+ supervisor.OutputDataReceived += _outputHelper.WriteLine2;
var stateIsKilled = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedKilled);
await supervisor.Start();
await supervisor.Stop(TimeSpan.FromSeconds(2));
await stateIsKilled.TimeoutAfter(TimeSpan.FromSeconds(5));
- _outputHelper.WriteLine($"Exit code {supervisor.ProcessInfo.ExitCode}");
+ _outputHelper.WriteLine($"Exit code {supervisor.ProcessInfo!.ExitCode}");
}
[Fact]
public async Task When_stop_a_non_terminating_process_with_non_zero_then_should_exit_error()
{
- var supervisor = new ProcessSupervisor(
+ using var supervisor = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
- "dotnet",
- "./NonTerminatingProcess/NonTerminatingProcess.dll --exit-with-non-zero=true");
- supervisor.OutputDataReceived += data => _outputHelper.WriteLine2(data);
+ Constants.DotNet,
+ $"{Constants.NonTerminatingProcessPath} --exit-with-non-zero=true");
+ supervisor.OutputDataReceived += _outputHelper.WriteLine2;
var stateExitWithError = supervisor.WhenStateIs(ProcessSupervisor.State.ExitedWithError);
await supervisor.Start();
await supervisor.Stop(TimeSpan.FromSeconds(5));
await stateExitWithError.TimeoutAfter(TimeSpan.FromSeconds(5));
- supervisor.ProcessInfo.ExitCode.ShouldNotBe(0);
+ supervisor.ProcessInfo!.ExitCode.ShouldNotBe(0);
_outputHelper.WriteLine($"Exit code {supervisor.ProcessInfo.ExitCode}");
}
@@ -190,7 +190,7 @@ public async Task When_stop_a_non_terminating_process_with_non_zero_then_should_
[Fact]
public async Task Can_attempt_to_restart_a_failed_short_running_process()
{
- var supervisor = new ProcessSupervisor(
+ using var supervisor = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
@@ -209,15 +209,11 @@ public async Task Can_attempt_to_restart_a_failed_short_running_process()
[Fact]
public void WriteDotGraph()
{
- var processController = new ProcessSupervisor(
+ using var processController = new ProcessSupervisor(
_loggerFactory,
ProcessRunType.NonTerminating,
Environment.CurrentDirectory,
"invalid.exe");
_outputHelper.WriteLine(processController.GetDotGraph());
}
-
- public void Dispose()
- {
- }
}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.deps.json b/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.deps.json
deleted file mode 100644
index ca283660..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.deps.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "runtimeTarget": {
- "name": ".NETCoreApp,Version=v3.1",
- "signature": ""
- },
- "compilationOptions": {},
- "targets": {
- ".NETCoreApp,Version=v3.1": {
- "SelfTerminatingProcess/1.0.0": {
- "runtime": {
- "SelfTerminatingProcess.dll": {}
- }
- }
- }
- },
- "libraries": {
- "SelfTerminatingProcess/1.0.0": {
- "type": "project",
- "serviceable": false,
- "sha512": ""
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.dll b/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.dll
deleted file mode 100644
index d2fcddf7..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.dll and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.exe b/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.exe
deleted file mode 100644
index 4e4ae680..00000000
Binary files a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.exe and /dev/null differ
diff --git a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.runtimeconfig.dev.json b/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.runtimeconfig.dev.json
deleted file mode 100644
index 477e698c..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.runtimeconfig.dev.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "runtimeOptions": {
- "additionalProbingPaths": [
- "C:\\Users\\damian\\.dotnet\\store\\|arch|\\|tfm|",
- "C:\\Users\\damian\\.nuget\\packages",
- "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
- ]
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.runtimeconfig.json b/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.runtimeconfig.json
deleted file mode 100644
index bc456d78..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.runtimeconfig.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "runtimeOptions": {
- "tfm": "netcoreapp3.1",
- "framework": {
- "name": "Microsoft.NETCore.App",
- "version": "3.1.0"
- }
- }
-}
\ No newline at end of file
diff --git a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.xml b/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.xml
deleted file mode 100644
index 84b67a7c..00000000
--- a/libs/little-forker/tests/LittleForker.Tests/SelfTerminatingProcess/SelfTerminatingProcess.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
- SelfTerminatingProcess
-
-
-
-