pc2ccs / pc2v9

Version 9 of the PC^2 Programming Contest Control System
Eclipse Public License 2.0
47 stars 23 forks source link

When sample files are used in data set, judge check for judge's files - fails. #673

Open lane55 opened 1 year ago

lane55 commented 1 year ago

Describe the issue:

If no sample files are loaded (automatically) this bug does not occur.

If sample files are loaded (recent #244 change) when loading from yaml, Judge/Admin module cannot find sample data files when judging a run.

Judge will halt because it cannot find the sample/ files

Note must effect change when:

1 - fetching data file name during testing

2 - checking data files on judge startup.

Update Utilities.locateJudgesDataFile to find the datafile in samples/ too

To Reproduce:

Edit samps\contests\mini\config\contest.yaml, comment out line 45 that sets judge-config-path Load mini contest, --load mini start server start contest start judge3

Expected behavior:

Judge should start without error.

Actual behavior:

Judge halts with message The following errors exist: sumit Missing judge file 'sumit-samp-0.in' in c:\test\current\samps\contests\mini\config\sumit\data\secret sumit Missing answer file 'sumit-samp-0.ans' in c:\test\current\samps\contests\mini\config\sumit\data\secret sumit Missing judge file 'sumit-samp-1.in' in c:\test\current\samps\contests\mini\config\sumit\data\secret sumit Missing answer file 'sumit-samp-1.ans' in c:\test\current\samps\contests\mini\config\sumit\data\secret sumit Missing judge file 'sumit-samp-2.in' in c:\test\current\samps\contests\mini\config\sumit\data\secret sumit Missing answer file 'sumit-samp-2.ans' in c:\test\current\samps\contests\mini\config\sumit\data\secret sumit total files missing = 6

Please correct and restart

Environment:

Log Info:

Screenshots:

Additional context:

johnbrvc commented 1 year ago

Another issue related to this is in Utilities.getProblemfullFilenames() for INTERNAL judge data files. If a sample file has the same name as a secret file, the first occurrences of the names will be overwritten in the execute folder by the second occurrence. eg. sample/p001.in, sample/p001.ans and secret/p001.in, secret/p001.ans.