using System;
using System.Collections.Generic;
using Cosmos.Build.Common;
namespace Cosmos.TestRunner.Core
{
public interface IEngineConfiguration
{
///
/// Sets the time before an error is registered. For example if set to 60 then if a kernel runs for more than
/// 60 seconds then that kernel will be marked as a failure and terminated.
///
int AllowedSecondsInKernel { get; }
///
/// An enumerable of platforms to test.
///
IEnumerable RunTargets { get; }
bool RunWithGDB { get; }
bool StartBochsDebugGUI { get; }
///
/// If you're working on the compiler (or other lower parts), you can choose to run the compiler in process
/// one thing to keep in mind though, is that this only works with 1 kernel at a time!
///
bool DebugIL2CPU { get; }
string KernelPkg { get; }
TraceAssemblies TraceAssembliesLevel { get; }
bool EnableStackCorruptionChecks { get; }
StackCorruptionDetectionLevel StackCorruptionDetectionLevel { get; }
///
/// An enumerable of kernel assemblies which will be run.
///
IEnumerable KernelAssembliesToRun { get; }
}
}