From 83813224710df16c7829b68d12d08b5348bc8fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kruli=C5=A1?= Date: Sat, 25 Oct 2025 18:04:50 +0200 Subject: [PATCH 1/2] Fixing a bug (trailing lines got omitted). --- judges/recodex_token_judge/judge.hpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/judges/recodex_token_judge/judge.hpp b/judges/recodex_token_judge/judge.hpp index 1c6a3135..59efa292 100644 --- a/judges/recodex_token_judge/judge.hpp +++ b/judges/recodex_token_judge/judge.hpp @@ -355,6 +355,13 @@ template class Judge { // Check correct file remains ... bool reportedAny = false; + + for (auto &&it : mCorrectLinesBuffer) { + logImpairedCorrectLine(*it.get()); + reportedAny = true; + } + mCorrectLinesBuffer.clear(); + while (!mCorrectReader.eof() && !bpp::log().isFull(bpp::LogSeverity::ERROR)) { readNextCorrectLine(); if (mCorrectLine) { @@ -374,6 +381,13 @@ template class Judge { // Check result file remains ... bool reportedAny = false; + + for (auto &&it : mResultLinesBuffer) { + logImpairedResultLine(*it.get()); + reportedAny = true; + } + mResultLinesBuffer.clear(); + while (!mResultReader.eof() && !bpp::log().isFull(bpp::LogSeverity::ERROR)) { readNextResultLine(); if (mResultLine) { From f93e50b88ccbf064eccc75d7fc60631956606a70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Kruli=C5=A1?= Date: Sat, 25 Oct 2025 18:16:03 +0200 Subject: [PATCH 2/2] Adding tests that cover last bug fix. --- .../tests/150-trailing-lines.bats | 15 +++++++++++++++ judges/recodex_token_judge/tests/150.correct.in | 5 +++++ judges/recodex_token_judge/tests/150.error.out1 | 5 +++++ judges/recodex_token_judge/tests/150.error.out2 | 5 +++++ judges/recodex_token_judge/tests/150.result.in | 3 +++ 5 files changed, 33 insertions(+) create mode 100644 judges/recodex_token_judge/tests/150-trailing-lines.bats create mode 100644 judges/recodex_token_judge/tests/150.correct.in create mode 100644 judges/recodex_token_judge/tests/150.error.out1 create mode 100644 judges/recodex_token_judge/tests/150.error.out2 create mode 100644 judges/recodex_token_judge/tests/150.result.in diff --git a/judges/recodex_token_judge/tests/150-trailing-lines.bats b/judges/recodex_token_judge/tests/150-trailing-lines.bats new file mode 100644 index 00000000..14369bee --- /dev/null +++ b/judges/recodex_token_judge/tests/150-trailing-lines.bats @@ -0,0 +1,15 @@ +#!/usr/bin/env bats + +load bats-shared + +@test "correct file trailing lines" { + run $EXE_FILE $CORRECT_FILE $RESULT_FILE + [ "$status" -eq 1 ] + echo "$output" | diff -abB - "${ERROR_FILE}1" +} + +@test "result file trailing lines" { + run $EXE_FILE $RESULT_FILE $CORRECT_FILE + [ "$status" -eq 1 ] + echo "$output" | diff -abB - "${ERROR_FILE}2" +} diff --git a/judges/recodex_token_judge/tests/150.correct.in b/judges/recodex_token_judge/tests/150.correct.in new file mode 100644 index 00000000..8f79cff8 --- /dev/null +++ b/judges/recodex_token_judge/tests/150.correct.in @@ -0,0 +1,5 @@ +Lorem ipsum dolor sit amet consectetuer porta eu nulla eu Nullam. +Vivamus Nulla elit justo lacinia Nulla ornare volutpat mauris elit fringilla. +Quis nisl montes tortor justo sagittis ac ligula urna porttitor egestas. +Porttitor est at ut Cras odio nulla pretium consectetuer nec gravida. +Donec odio nibh non velit Quisque hendrerit urna. diff --git a/judges/recodex_token_judge/tests/150.error.out1 b/judges/recodex_token_judge/tests/150.error.out1 new file mode 100644 index 00000000..27982ff5 --- /dev/null +++ b/judges/recodex_token_judge/tests/150.error.out1 @@ -0,0 +1,5 @@ +0 +-2: Vivamus Nulla elit justo lacinia Nulla ornare volutpat mauris elit fringilla. ++2: Something else. +-4: Porttitor est at ut Cras odio nulla pretium consectetuer nec gravida. +-5: Donec odio nibh non velit Quisque hendrerit urna. diff --git a/judges/recodex_token_judge/tests/150.error.out2 b/judges/recodex_token_judge/tests/150.error.out2 new file mode 100644 index 00000000..532383aa --- /dev/null +++ b/judges/recodex_token_judge/tests/150.error.out2 @@ -0,0 +1,5 @@ +0 +-2: Something else. ++2: Vivamus Nulla elit justo lacinia Nulla ornare volutpat mauris elit fringilla. ++4: Porttitor est at ut Cras odio nulla pretium consectetuer nec gravida. ++5: Donec odio nibh non velit Quisque hendrerit urna. diff --git a/judges/recodex_token_judge/tests/150.result.in b/judges/recodex_token_judge/tests/150.result.in new file mode 100644 index 00000000..6dfdc69f --- /dev/null +++ b/judges/recodex_token_judge/tests/150.result.in @@ -0,0 +1,3 @@ +Lorem ipsum dolor sit amet consectetuer porta eu nulla eu Nullam. +Something else. +Quis nisl montes tortor justo sagittis ac ligula urna porttitor egestas.