This Git repo contains all the functional tests run for various packages and roles in the CentOS build + release process filesystem layout: tests/ : contains all test scripts tests/0_lib/ : contains all the common functions and shared code for the tests all files in that directory are 'sourced' before any of the tests are run, which also means it can only contain bash code ( no subdir allowed ) tests/0_common/ : Contain's tests that are run before any other test, and immediately after the 0_lib/ code is sourced. These should be tests that check system sanity and environment. These tests should also not leave behind any state or content residue that would impact package and role specific tests that are run after tests/p_/ : Each of the p_ directories would contain tests for that specific package. The needs to be - rpm --qf "%{name}\n" for the srpm. All package tests are run on a machine which has a minimal install. Its not possible, at this time, to have a kickstart attached with the package tests. tests/r_ : Each of the r_ directories should contain the tests specific to a role. eg: 'lamp'. The test harness looks at a file called 'package_deps' inside each of the role directories and runs the role tests if any package listed in that file has been changed / built etc. Role tests can be run with specific kickstarts. At the moment each role can have 1 kickstart file. It must be called ks_.cfg and it must be in the tests/r_/ directory notes... - each of the directories are parsed in alphabetical order, so its possible to set some sort of a run order by using _ - if tests are written in any language other than bash, its upto the test to install the required environment ( including python, ruby, perl.. ) - all files named 'readme', or starting with an underscore are ignored by the test harness ( so one can use the _ to host metadata or any config that might be needed for a test. ToDo: - At the moment the tests are not distro / arch specific, we might need a way to clearly mark a test as -only-for-c4- or -only-for-c5- etc ( specially when there are kickstart files involved, there are some non trivial changes in that area moving towards c6 ) - We also need a way to dictate if a role_ should be run on realiron, virtual machine host, virtual machine ( and maybe even the type of virt being used! )