123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525 |
- #!/bin/sh
- # Copyright (C) 2012 Wind River Systems, Inc.
- #
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License version 2 as
- # published by the Free Software Foundation.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- # See the GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- WORK_DIR="/opt/lsb-test"
- if [ `id -u` -ne 0 ]
- then
- cat << EOF
- In order to install and run LSB testsuite, you need administrator privileges.
- You are currently running this script as an unprivileged user.
- EOF
- exit 1
- fi
- ARCH=`uname -m`
- if [ ${ARCH} != "i686" ] && [ ${ARCH} != "x86_64" ] && [ ${ARCH} != "ppc" ] && [ ${ARCH} != "ppc64" ]
- then
- echo "Error: Unsupported architecture"
- exit 1
- fi
- which rpm
- if [ $? -ne 0 ]
- then
- echo "No rpm command found"
- exit 1
- fi
- RET=0
- cd ${WORK_DIR} || exit 1
- # Step 1: Download the LSB Packages
- echo ""
- echo "Download LSB packages..."
- echo ""
- if [ ! -e ./packages_list ]
- then
- echo "Error: Could not find packages list" >&2
- exit 1
- fi
- . ./packages_list
- PACKAGES_DIR="/var/opt/lsb/test/manager/packages/ftp.linuxfoundation.org/pub/lsb"
- BASE_PACKAGES_DIR="${PACKAGES_DIR}/base/released-all/binary"
- RUNTIME_BASE_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/released-all/binary/runtime"
- RUNTIME_PACKAGES_DIR="${PACKAGES_DIR}/test_suites/${LSB_RELEASE}/binary/runtime"
- APP_PACKAGES_DIR="${PACKAGES_DIR}/app-battery/${LSB_RELEASE}/${LSB_ARCH}"
- APP_TESTFILES_DIR="${PACKAGES_DIR}/app-battery/tests"
- SNAPSHOTS_TESTFILES_DIR="${PACKAGES_DIR}/snapshots/appbat/tests"
- if [ ! -d ${PACKAGES_DIR} ]
- then
- mkdir -p ${PACKAGES_DIR}
- fi
- if [ ! -d ${BASE_PACKAGES_DIR} ]
- then
- mkdir -p ${BASE_PACKAGES_DIR}
- fi
- if [ ! -d ${RUNTIME_BASE_PACKAGES_DIR} ]
- then
- mkdir -p ${RUNTIME_BASE_PACKAGES_DIR}
- fi
- if [ ! -d ${RUNTIME_PACKAGES_DIR} ]
- then
- mkdir -p ${RUNTIME_PACKAGES_DIR}
- fi
- if [ ! -d ${APP_PACKAGES_DIR} ]
- then
- mkdir -p ${APP_PACKAGES_DIR}
- fi
- if [ ! -d ${APP_TESTFILES_DIR} ]
- then
- mkdir -p ${APP_TESTFILES_DIR}
- fi
- # Official download server list. You can replace them with your own server.
- SERVER_IPADDR="140.211.169.28"
- SERVER_NAME="ftp.linuxfoundation.org"
- if ! `grep -F -q "${SERVER_NAME}" /etc/hosts`; then
- echo "${SERVER_IPADDR} ${SERVER_NAME} ${SERVER_NAME}" >> /etc/hosts
- fi
- #ping -c 5 ${SERVER_NAME}
- #if [ $? -ne 0 ]
- #then
- # echo "The server: ${SERVER_NAME} is unreachable"
- # exit 1
- #fi
- SERVER1="\
- http://${SERVER_NAME}/pub/lsb/base/released-all/binary"
- SERVER2="\
- http://${SERVER_NAME}/pub/lsb/test_suites/released-all/binary/runtime"
- SERVER3="\
- http://${SERVER_NAME}/pub/lsb/test_suites/${LSB_RELEASE}/binary/runtime"
- SERVER4="\
- http://${SERVER_NAME}/pub/lsb/app-battery/${LSB_RELEASE}/${LSB_ARCH}"
- SERVER5="\
- http://${SERVER_NAME}/pub/lsb/app-battery/tests"
- # We using "curl" as a download tool, "wget" is an alternative.
- CURL=`which curl`
- WGET=`which wget`
- if [ ! -z ${CURL} ]
- then
- DOWNLOAD_CMD="${CURL} -R -L -f --retry 3 --retry-delay 4 --connect-timeout 180 --compressed -C - -o"
- elif [ ! -z ${WGET} ]
- then
- DOWNLOAD_CMD="${WGET} -c -t 5 -O"
- else
- echo "Can not find a download tool, please install curl or wget."
- exit 1
- fi
- cd ${BASE_PACKAGES_DIR}
- for pkg in ${BASE_PACKAGES_LIST}; do
- if [ ! -f ${pkg} ]
- then
- #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg} > /dev/null 2>&1
- ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER1}/${pkg}
- if [ $? -eq 0 ]
- then
- mv -f ${pkg}".#part" ${pkg}
- echo "Download ${pkg} successfully."
- else
- echo "Download ${pkg} failed."
- RET=1
- fi
- fi
- done
- cd ${RUNTIME_BASE_PACKAGES_DIR}
- for pkg in ${RUNTIME_BASE_PACKAGES_LIST}; do
- if [ ! -f ${pkg} ]
- then
- #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg} > /dev/null 2>&1
- ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER2}/${pkg}
- if [ $? -eq 0 ]
- then
- mv -f ${pkg}".#part" ${pkg}
- echo "Download ${pkg} successfully."
- else
- echo "Download ${pkg} failed."
- RET=1
- fi
- fi
- done
- cd ${RUNTIME_PACKAGES_DIR}
- for pkg in ${RUNTIME_PACKAGES_LIST}; do
- if [ ! -f ${pkg} ]
- then
- #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg} > /dev/null 2>&1
- ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER3}/${pkg}
- if [ $? -eq 0 ]
- then
- mv -f ${pkg}".#part" ${pkg}
- echo "Download ${pkg} successfully."
- else
- echo "Download ${pkg} failed."
- RET=1
- fi
- fi
- done
- cd ${APP_PACKAGES_DIR}
- for pkg in ${APP_PACKAGES_LIST}; do
- if [ ! -f ${pkg} ]
- then
- #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg} > /dev/null 2>&1
- ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER4}/${pkg}
- if [ $? -eq 0 ]
- then
- mv -f ${pkg}".#part" ${pkg}
- echo "Download ${pkg} successfully."
- else
- echo "Download ${pkg} failed."
- RET=1
- fi
- fi
- done
- cd ${APP_TESTFILES_DIR}
- for pkg in ${APP_TESTFILES_LIST}; do
- if [ ! -f ${pkg} ]
- then
- #${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg} > /dev/null 2>&1
- ${DOWNLOAD_CMD} ${pkg}".#part" ${SERVER5}/${pkg}
- if [ $? -eq 0 ]
- then
- mv -f ${pkg}".#part" ${pkg}
- echo "Download ${pkg} successfully."
- else
- echo "Download ${pkg} failed."
- RET=1
- fi
- fi
- done
- if [ ${RET} -ne 0 ]
- then
- echo "Download some packages failed. Please download them again."
- exit 1
- fi
- # Step 2: Install the LSB Packages
- echo ""
- echo "Install LSB packages..."
- echo ""
- # Kill lighttpd
- ps aux | grep "lighttpd" | grep -v -q "grep"
- if [ $? -eq 0 ]
- then
- killall lighttpd >/dev/null 2>&1
- fi
- # Start avahi-daemon
- ps aux | grep "avahi-daemon" | grep -v -q "grep"
- if [ $? -ne 0 ]
- then
- /etc/init.d/avahi-daemon start >/dev/null 2>&1
- fi
- LSB_START_CMD="/opt/lsb/test/manager/bin/dist-checker-start.pl"
- LSB_STOP_CMD="/opt/lsb/test/manager/bin/dist-checker-stop.pl"
- PLATFORM_FILE="/etc/rpm/platform"
- RPM_INSTALL_CMD="rpm --quiet --nodeps --replacepkgs --nosignature -i --ignoreos"
- RPM_INSTALL_CMD_NOSCRIPTS="rpm --quiet --nodeps --replacepkgs --noscripts --nosignature -i --ignoreos"
- # If the lsb has been started, stop it first.
- if [ -x ${LSB_STOP_CMD} ]
- then
- ${LSB_STOP_CMD}
- fi
- if [ ! -d /etc/rpm ]
- then
- mkdir -p /etc/rpm
- fi
- if [ ! -f ${PLATFORM_FILE} ]
- then
- touch ${PLATFORM_FILE}
- fi
- if ! `grep -F -q "noarch-suse" ${PLATFORM_FILE}`; then
- if [ ${ARCH} = i686 ];then
- echo "i486-suse" >> ${PLATFORM_FILE}
- echo "i486-noarch" >> ${PLATFORM_FILE}
- echo "i486-pc" >> ${PLATFORM_FILE}
- echo "noarch-suse" >> ${PLATFORM_FILE}
- elif [ ${ARCH} = x86_64 ]; then
- echo "i486-suse" >> ${PLATFORM_FILE}
- echo "i486-noarch" >> ${PLATFORM_FILE}
- echo "i486-pc" >> ${PLATFORM_FILE}
- echo "i486-.*-linux.*" >> ${PLATFORM_FILE}
- echo "noarch-suse" >> ${PLATFORM_FILE}
- echo "${ARCH}-suse" >> ${PLATFORM_FILE}
- echo "${ARCH}-noarch" >> ${PLATFORM_FILE}
- echo "${ARCH}-pc" >> ${PLATFORM_FILE}
- else
- echo "${ARCH}-suse" >> ${PLATFORM_FILE}
- echo "${ARCH}-noarch" >> ${PLATFORM_FILE}
- echo "${ARCH}-pc" >> ${PLATFORM_FILE}
- echo "noarch-suse" >> ${PLATFORM_FILE}
- fi
- fi
- if [ -d ${BASE_PACKAGES_DIR} ]
- then
- cd ${BASE_PACKAGES_DIR}
- for pkg in ${BASE_PACKAGES_LIST}
- do
- rpm --quiet -q ${pkg%\.*}
- if [ $? -ne 0 ]; then
- $RPM_INSTALL_CMD ${pkg}
- fi
- done
- fi
- if [ -d ${RUNTIME_BASE_PACKAGES_DIR} ]
- then
- cd ${RUNTIME_BASE_PACKAGES_DIR}
- for pkg in ${RUNTIME_BASE_PACKAGES_LIST}
- do
- rpm --quiet -q ${pkg%\.*}
- if [ $? -ne 0 ]; then
- $RPM_INSTALL_CMD ${pkg}
- fi
- done
- fi
- if [ -d ${RUNTIME_PACKAGES_DIR} ]
- then
- cd ${RUNTIME_PACKAGES_DIR}
- for pkg in ${RUNTIME_PACKAGES_LIST}
- do
- rpm --quiet -q ${pkg%\.*}
- if [ $? -ne 0 ]; then
- $RPM_INSTALL_CMD ${pkg}
- fi
- done
- fi
- if [ -d ${APP_PACKAGES_DIR} ]
- then
- cd ${APP_PACKAGES_DIR}
- for pkg in ${APP_PACKAGES_LIST}
- do
- echo "${pkg}" | grep -q "apache\|xpdf"
- if [ $? -eq 0 ]
- then
- rpm --quiet -q ${pkg%\.*}
- if [ $? -ne 0 ]; then
- $RPM_INSTALL_CMD_NOSCRIPTS ${pkg}
- fi
- else
- rpm --quiet -q ${pkg%\.*}
- if [ $? -ne 0 ]; then
- $RPM_INSTALL_CMD ${pkg}
- fi
- fi
- done
- fi
- if [ ! -d ${SNAPSHOTS_TESTFILES_DIR} ]
- then
- mkdir -p ${SNAPSHOTS_TESTFILES_DIR}
- fi
- if [ -d ${APP_TESTFILES_DIR} ]
- then
- cd ${APP_TESTFILES_DIR}
- for pkg in ${APP_TESTFILES_LIST}
- do
- cp -f ${pkg} ${SNAPSHOTS_TESTFILES_DIR}
- done
- fi
- cd ${WORK_DIR}
- # Step 3: Set environment
- echo ""
- echo "Set environment..."
- echo ""
- check ()
- {
- if [ $? -eq 0 ]
- then
- echo "PASS"
- else
- echo "FAIL"
- exit 1
- fi
- }
- echo ""
- echo "---------------------------------"
- echo "Create the Dirnames on target"
- if [ ! -d /etc/rpm/sysinfo ]
- then
- mkdir -p /etc/rpm/sysinfo
- fi
- cat > /etc/rpm/sysinfo/Dirnames << EOF
- /etc/opt/lsb
- /home/tet/LSB.tools
- /opt/lsb-tet3-lite/lib/ksh
- /opt/lsb-tet3-lite/lib/perl
- /opt/lsb-tet3-lite/lib/posix_sh
- /opt/lsb-tet3-lite/lib/tet3
- /opt/lsb-tet3-lite/lib/xpg3sh
- /opt/lsb/appbat/lib/python2.4/site-packages/qm
- /opt/lsb/appbat/lib/python2.4/site-packages/qm/external
- /opt/lsb/appbat/lib/python2.4/site-packages/qm/external/DocumentTemplate
- /opt/lsb/appbat/lib/python2.4/site-packages/qm/test
- /opt/lsb/appbat/lib/python2.4/site-packages/qm/test/classes
- /opt/lsb/appbat/lib/python2.4/site-packages/qm/test/web
- /opt/lsb/test/doc
- /opt/lsb/test/lib
- /opt/lsb/test/qm/diagnostics
- /opt/lsb/test/qm/doc
- /opt/lsb/test/qm/doc/test/html
- /opt/lsb/test/qm/doc/test/print
- /opt/lsb/test/qm/dtml
- /opt/lsb/test/qm/dtml/test
- /opt/lsb/test/qm/messages/test
- /opt/lsb/test/qm/tutorial/test/tdb
- /opt/lsb/test/qm/tutorial/test/tdb/QMTest
- /opt/lsb/test/qm/web
- /opt/lsb/test/qm/web/images
- /opt/lsb/test/qm/web/stylesheets
- /opt/lsb/test/qm/xml
- /opt/lsb/test/share
- /usr/share/doc/lsb-runtime-test
- /var/opt/lsb
- /opt/lsb/test/desktop
- /opt/lsb/test/desktop/fontconfig
- /opt/lsb/test/desktop/freetype
- /opt/lsb/test/desktop/gtkvts
- /opt/lsb/test/desktop/libpng
- /opt/lsb/test/desktop/xft
- /opt/lsb/test/desktop/xml
- /opt/lsb/test/desktop/xrender
- EOF
- if [ -f /etc/rpm/sysinfo/Dirnames ]
- then
- echo "Success to creat Dirnames file"
- else
- echo "Fail to creat Dirnames file"
- fi
- [ -x /sbin/ldconfig ] && {
- echo ""
- echo "---------------------------------"
- echo "Update cache"
- /sbin/ldconfig
- check;
- }
- # Check loop device
- if [ ! -b /dev/loop0 ]
- then
- insmod /lib/modules/`uname -r`/kernel/drivers/block/loop.ko
- if [ $? != 0 ];then
- echo "Insmod loop.ko failed."
- fi
- fi
- # Resolve localhost
- LOCALHOST=`hostname`
- if ! `grep -F -q "$LOCALHOST" /etc/hosts`; then
- echo "127.0.0.1 $LOCALHOST" >> /etc/hosts
- fi
- # Workaround to add part of locales for LSB test
- localedef -i de_DE -f ISO-8859-1 de_DE
- localedef -i de_DE -f ISO-8859-15 de_DE.ISO-8859-15
- localedef -i de_DE -f UTF-8 de_DE.UTF-8
- localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
- localedef -i en_HK -f ISO-8859-1 en_HK
- localedef -i en_PH -f ISO-8859-1 en_PH
- localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15
- localedef -i en_US -f ISO-8859-1 en_US.ISO-8859-1
- localedef -i en_US -f ISO-8859-1 en_US
- localedef -i en_US -f UTF-8 en_US.UTF-8
- localedef -i en_US -f ISO-8859-1 en_US.ISO8859-1
- localedef -i es_MX -f ISO-8859-1 es_MX
- localedef -i fr_FR -f ISO-8859-1 fr_FR
- localedef -i it_IT -f ISO-8859-1 it_IT
- localedef -i ja_JP -f EUC-JP ja_JP.eucjp
- localedef -i se_NO -f UTF-8 se_NO.UTF-8
- localedef -i ta_IN -f UTF-8 ta_IN
- localedef -i es_ES -f ISO-8859-1 es_ES
- localedef -i fr_FR@euro -f ISO-8859-1 fr_FR@euro
- localedef -i is_IS -f UTF-8 is_IS.UTF-8
- localedef -i zh_TW -f BIG5 zh_TW.BIG5
- localedef -i en_US -f ISO-8859-15 en_US.ISO-8859-15
- echo ""
- echo "Installation done!"
- echo ""
- # Step 4: Start LSB test
- if [ -x ${LSB_START_CMD} ]
- then
- ${LSB_START_CMD}
- fi
- echo "---------------------------------"
- echo "Run all the certification version of LSB Tests"
- echo "---------------------------------"
- LSB_DIST_CHECKER="/opt/lsb/test/manager/utils/dist-checker.pl"
- SESSION="${WORK_DIR}/session"
- if [ ! -e ${SESSION} ]
- then
- echo "Error: Could not find session file."
- echo "You must run LSB test from webbrower."
- exit 1
- fi
- if [ -x ${LSB_DIST_CHECKER} ]
- then
- ${LSB_DIST_CHECKER} -v2 -f ${SESSION}
- check
- fi
- echo ""
- echo "LSB test complete. Please check the log file in /var/opt/lsb/test/manager/results/"
- echo ""
|