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


  • No labels