Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var Languages = []Language{ { Id: 1, Name: "Go", Version: "latest", Image: "golang", Cmd: []string{"go", "run", "/main.go"}, TestCmd: []string{"sh", "-c", "go mod init main;go test -json *.go"}, EntryFileName: "main.go", TestFileName: "main_test.go", TestFramework: GoTestFramework, }, { Id: 2, Name: "NodeJS", Version: "latest", Image: "node", Cmd: []string{"node", "main.js"}, TestCmd: []string{"jest", "main.test.js", "-c", "{}", "--json"}, EntryFileName: "main.js", TestFileName: "main.test.js", TestFramework: JestTestFramework, }, { Id: 3, Name: "Python", Version: "latest", Image: "python", Cmd: []string{"python", "main.py"}, EntryFileName: "main.py", }, { Id: 4, Name: "C++", Version: "latest", Image: "cpp", Cmd: []string{"sh", "-c", "g++ -o main main.cpp && ./main"}, EntryFileName: "main.cpp", }, }
Functions ¶
This section is empty.
Types ¶
type ExecutionService ¶
type ExecutionService interface {
ExecuteSubmission(input SubmissionInput) (*SubmissionOutput, error)
}
ExecutionService handles execution of submissions
type SubmissionInput ¶
type SubmissionInput struct {
Token string `json:"token,omitempty"`
SourceCode string `json:"source_code,omitempty"`
LanguageId int `json:"language_id,omitempty"`
AdditionalFiles string `json:"additional_files,omitempty"`
ExpectedOutput string `json:"expected_output,omitempty"`
TestSourceCode string `json:"test_source_code,omitempty"`
StdIn string `json:"std_in,omitempty"`
}
func (SubmissionInput) MarshalBinary ¶
func (s SubmissionInput) MarshalBinary() ([]byte, error)
type SubmissionLanguage ¶
type SubmissionOutput ¶
type SubmissionOutput struct {
Stdout string `json:"stdout,omitempty"`
Stderr string `json:"stderr,omitempty"`
ExitCode int `json:"exit_code,omitempty"`
Token string `json:"token"`
Memory float32 `json:"memory,omitempty"`
Executed bool `json:"executed"`
OutputMatched bool `json:"output_matched"`
Time float32 `json:"time,string,omitempty"`
}
func (SubmissionOutput) MarshalBinary ¶
func (s SubmissionOutput) MarshalBinary() ([]byte, error)
type SubmissionService ¶
type SubmissionService interface {
CreateSubmission(input SubmissionInput) (*SubmissionOutput, error)
GetSubmission(token string) (*SubmissionOutput, error)
}
type TestFramework ¶
type TestFramework string
const ( JestTestFramework TestFramework = "jest" GoTestFramework TestFramework = "gotest" )
type TestParseOutput ¶
type TestService ¶
type TestService interface {
ParseTestOutput(stdout string, framework TestFramework) (*TestParseOutput, error)
}
handles parsing of test framework's json output
type TestSubmissionInput ¶
Click to show internal directories.
Click to hide internal directories.