Bruce, the current version of the the test runner does not detect that a solution skips tests. This is the problem. Use of “stop run” or “goback” has very little to do with it.
As I have already explained, this mechanical problem can be easily fixed by modifying the test runner slightly. The test runner only needs to examine existence of the four-line test report at the end of the output from the executed solution.
My understanding is that you’re saying we can patch the test runner to fail if any tests are skipped. That seems sensible to me.
Could you PR this please so we can understand the solution. Then we can be talking in specifics. Right now, I think everyone’s a little lost in conceptual ideas. Code helps firm things up.
I have just submitted the PR I promised to work on. Please find it at PR. Here is a summary of the PR.
The revised version of bin/run.sh examines if the last four lines of the output from the test program show the summary of the test results. Because absence of the summary implies that the program prematurely teminated skipping some or all tests, bin/run.sh fails the solution.
To verify that the modified test runner behaves in the intended way, one example case “example-premature-termination” has been added to the tests directory.
The docker build command seems to fail without a “–netowrk host” flag. The flag has been added to the docker build command in bin/run-in-docker.sh and bin/run-tests-in-docker.sh.
@borderite Thanks for taking this forward! Your editor seems to produce backups of the files edited (*~), which are part of your PR. You should remove them and commit the deletion, then add *~ to .gitignore and commit that. Changing .gitignore first makes it impossible to delete the files from the repository!
@kotp I see your point and will remove *~ from the track’s .gitignore. I don’t have *~ in my global .gitignore, because I sometimes want to keep the backup files in my github repositories.
You can ignore your “user choice” things in general and when you change your mind for that specific situation, you can force track them (one time work) to keep them tracked for that/those specific repositories.
I do this commonly for docs/ directories, while some repositories use that directory to generate and store their documents, others expect them to be generated on install or locally, or perhaps never. By default, I know I do not want them (tracked), but always defer to the project choice, and that is how I manage that.
Could you split out any unrelated changes into a separate PR please? Else we’ll end up having a million discussions to get anything moving forward. If we could have something that just has your new test case, and whatever code is essential to make that test case pass, that would be ideal.
We’ll then be grateful for any follow on PRs that help improve things.
That is exactly what I intended to do. My PR only contains minimal changes to attain the simple goal I described. I have not incorporated any changes suggested by people, unless they were directly related to the PR. Do you have something else in mind?
you are absolutely right. I think the idea was fine and I have taken many such approaches in the past until I or someone else had the time and energy to fix it.
In this case Borderite had the time and energy! I have just checked the PR myself and the idea is sound, which will still allow people to use the jumping / goback.
KOTP isn’t a Cobol track maintainer. Typically PRs on maintained tracks are merged by a track maintainer. If you want to approve the PR via the forum and have someone else click merge, that can be done.
Review required
Code owner review required by reviewers with write access.
All checks have passed
1 successful check
Merging is blocked
Waiting on code owner review from exercism/guardians.