dodona-edu / universal-judge

Universal judge for educational software testing
https://docs.dodona.be/en/tested
MIT License
9 stars 4 forks source link

Closing newline insertion #486

Closed pdawyndt closed 6 months ago

pdawyndt commented 6 months ago

I'm reopening the discussion on the closing newline issue, as the current behaviour of TESTed has confused many students as seen from their reactions in the Q&A module.

Student identify the closing newline issue (expected stdout/stderr is rendered by Dodona without a closing newline if no such newline is explicitly specified in the test suite, whereas the actual ouput of their submission is rendered with a closing newline) as one of the reasons why their submission fails (while this is not the issue as TESTed strips newlines before comparison).

Even worse, it has triggered student into deliberately stripping/suppressing the closing newline in their submissions, which is definitely not the learning behavior we want achieve. On the contrary, the closing newline is the de facto standard, that students should follow as much as possible.

Therefore I would like to propose (again) that TESTed inserts closing newlines for expected string results channeled to stdout/stderr, in case such a closing newline is missing. This way, the test suite is not cluttered with these explicit newline (it is also missing in YAML multiline strings syntax with vertical bar (|) without inserting empty lines), while we still follow the de facto standard, and must suppress closing newline insertion with an explicit parameter setting (which is usually not needed). As such, the case that is needed most often, is also the default case.

niknetniko commented 6 months ago

This is a duplicate of #462, so I will close this issue.