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 list of the test
They run tests by doing:
eden test scenario <name of the folder>
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