As far as I understand the current behavior of VPL is that if the submission contains a file with the same name as an execution file (a file added by a teacher under 'Execution files'), then VPL will ignore the file in the submission and always use the execution file.
This behavior is safe, in that it prevents students from replacing test files and thus breaking the testing system, but it generally leads to a few unexpected behaviors that can result in strange and hard to debug problems:
Part of the student's submission is ignored for no apparent reason (from the student's point of view).
If anything uses VPL_SUBFILES or other related environment variables to automatically process student submitted files, then that processing will now unknowingly include some execution files that had the same name as student submitted files.
Because of these issues I propose that a better behavior would be this:
If an attempt is made to evaluate a submission that includes files with the same names as files under execution files, then VPL will return an error explaining what happened to the user and refuse to evaluate the submission. This would elliminate all the aforementioned problematic behaviors.
Another way could be to place submission files into a specific directory, say (vpl_)submission instead of the user home for both execution files and student files.
As far as I understand the current behavior of VPL is that if the submission contains a file with the same name as an execution file (a file added by a teacher under 'Execution files'), then VPL will ignore the file in the submission and always use the execution file.
This behavior is safe, in that it prevents students from replacing test files and thus breaking the testing system, but it generally leads to a few unexpected behaviors that can result in strange and hard to debug problems:
Because of these issues I propose that a better behavior would be this: If an attempt is made to evaluate a submission that includes files with the same names as files under execution files, then VPL will return an error explaining what happened to the user and refuse to evaluate the submission. This would elliminate all the aforementioned problematic behaviors.