diff --git a/tests/p_freeradius/0-install_freeradius.sh b/tests/p_freeradius/0-install_freeradius.sh index 3de1347..39103ed 100755 --- a/tests/p_freeradius/0-install_freeradius.sh +++ b/tests/p_freeradius/0-install_freeradius.sh @@ -2,10 +2,34 @@ # Author: Christoph Galuschka # Install freeradius -t_InstallPackage freeradius +# On C5 both freeradius and freeradius2 are provided, however only freeradius2-utils are provided as well +# so we will install freeradius2 on C5 and freeradius (being freeradius2) on C6 +if (t_GetPkgRel basesystem | grep -q el6) +then + #Install Freeradius (V2) + t_InstallPackage freeradius +else + #Install Freeradius2 + t_InstallPackage freeradius2 +fi # activate at boot chkconfig radiusd on # start daemon with default settings -t_ServiceControl radiusd start +if (t_GetPkgRel basesystem | grep -q el6) +then + t_ServiceControl radiusd start +else + # C5 has an eap-setting in radiusd.conf and 3 "sites-available" which prevent successfull start (probably missing some dep) + # as the basic test works without these, the eap setting 2 sites-available will be removed for the test and later restored + sed -i 's/.*INCLUDE\ eap\.conf/# INCLUDE eap.conf/g' /etc/raddb/radiusd.conf + rm -rf /etc/raddb/sites-enabled/control-socket + rm -rf /etc/raddb/sites-enabled/inner-tunnel + # /etc/raddb/sites-configured will be changed to remove all traces of eap + /bin/cp -a /etc/raddb/sites-available/default /etc/raddb/sites-available/default.orig + head -n 138 /etc/raddb/sites-available/default.orig | grep -v eap > /etc/raddb/sites-available/default + tail -n 416 /etc/raddb/sites-available/default.orig | grep -v eap >> /etc/raddb/sites-available/default + sed -i 's/.*ok\ \=\ return/# ok = return/g' /etc/raddb/sites-available/default + t_ServiceControl radiusd start +fi diff --git a/tests/p_freeradius/radiusd_test.sh b/tests/p_freeradius/radiusd_test.sh index cbaff57..c810b2d 100755 --- a/tests/p_freeradius/radiusd_test.sh +++ b/tests/p_freeradius/radiusd_test.sh @@ -4,10 +4,13 @@ t_Log "Running $0 - freeradius-access test" -t_InstallPackage freeradius-utils - if (t_GetPkgRel basesystem | grep -q el6) -then + then + t_InstallPackage freeradius-utils +else + t_InstallPackage freeradius2-utils +fi + # Make Backup of /etc/raddb/users and add testuser steve /bin/cp /etc/raddb/users /etc/raddb/users.orig echo 'steve Cleartext-Password := "centos"' >> /etc/raddb/users @@ -16,17 +19,30 @@ then # Restart Service service radiusd restart - #Run test + #Run test, treat C6 and C5 differently + +if (t_GetPkgRel basesystem | grep -q el6) + then + t_Log "Running C6-Test" WORKING=$(radtest -d /etc/raddb -x steve centos 127.0.0.1:1812 1 testing123 |grep -c 'Access-Accept') if [ $WORKING == 1 ]; then ret_val=0 ; fi - +else + t_Log "Running C5-Test" + WORKING=$(radtest steve centos 127.0.0.1:1812 1 testing123 |grep -c 'Access-Accept') + if [ $WORKING == 1 ]; then ret_val=0 ; fi +fi # Restore settings /bin/cp /etc/raddb/users.orig /etc/raddb/users -service radiusd restart - - t_CheckExitStatus $ret_val -else - # TODO: fix the test on C5 - t_Log "Test skipped on CentOS 5" - t_CheckExitStatus 0 + rm -rf /etc/raddb/users.orig + service radiusd restart +if (t_GetPkgRel basesystem | grep -q el5) + then + sed -i 's/#\ INCLUDE\ eap\.conf/\ \ INCLUDE eap.conf/g' /etc/raddb/radiusd.conf + ln -s /etc/raddb/sites-available/control-socket /etc/raddb/sites-enabled/ + ln -s /etc/raddb/sites-available/inner-tunnel /etc/raddb/sites-enabled/ + /bin/cp -a /etc/raddb/sites-available/default.orig /etc/raddb/sites-available/default + rm -rf /etc/raddb/sites-available/default.orig + service radiusd stop fi + +t_CheckExitStatus $ret_val