Execution Strategies - SoftUni-Internal/OpenJudgeSystem GitHub Wiki
Execution strategy in the context of Judge is a class that manages the way a submitted user code will be processed. Depending of the submission type, it sets the execution path a submission will follow, until it returns an execution result, from which the points will be calculated. For every different submission type, from simple block of C#, Java, JavaScript or other language code, to entire solution, database query or plain HTML and CSS, different execution strategy will be in charge of the way a submission is handled by the system.
When a lecturer or admin creates a Problem he has to add a bunch of information for the specific problem, which information will be later used to create the "Execution context". The execution context contains information like the tests(input data, expected output, unit tests), memory limit, time limit, the submission type etc. When a user submits it's code or file, depending of the Submission Type, an Execution strategy of type IExecutionStrategy
will be created and the submission will be handled by the concrete implementation of this interface by executing the user code under some restrictions and comparing the result to the tests or running the tests against this result, taking in concern the limitations provided from the Execution Context.
-
CompileExecuteAndCheckExecutionStrategy
C# code, C# project/solution | compiled by: MSBuild, executed by: MSBuild -
DotNetCoreCompileExecuteAndCheckExecutionStrategy
C# .NET Core code | compiled by: dotnet CLI, executed by: dotnet CLI -
DotNetCoreProjectExecutionStrategy
.NET Core Project | compiled by: dotnet CLI, executed by: dotnet CLI -
CPlusPlusCompileExecuteAndCheckExecutionStrategy
C++ code | compiled by: g++, executed by: g++ -
CPlusPlusZipFileExecutionStrategy
C++ Zip File | compiled by: g++, executed by: g++ -
JavaPreprocessCompileExecuteAndCheck
Java code | compiled by: javac, executed by: java.exe -
JavaZipFileCompileExecuteAndCheck
Java zip file | compiled by: javac, executed by: java.exe -
NodeJsPreprocessExecuteAndCheck
JavaScript code (NodeJS) | compiled by: , executed by: Node.js ...Dependencies
-
PythonExecuteAndCheck
Python code | compiled by: , executed by: Python.exe -
PhpCliExecuteAndCheck
PHP code (CLI) | compiled by: , executed by: PHP CLI -
PhpCgiExecuteAndCheck
PHP code (CGI) | compiled by: , executed by: PHP CGI -
PhpProjectExecutionStrategy
PHP Project | compiled by: , executed by: PHP CLI -
RubyExecutionStrategy
Ruby Code | compiled by: , executed by: Ruby.exe
-
NodeJsPreprocessExecuteAndRunJsDomUnitTests
JavaScript code (DOM unit tests) | compiled by: , executed by: Node.js ...Dependencies
-
NodeJsExecuteAndRunAsyncJsDomTestsWithReactExecutionStrategy
JavaScript code (Async DOM unit tests with React) | compiled by: , executed by: Node.js ...Dependencies
-
NodeJsPreprocessExecuteAndRunUnitTestsWithMocha
JavaScript code (Mocha unit tests) | compiled by: , executed by: Node.js ...Dependencies
-
CSharpProjectTestsExecutionStrategy
C# Project Tests | compiled by: MSBuild, executed by: MSBuild -
CSharpAspProjectTestsExecutionStrategy
C# ASP Project Tests | compiled by: MSBuild, executed by: MSBuild -
CSharpPerformanceProjectTestsExecutionStrategy
C# Performance Project Tests | compiled by: MSBuild, executed by: MSBuild -
DotNetCoreProjectTestsExecutionStrategy
.NET Core Project Tests | compiled by: dotnet CLI, executed by: dotnet CLI -
JavaProjectTestsExecutionStrategy
Java Project Tests | compiled by: javac, executed by: java.exe -
JavaSpringAndHibernateProjectExecutionStrategy
Java Project (Spring + Hibernate) | compiled by: Maven, executed by: Maven -
NodeJsZipPreprocessExecuteAndRunUnitTestsWithDomAndMocha
JavaScript Zip File (DOM, Mocha and Module Transpiling) | compiled by: , executed by: Node.js ...Dependencies
Strategies that compile and execute unit tests from submitted binary solution against a predefined code
-
CSharpUnitTestsExecutionStrategy
C# Unit Tests | compiled by: NUnit-Console, tests executed by: NUnit -
JavaUnitTestsExecutionStrategy
Java Unit Tests | compiled by: javac, tests executed by: JUnit -
NodeJsPreprocessExecuteAndRunCodeAgainstUnitTestsWithMochaExecutionStrategy
JavaScript code (Unit Tests with Sinon and Mocha) compiled by: , tests executed by: Sinon, Mocha
-
NodeJsZipExecuteHtmlAndCssStrategy
HTML and CSS Zip File (DOM and Mocha) | compiled by: , executed by: Node.js -
DotNetCoreTestRunner
.NET Core Test Runner | compiled by: MSBuild, executed by: MSBuild -
PhpProjectWithDbExecutionStrategy
PHP Project with DB | compiled by: , executed by: PHP CLI
SQL Strategies that prepare database from test input query, run a submitted query on this database and check result against a predefined output
-
SqlServerLocalDbPrepareDatabaseAndRunQueriesExecutionStrategy
SQL Server prepare DB & run queries -
MySqlPrepareDatabaseAndRunQueriesExecutionStrategy
MySQL prepare DB & run queries
SQL Strategies that prepare database from submitted skeleton or query, run a predefined query on this database and check result against a predefined output
-
SqlServerLocalDbRunQueriesAndCheckDatabaseExecutionStrategy
SQL Server run queries & check DB -
SqlServerLocalDbRunSkeletonRunQueriesAndCheckDatabaseExecutionStrategy
SQL Server run skeleton, run queries & check DB -
MySqlRunQueriesAndCheckDatabaseExecutionStrategy
MySQL run queries & check DB -
MySqlRunSkeletonRunQueriesAndCheckDatabaseExecutionStrategy
MySQL run skeleton, run queries & check DB