diff --git a/internal/container/docker/Dockerfile b/internal/container/docker/Dockerfile index 3e6c16c..7b84d07 100644 --- a/internal/container/docker/Dockerfile +++ b/internal/container/docker/Dockerfile @@ -1,6 +1,8 @@ FROM ubuntu:latest -RUN apt update && apt install -y g++ gcc bash perl +RUN apt update && apt install -y g++ gcc bash perl RUN DEBIAN_FRONTEND=noninteractive apt install -y openjdk-8-jdk +RUN curl https://sh.rustup.rs -sSf | bash -s -- -y +RUN echo 'source $HOME/.cargo/env' >> $HOME/.bashrc WORKDIR /tests COPY . /tests RUN apt install -y --install-recommends ./benchexec_*.deb diff --git a/test/rust_test.go b/test/rust_test.go new file mode 100644 index 0000000..a9a443b --- /dev/null +++ b/test/rust_test.go @@ -0,0 +1,45 @@ +package tests + +import ( + "io/ioutil" + "log" + "testing" + + "github.com/codeiiest/test-runner/runner/run" + "github.com/codeiiest/test-runner/test/utils" +) + +func TestRust(t *testing.T) { + t.Helper() + t.Run("Rust test with all ACCEPTED", func(t *testing.T) { + testDat, _ := ioutil.ReadFile("testdata/rust/main.rs") + testIn := []string{""} + testOut := []string{"x x y: 12"} + var testCases int = 1 + var testTimeLimit int = 1 + var testMemoryLimit int64 = 500 * 1024 * 1024 + got := run.Evaluate(string(testDat), "rust", "main.rs", testIn, testOut, testCases, testTimeLimit, testMemoryLimit) + log.Print(got, "\n", got.Status, got.Message, got.Error, got.Result) + wantStatus := "OK" + wantMessage := "" + wantError := []string{""} + wantResult := []string{"ACCEPTED"} + utils.CompareUtils(got, wantStatus, wantMessage, wantError, wantResult, t) + }) + + t.Run("Rust test with 1 WRONG ANSWER", func(t *testing.T) { + testDat, _ := ioutil.ReadFile("testdata/rust/main.rs") + testIn := []string{""} + testOut := []string{"-1"} + var testCases int = 1 + var testTimeLimit int = 1 + var testMemoryLimit int64 = 500 * 1024 * 1024 + got := run.Evaluate(string(testDat), "rust", "main.rs", testIn, testOut, testCases, testTimeLimit, testMemoryLimit) + log.Print(got, "\n", got.Status, got.Message, got.Error, got.Result) + wantStatus := "OK" + wantMessage := "" + wantError := []string{"", "", ""} + wantResult := []string{"WRONG ANSWER"} + utils.CompareUtils(got, wantStatus, wantMessage, wantError, wantResult, t) + }) +} diff --git a/test/testdata/rust/main.rs b/test/testdata/rust/main.rs new file mode 100644 index 0000000..a233686 --- /dev/null +++ b/test/testdata/rust/main.rs @@ -0,0 +1,5 @@ +fn main() { + let x: i32 = 4; + let y: i32 = 3; + println!("x x y: {}", x * y); +}