From 2d59576e78992f01fdb9650a72845c8bf87af8e0 Mon Sep 17 00:00:00 2001 From: Alex Forsythe Date: Thu, 4 Jan 2024 12:29:02 -0800 Subject: [PATCH] add readme --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..71578b7 --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +Proof of concept CTL unit tests and CI System +-- + +This is intended to be a framework for unit testing ACES CTL code. + +### Organization + +This repo contains the following directories + +`lib` - is a skeleton intended to contain code we've written and want to unit test + +`tests` - contains unit testing code + +`.github/workflows` - contains the code for the github action that performs the testing on push or PR to the repo + +### Test structure + +The `tests` directory contains a series of files with unit tests for function in correspond CTL files. For example, `ACEStests.ACESlib.Utilities.ctl` contains unit tests for code in `ACESlib.Utilities.ctl`. + +The unit test files import the primary CTL being tested (e.g. `ACESlib.Utilities.ctl`) and `ACEStests.Common.ctl`. + +`ACEStests.Common.ctl` contains functions to enable testing such as functions to compare the actual result of a CTL function to the expected result. + +`ACEStests.Execute.Tests` imports each file with the unit tests (e.g. `ACEStests.ACESlib.Utilities.ctl`) and then runs each test from the `main` function. + +The testing is executed using `ctlrender` (this is a bit of a hack) by performing `ctlrender -ctl ACEStests.Execute.Tests.ctl /tmp/input.tif /tmp/output.tif` on the github runner. The results are piped into a file and the file is inspected to see if the word `FAILED` exists anywhere inside. + +If `FAILED` does not occur, then the action contines and will likely succeed. If `FAILED` does occur, the action fails and the user is alerted the PR or commit fails the unit testing. + +