update isolate integrity
This commit is contained in:
@@ -4,11 +4,24 @@ public class OutputCheckerService : IOutputCheckerService
|
||||
{
|
||||
private readonly ILogger<OutputCheckerService> _logger;
|
||||
private readonly CheckerService _checkerService;
|
||||
private readonly CheckerServiceIsolate _checkerServiceIsolate;
|
||||
private readonly bool _useIsolate;
|
||||
|
||||
public OutputCheckerService(ILogger<OutputCheckerService> logger, CheckerService checkerService)
|
||||
public OutputCheckerService(
|
||||
ILogger<OutputCheckerService> logger,
|
||||
CheckerService checkerService,
|
||||
CheckerServiceIsolate checkerServiceIsolate,
|
||||
IConfiguration configuration)
|
||||
{
|
||||
_logger = logger;
|
||||
_checkerService = checkerService;
|
||||
_checkerServiceIsolate = checkerServiceIsolate;
|
||||
_useIsolate = configuration.GetValue<bool>("Isolate:Enabled", false);
|
||||
|
||||
if (_useIsolate)
|
||||
{
|
||||
_logger.LogInformation("Using Isolate sandbox for checker execution");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<bool> CheckOutputAsync(string actualOutput, string expectedOutputPath)
|
||||
@@ -69,13 +82,12 @@ public class OutputCheckerService : IOutputCheckerService
|
||||
// If custom checker is available, use it
|
||||
if (!string.IsNullOrEmpty(checkerPath) && File.Exists(checkerPath))
|
||||
{
|
||||
_logger.LogDebug("Using custom checker: {CheckerPath}", checkerPath);
|
||||
_logger.LogDebug("Using custom checker: {CheckerPath} (Isolate: {UseIsolate})",
|
||||
checkerPath, _useIsolate);
|
||||
|
||||
var checkerResult = await _checkerService.CheckAsync(
|
||||
checkerPath,
|
||||
inputFilePath,
|
||||
actualOutput,
|
||||
expectedOutputPath);
|
||||
var checkerResult = _useIsolate
|
||||
? await _checkerServiceIsolate.CheckAsync(checkerPath, inputFilePath, actualOutput, expectedOutputPath)
|
||||
: await _checkerService.CheckAsync(checkerPath, inputFilePath, actualOutput, expectedOutputPath);
|
||||
|
||||
if (!checkerResult.Accepted)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user