| This folder contains information and scripts to run a new test configuration for nightly builds |
| and reporting the results to freeDiameter dashboard at: |
| http://www.freediameter.net/CDash/index.php?project=freeDiameter |
| |
| The information gathered here mostly comes from the following pages: |
| http://www.itk.org/Wiki/CMake_Testing_With_CTest |
| http://www.itk.org/Wiki/CMake_Scripting_Of_CTest |
| http://www.itk.org/Wiki/CTest:Buildserver |
| |
| ============= |
| |
| INSTRUCTIONS to setup a new build slave for the freeDiameter buildserver: |
| -- note: the build slave should have cmake version 2.8 at least so that ctest will update the source tree properly. |
| |
| 1) Install all dependencies for freeDiameter as follow: |
| a) Debian / Ubuntu: See the "prereqs.ubuntu" file |
| $ sudo aptitude install `wget http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/prereqs.ubuntu -O - | grep -v -e "^#"` |
| |
| b) FreeBSD: See the "prereqs.freebsd" file |
| - install base system and ports |
| - install freediameter dependencies as follow: |
| # pkg_add -r -v wget |
| # pkg_add -r -v `wget http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/prereqs.freebsd -O - | grep -v -e "^#"` |
| |
| c) OpenSUSE: |
| $ sudo zypper install `wget http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/prereqs.opensuse -O - | grep -v -e "^#"` |
| |
| d) Fedora: |
| $ sudo yum install wget |
| $ sudo yum install `wget http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/prereqs.fedora -O - | grep -v -e "^#"` |
| |
| You may also have issues with SELinux later, an easy workaround is to disable it (until better solution) |
| # setenforce Permissive |
| |
| |
| 2) Create the "test" database for app_acct test (we assume the tests are run as user "test" here) |
| - check INSTALL.FreeBSD file for specific PostgreSQL pre-install instructions. |
| - These are the instructions for Debian/Ubuntu/OpenSUSE, adjust as needed: |
| # su - postgres |
| # createuser --interactive test |
| Shall the new role be a superuser? (y/n) n |
| Shall the new role be allowed to create databases? (y/n) y |
| Shall the new role be allowed to create more new roles? (y/n) n |
| # logout |
| $ whoami |
| test |
| $ createdb test |
| $ psql test |
| psql (8.4.4) |
| Type "help" for help. |
| |
| test=> |
| CREATE TABLE incoming_test ( |
| recorded_on timestamp with time zone NOT NULL, |
| "Accounting-Record-Type" integer, |
| "Session-Id" bytea, |
| "Accounting-Record-Number" integer, |
| "Route-Record1" bytea, |
| "Route-Record2" bytea, |
| "Route-Record3" bytea, |
| "Route-Record4" bytea ); |
| \q |
| |
| |
| 3) Create a directory ~/fDtests |
| $ cd |
| $ mkdir fDtests |
| $ cd fDtests |
| |
| 4) Retrieve the runtests.sh script and save in this directory |
| $ wget http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/runtests.sh |
| $ chmod +x runtests.sh |
| |
| 5) Create a file local.cmake defining the name of the build slave in this directory also. |
| $ echo "SET(CTEST_SITE \""`hostname`"\")" > local.cmake |
| |
| For FreeBSD, in addition do: |
| $ echo "set(CTEST_BUILD_OPTIONS \"\${CTEST_BUILD_OPTIONS} -DFLEX_EXECUTABLE:FILEPATH=/usr/local/bin/flex\")" >> local.cmake |
| |
| 6) Run the runtests.sh script once to check it works properly (freeBSD might require: ln -s /usr/local/bin/bash /bin/bash) |
| |
| 7) Set up a crontab to run the script |
| $ wget http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/cronjob.sh |
| $ chmod +x cronjob.sh |
| $ crontab -l |
| 0 0 * * * /home/test/fDtests/cronjob.sh > /home/test/fDtests/cronjob.log 2>&1 |