mirror of
https://github.com/Smaug123/WoofWare.PawPrint
synced 2025-10-14 01:58:41 +00:00
Add infra for Monitor.ReliableEnter (#21)
This commit is contained in:
@@ -21,7 +21,7 @@ module TestBasicLock =
|
||||
let dotnetRuntimes =
|
||||
DotnetRuntime.SelectForDll assy.Location |> ImmutableArray.CreateRange
|
||||
|
||||
let impls = NativeImpls.Mock ()
|
||||
let impls = MockEnv.make ()
|
||||
|
||||
use peImage = new MemoryStream (image)
|
||||
|
||||
|
@@ -18,17 +18,22 @@ module TestCases =
|
||||
{
|
||||
FileName = "BasicException.cs"
|
||||
ExpectedReturnCode = 10
|
||||
NativeImpls = NativeImpls.Mock ()
|
||||
NativeImpls = MockEnv.make ()
|
||||
}
|
||||
{
|
||||
FileName = "BasicLock.cs"
|
||||
ExpectedReturnCode = 10
|
||||
NativeImpls = NativeImpls.Mock ()
|
||||
NativeImpls =
|
||||
let mock = MockEnv.make ()
|
||||
|
||||
{ mock with
|
||||
System_Threading_Monitor = System_Threading_Monitor.passThru
|
||||
}
|
||||
}
|
||||
{
|
||||
FileName = "WriteLine.cs"
|
||||
ExpectedReturnCode = 1
|
||||
NativeImpls = NativeImpls.Mock ()
|
||||
NativeImpls = MockEnv.make ()
|
||||
}
|
||||
]
|
||||
|
||||
@@ -37,21 +42,21 @@ module TestCases =
|
||||
{
|
||||
FileName = "NoOp.cs"
|
||||
ExpectedReturnCode = 1
|
||||
NativeImpls = NativeImpls.Mock ()
|
||||
NativeImpls = MockEnv.make ()
|
||||
}
|
||||
{
|
||||
FileName = "TriangleNumber.cs"
|
||||
ExpectedReturnCode = 10
|
||||
NativeImpls = NativeImpls.Mock ()
|
||||
NativeImpls = MockEnv.make ()
|
||||
}
|
||||
{
|
||||
FileName = "InstaQuit.cs"
|
||||
ExpectedReturnCode = 1
|
||||
NativeImpls =
|
||||
let mock = NativeImpls.Mock ()
|
||||
let mock = MockEnv.make ()
|
||||
|
||||
{ mock with
|
||||
System_Env =
|
||||
System_Environment =
|
||||
{ System_EnvironmentMock.Empty with
|
||||
GetProcessorCount =
|
||||
fun thread state ->
|
||||
@@ -109,13 +114,11 @@ module TestCases =
|
||||
let dotnetRuntimes =
|
||||
DotnetRuntime.SelectForDll assy.Location |> ImmutableArray.CreateRange
|
||||
|
||||
let impls = NativeImpls.Mock ()
|
||||
|
||||
use peImage = new MemoryStream (image)
|
||||
|
||||
try
|
||||
let terminalState, terminatingThread =
|
||||
Program.run loggerFactory (Some case.FileName) peImage dotnetRuntimes impls []
|
||||
Program.run loggerFactory (Some case.FileName) peImage dotnetRuntimes case.NativeImpls []
|
||||
|
||||
let exitCode =
|
||||
match terminalState.ThreadState.[terminatingThread].MethodState.EvaluationStack.Values with
|
||||
|
@@ -17,17 +17,12 @@ type RunResult =
|
||||
FinalState : IlMachineState
|
||||
}
|
||||
|
||||
type NativeImpls =
|
||||
{
|
||||
System_Env : ISystem_Environment
|
||||
}
|
||||
|
||||
interface ISystem_Environment_Env with
|
||||
member this.System_Environment = this.System_Env
|
||||
|
||||
static member Mock () =
|
||||
[<RequireQualifiedAccess>]
|
||||
module MockEnv =
|
||||
let make () : NativeImpls =
|
||||
{
|
||||
System_Env = System_EnvironmentMock.Empty
|
||||
System_Environment = System_EnvironmentMock.Empty
|
||||
System_Threading_Monitor = System_Threading_MonitorMock.Empty
|
||||
}
|
||||
|
||||
type TestCase =
|
||||
|
@@ -22,7 +22,7 @@ module TestHelloWorld =
|
||||
let dotnetRuntimes =
|
||||
DotnetRuntime.SelectForDll assy.Location |> ImmutableArray.CreateRange
|
||||
|
||||
let impls = NativeImpls.Mock ()
|
||||
let impls = MockEnv.make ()
|
||||
|
||||
try
|
||||
use peImage = new MemoryStream (image)
|
||||
|
Reference in New Issue
Block a user