Great tip, thanks Juan Carlos!
I'm interested only in evaluation, so I tried to create a custom vpl_evaluate.sh script in Python (attached). Although I used correct shebang line, the system still tried to execute it as a bash script. Is it a bug or feature?
Anyway, I got around this by adding my testing script as separate file and executed it via vpl_evaluate.sh. But I still have trouble getting the evaluation output right. According to VPL inline help, it should interpret text following "Grade :=>>" as proposed grade. But when I'm evaluating, I see all the output from my script as simple text in a box titled "Compilation". Have I misunderstood something?
I also noticed a confusing thing (bug?):1) Initially I misunderstood the difference between "execution files" and "requested files". I added my tester script via requested files and as a student I uploaded only the solution file. The system gave me confusing error message about "incorrect file name". Actually the first file was left empty (I assumed it will be filled by predefined file content), but second file had correct name.
I'm starting to like VPL more and more! (But the road to the enlightenment has been quite rocky )
PS. Initially I thought that vpl_run.sh is used when student presses "Run" button and vpl_evaluate.sh is used when student presses "Evaluate" button. Looks like it's not so simple though. Later I noticed that documentation actually explains this, but maybe it's worth pointing this out more directly.