The tests are divided into several layers.
Layer 1 - for developers that wanna run tests.
Test for them is a folder where they define:
1) eden-config.conf - which will replace any value for the individual test config. They may NOT provide this file, so tests will use local config generated from eden-config.tmpl
2)scenario.txt (which is a test scenario)
inside scenario.sh they define something like
tests.reboot
tests.onboard
the list is pure relative path of the test folders based on <EDEN_ROOT>. E.g. test.reboot means we need to look for binary in <EDEN_ROOT>/tests/reboot
Also they may define something more complex in the text script. The core thing is that they may stick to very simple listing
They run tests by doing:
eden test scenario <scenario file>
like
eden test scenario ./tests/scenario.txt
Layer 2- for developers that wanna develop tests.
Test for them is a folder where they define:
1) eden-config.tmpl - which has the local config for the test including patterns.
2) <foldername>.go - which has the method TestMain which is used for the test. There is only one method TestMain and it is only in the file <foldername>.go
3) They may have some other go files, for example for customAssertFunction but it's not required to have them
First they build the binary by calling
eden test build <path of the folder>
This calls make utility and places the binary in the same folder.
Then they run the test by calling
eden test run <path of the folder>
Layer 3- for developers that wanna develop something special.
They need to have the main method TestMain and the binary <foldername> in the folder. They may have a special make file and whatever else they want. They build the test any way they want