Bash scripting resources

If students elect to write the test script as a Bash script, here are some resources the course staff can share with people who need them.

Handling Infinite Execution

The timeout program, which is a part of GNU coreutils, can force a program to terminate after a specific amount of time. The test script can call timeout with appropriate arguments to determine if execution of a command timed out by inspecting the overall exit status of timeout.

Deciding If Test Input Is “Interesting”

The delta program tells if an input file is “interesting” from the exit status of the test script. The documentation of delta under delta/docs specifies what exit status the test script should generate under different conditions. Below are some articles about using exit status in Bash:

Passing in File Name to the Test Script

The delta program will pass in the path to the input file as the first argument to the test script. The test script, if written in Bash, can get the file name via positional parameter $1. Below are some articles about positional parameters: