Plan Spec (V0.1.0)

Summary#

This document is a reference for the V0.1.0 version of the AG350 Plan. An AG350 Plan is a json file that details how and in what environment a test suite should be run on the AG350 Athena build system. The content of the plan should be located in the test suite repository in the .ag350/plan.json file.

Fields#

version#

Specifies the version of the plan. The only currently supported version of the plan is '0.1.0'.

  • Required: yes
  • Type: string enum; values: ['0.1.0']

image#

Controls the docker image that is used to execute the test suite during the build. A full list of our supported images and their dependencies can be found in our images documentation. The value of this plan entry should correspond to the name of the desired image.

  • Required: yes
  • Type: string

platform#

Specifies the primary language used in the test suite. Platform can take on of the following values:

  1. java
  2. python
  3. verilog
  4. gpp (c/c++)
  • Required: yes
  • Type: string

test#

An array of Test objects (see Tests). This array specifies which tests will be run during each build.

  • Required: yes
  • Type: object[]

Examples#

Java IO Plan#

{
"version": "0.1.0",
"platform": "java",
"image": "ubuntu.16.04_node.8_java.8",
"test": [
{
"type": "JavaIO",
"name": "TestMultiplication",
"options": {
"source": "do_multiplication.java",
"className": "DoMultiplication",
"input": "input.txt",
"expected": "output.txt"
}
}
]
}

Python IO Plan#

{
"version": "0.1.0",
"platform": "python",
"image": "ubuntu.18.04_node.14_python.3.7",
"test": [
{
"type": "PythonIO",
"name": "TestMultiplication",
"options": {
"source": "do_multiplication.py",
"input": "input.txt",
"expected": "output.txt"
}
}
]
}

Python Library Plan#

{
"version": "0.1.0",
"platform": "python",
"image": "ubuntu.18.04_node.14_python.3.7",
"test": [
{
"type": "PythonLibrary",
"name": "TestNegatives",
"options": {
"source": "test_negatives.py"
}
}
]
}

Python Declarative Plan#

{
"version": "0.1.0",
"platform": "python",
"image": "ubuntu.18.04_node.14_python.3.7",
"test": [
{
"name": "GravityTest",
"type": "DeclarativePython",
"options": {
"source": "Gravity",
"method": "falling",
"signature": "(float time, float velo) => float",
"assertions": [
{
"inputs": [
3,
5
],
"output": 59.1
}
]
}
}
]
}