Test scripts made while studying UIUC.
To use the autograde feature for ECE 220, simply log into an EWS command line (in person, through FastX, or through SSH) and execute the following command:
bash <(curl -sL https://ece220.autograde.twong.dev)
This repository is a completely student led project, so contributions are always welcome. In general, you should create a new branch to run test code and create a pull request when you are done. If you do not have access to the repository, make a fork of this one and work from there. If you are adding a new test script for a class already a part of this repository, the general process is:
- Create a new branch / fork
- Create a new folder using the naming convention class_assignment
- Write a test script that assumes that the completed assignment is in the same directory as the script
- Create an autograde.json file in the same directory (see below for details)
- Open a pull request and wait patiently
This is a json file that provides metadata to the autograder so it knows how to prepare the deliverable if needed and execute your script. It is recommented that you use a JSON text generator to make these files. This is a good example of what the final JSON should look like. This was generated by http://objgen.com/json , using the following input:
name = MP4
class = ece220
files[] = mp4/mp4.c
commands[] = gcc -Wall -g -std=c99 mp4.c -o mp4, bash test_script.sh {option}
options[0]
display = Random
description = Choose 25 random test cases
option = random
options[1]
display = All
description = Run all possible test cases (takes ~3 mins)
option = all
The working directory is the directory in which autograde.json resides. Here are all the parts of autograde.json:
- name: string that is displayed to the user as an option for what to autograde
- class: case sensitive (all lowercase by convention) name of the class for which the script is written
- files: list of files that need to be copied from the user's repository to the working directory. Warning: do not include a / before the path
- commands: list of commands, in order, that need to be executed from the working directory in order to run the test script.
{option}
Will be replaced with the selected option if options are defined. - options: this part is optional, so if your script has no options you can exclude this. This is a list of option objects. Each option object has:
- display: string that is displayed to the user as the name of the option
- description: string that is displayed to the user as the description of what the option means
- option: string wich which
{option}
is replaced in all commands