VirtualBox

Ignore:
Timestamp:
Dec 9, 2012 10:16:25 PM (12 years ago)
Author:
vboxsync
Message:

Installer/linux: clean-ups and improved enable, disable and remove options to the init script creator.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Installer/linux/testcase/tstInstallInit.sh

    r44049 r44070  
    1919
    2020tab="   "
    21 tmpbase="/tmp/tstInstallInit99"
     21tmpbase="/tmp/tstInstallInit 99"  # Space in the name for a little stress...
    2222
    2323## The function definition at the start of every non-trivial shell script!
     
    9292esac
    9393
    94 # Test an init script installation
     94# Create a simulated init system layout.
     95create_simulated_init_tree()
     96{
     97    tmpdir="${1}"
     98    rm -rf "${tmpdir}"
     99    mkdir -m 0700 "${tmpdir}" || abort "Failed to create a temporary folder."
     100    mkdir -p "${tmpdir}/init.d/" "${tmpdir}/rc.d/init.d/"
     101    for i in 0 1 2 3 4 5 6; do
     102        mkdir "${tmpdir}/rc${i}.d/" "${tmpdir}/rc.d/rc${i}.d/"
     103    done
     104    mkdir "${tmpdir}/run"
     105}
     106
     107# Test an init script installation.
    95108print_line "installing an init script."
    96109failed=""
    97110# Create a simulated init system layout.
    98111tmpdir="${tmpbase}0"
    99 rm -rf "${tmpdir}"
    100 mkdir -m 0700 "${tmpdir}" || abort "Failed to create a temporary folder."
    101 mkdir -p "${tmpdir}/init.d/" "${tmpdir}/rc.d/init.d/"
    102 for i in 0 1 2 3 4 5 6; do
    103     mkdir "${tmpdir}/rc${i}.d/" "${tmpdir}/rc.d/rc${i}.d/"
    104 done
    105 mkdir "${tmpdir}/run"
     112create_simulated_init_tree "${tmpdir}"
    106113# Create the service binary.
    107114test_service "${tmpdir}" "service"
    108115# And install it.
    109 helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enabled
     116helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
     117    fail_msg "\"helpers/install_service\" failed."
    110118# Check that the main service file was created as specified.
    111119if test -x "${tmpdir}/init.d/service"; then
     
    119127# Try to start the service using the symbolic links which should have been
    120128# created.
    121 if "${tmpdir}/rc3.d/S20service" --prefix "${tmpdir}" --lsb-functions "" start >/dev/null; then
     129if "${tmpdir}/rc3.d/S20service" --prefix "${tmpdir}" --lsb-functions "" start >/dev/null 2>&1; then
    122130    if grep "1: test 2: of 3: my arguments" "${tmpdir}/started" >/dev/null; then
    123131        test -f "${tmpdir}/stopped" &&
     
    130138fi
    131139# Check the status.
    132 "${tmpdir}/rc.d/rc5.d/S20service" --prefix "${tmpdir}" --lsb-functions "" status >/dev/null ||
     140"${tmpdir}/rc.d/rc5.d/S20service" --prefix "${tmpdir}" --lsb-functions "" status >/dev/null 2>&1 ||
    133141    fail_msg "\"${tmpdir}/rc.d/rc5.d/S20service\" reported the wrong status."
    134142# Try to stop the service using the symbolic links which should have been
    135143# created.
    136 if "${tmpdir}/rc.d/rc6.d/K80service" --prefix "${tmpdir}" --lsb-functions "" stop >/dev/null; then
     144if "${tmpdir}/rc.d/rc6.d/K80service" --prefix "${tmpdir}" --lsb-functions "" stop >/dev/null 2>&1; then
    137145    test -f "${tmpdir}/stopped" ||
    138146        echo "\"${tmpdir}/rc.d/rc6.d/K80service\" did not stop correctly."
     
    141149fi
    142150# Check the status again - now it should be stopped.
    143 "${tmpdir}/rc.d/rc3.d/S20service" --prefix "${tmpdir}" --lsb-functions "" status >/dev/null &&
     151"${tmpdir}/rc.d/rc3.d/S20service" --prefix "${tmpdir}" --lsb-functions "" status >/dev/null 2>&1 &&
    144152    fail_msg "\"${tmpdir}/rc.d/rc3.d/S20service\" reported the wrong status."
    145153# Final summary.
     
    149157    echo SUCCESS
    150158fi
     159
     160# Test an init script removal.
     161print_line "removing an init script."
     162failed=""
     163# Create a simulated init system layout.
     164tmpdir="${tmpbase}0"
     165create_simulated_init_tree "${tmpdir}"
     166# Create the service binary.
     167test_service "${tmpdir}" "service"
     168# Install it.
     169helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
     170    fail_msg "\"helpers/install_service\" failed."
     171# And remove it again.
     172helpers/install_service --command "${tmpdir}/service" --prefix "${tmpdir}" --remove ||
     173    fail_msg "\"helpers/install_service\" failed."
     174# After uninstallation this should be the only file left in the init tree.
     175rm "${tmpdir}/service"
     176test "x`find "${tmpdir}" -type f -o -type l`" = "x" ||
     177    fail_msg "not all files were removed."
     178# Final summary.
     179if test -n "${failed}"; then
     180    echo "${failed}"
     181else
     182    echo SUCCESS
     183fi
     184
     185# Test an enabled init script update with --disable.
     186print_line "updating an enabled init script with --disable."
     187failed=""
     188# Create a simulated init system layout.
     189tmpdir="${tmpbase}1"
     190create_simulated_init_tree "${tmpdir}"
     191# Create the service binary.
     192test_service "${tmpdir}" "service"
     193# Install it.
     194helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
     195    fail_msg "\"helpers/install_service\" failed."
     196# Install it disabled without forcing.
     197helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
     198    fail_msg "\"helpers/install_service\" failed."
     199test "x`find "${tmpdir}"/rc*.d -type l | wc -l`" = "x12" ||
     200    fail_msg "links were removed on non-forced disable."
     201# Final summary.
     202if test -n "${failed}"; then
     203    echo "${failed}"
     204else
     205    echo SUCCESS
     206fi
     207
     208# Test updating a disabled init script with --enable.
     209print_line "updating a disabled init script with --enable."
     210failed=""
     211# Create a simulated init system layout.
     212tmpdir="${tmpbase}2"
     213create_simulated_init_tree "${tmpdir}"
     214# Create the service binary.
     215test_service "${tmpdir}" "service"
     216# Install it.
     217helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
     218    fail_msg "\"helpers/install_service\" failed."
     219# Install it disabled without forcing.
     220helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
     221    fail_msg "\"helpers/install_service\" failed."
     222test "x`find "${tmpdir}"/rc*.d -type l`" = "x" ||
     223    fail_msg "files were installed on non-forced enable."
     224# Final summary.
     225if test -n "${failed}"; then
     226    echo "${failed}"
     227else
     228    echo SUCCESS
     229fi
     230
     231# Test an enabled init script update with --force-disable.
     232print_line "updating an enabled init script with --force-disable."
     233failed=""
     234# Create a simulated init system layout.
     235tmpdir="${tmpbase}3"
     236create_simulated_init_tree "${tmpdir}"
     237# Create the service binary.
     238test_service "${tmpdir}" "service"
     239# Install it.
     240helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --enable ||
     241    fail_msg "\"helpers/install_service\" failed."
     242# Install it disabled without forcing.
     243helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --force-disable ||
     244    fail_msg "\"helpers/install_service\" failed."
     245test "x`find "${tmpdir}"/rc*.d -type l`" = "x" ||
     246    fail_msg "links were not removed on forced disable."
     247# Final summary.
     248if test -n "${failed}"; then
     249    echo "${failed}"
     250else
     251    echo SUCCESS
     252fi
     253
     254# Test updating a disabled init script with --force-enable.
     255print_line "updating a disabled init script with --force-enable."
     256failed=""
     257# Create a simulated init system layout.
     258tmpdir="${tmpbase}4"
     259create_simulated_init_tree "${tmpdir}"
     260# Create the service binary.
     261test_service "${tmpdir}" "service"
     262# Install it.
     263helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --disable ||
     264    fail_msg "\"helpers/install_service\" failed."
     265# Install it disabled without forcing.
     266helpers/install_service --command "${tmpdir}/service" --arguments "test of my\ arguments" --description "My description" --prefix "${tmpdir}" --force-enable ||
     267    fail_msg "\"helpers/install_service\" failed."
     268test "x`find "${tmpdir}"/rc*.d -type l | wc -l`" = "x12" ||
     269    fail_msg "files were not installed on forced enable."
     270# Final summary.
     271if test -n "${failed}"; then
     272    echo "${failed}"
     273else
     274    echo SUCCESS
     275fi
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette