tstInstallerLinux.sh revision 7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429c
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#!/bin/sh
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# Oracle VM VirtualBox
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# VirtualBox linux installation script unit test
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# Copyright (C) 2007-2011 Oracle Corporation
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# This file is part of VirtualBox Open Source Edition (OSE), as
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# available from http://www.virtualbox.org. This file is free software;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# you can redistribute it and/or modify it under the terms of the GNU
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# General Public License (GPL) as published by the Free Software
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# Foundation, in version 2 as it comes in the "COPYING" file of the
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync#include installer-utils.sh
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncCERRS=0
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncecho "Testing udev rule generation for the \".run\" installer"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncsetup_test_input_install_udev ".run, udev-55" 55
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncudev_55_rules=`cat <<'UDEV_END'
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncKERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="vboxusers", MODE="0660"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb_device", ACTION=="add", RUN="/opt/VirtualBox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/opt/VirtualBox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb_device", ACTION=="remove", RUN="/opt/VirtualBox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/opt/VirtualBox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncUDEV_END`
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncinstall_udev_output="`install_udev_run vboxusers 0660 /opt/VirtualBox`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsynccase "$install_udev_output" in
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync "$udev_55_rules") ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Bad output for udev version 55. Expected:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$udev_55_rules"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Actual:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$install_udev_output"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync CERRS="`expr "$CERRS" + 1`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncesac
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsynccleanup_test_input_install_udev
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncsetup_test_input_install_udev ".run, udev-54" 54
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncudev_54_rules=`cat <<'UDEV_END'
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncKERNEL="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb_device", ACTION="add", RUN="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb", ACTION="add", ENV{DEVTYPE}="usb_device", RUN="/usr/lib/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass}"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb_device", ACTION="remove", RUN="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb", ACTION="remove", ENV{DEVTYPE}="usb_device", RUN="/usr/lib/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncUDEV_END`
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncinstall_udev_output="`install_udev_run root 0600 /usr/lib/virtualbox`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsynccase "$install_udev_output" in
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync "$udev_54_rules") ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Bad output for udev version 54. Expected:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$udev_54_rules"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Actual:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$install_udev_output"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync CERRS="`expr "$CERRS" + 1`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncesac
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncecho "Testing udev rule generation for the \"package\" installer"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsynccleanup_test_input_install_udev
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncsetup_test_input_install_udev "package, udev-55" 55
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncudev_55_rules=`cat <<'UDEV_END'
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncKERNEL=="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb_device", ACTION=="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb", ACTION=="add", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} vboxusers"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb_device", ACTION=="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM=="usb", ACTION=="remove", ENV{DEVTYPE}=="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncUDEV_END`
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncinstall_udev_output="`install_udev_package vboxusers`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsynccase "$install_udev_output" in
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync "$udev_55_rules") ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Bad output for udev version 55. Expected:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$udev_55_rules"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Actual:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$install_udev_output"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync CERRS="`expr "$CERRS" + 1`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncesac
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsynccleanup_test_input_install_udev
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncsetup_test_input_install_udev "package, udev-54" 54
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncudev_54_rules=`cat <<'UDEV_END'
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncKERNEL="vboxdrv", NAME="vboxdrv", OWNER="root", GROUP="root", MODE="0600"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb_device", ACTION="add", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} root"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb", ACTION="add", ENV{DEVTYPE}="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh $major $minor $attr{bDeviceClass} root"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb_device", ACTION="remove", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncSUBSYSTEM="usb", ACTION="remove", ENV{DEVTYPE}="usb_device", RUN="/usr/share/virtualbox/VBoxCreateUSBNode.sh --remove $major $minor"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncUDEV_END`
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncinstall_udev_output="`install_udev_package root`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsynccase "$install_udev_output" in
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync "$udev_54_rules") ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync *)
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Bad output for udev version 54. Expected:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$udev_54_rules"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "Actual:"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync echo "$install_udev_output"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync CERRS="`expr "$CERRS" + 1`"
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync ;;
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncesac
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsynccleanup_test_input_install_udev
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncsetup_test_input_install_udev "package, no udev" 54
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncINSTALL_NO_UDEV=1
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncinstall_udev_output="`install_udev_package root`"
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsynccase "$install_udev_output" in
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync "") ;;
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync *)
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync echo "Bad output for udev version 54. Expected:"
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync echo "$udev_54_rules"
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync echo "Actual:"
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync echo "$install_udev_output"
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync CERRS="`expr "$CERRS" + 1`"
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync ;;
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncesac
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsynccleanup_test_input_install_udev
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsyncINSTALL_NO_UDEV=
7c5ad4d5b8b9d8feb9160cfef7f4129c5f6a429cvboxsync
09ed5ee011f3a6cd9d4742216ad3bb7dbf855641vboxsyncecho "Done. Error count $CERRS."