Patchwork [V2,1/3] lsbtest: Add recipe for LSB tests and automate test

login
register
mail settings
Submitter Yi Zhao
Date Feb. 24, 2012, 7:02 a.m.
Message ID <cbcd638dffc99f39bde757c1a3e4752c5d5a5323.1330066564.git.yi.zhao@windriver.com>
Download mbox | patch
Permalink /patch/21901/
State Accepted
Commit b9ef6b8022a40bab83e8eb29e5fcde0886cf2988
Headers show

Comments

Yi Zhao - Feb. 24, 2012, 7:02 a.m.
The recipe is used for LSB tests. The script LSB_Test.sh does the following things:
- setup LSB testing environment
- download LSB rpm packages with list file packages_list from remote
- install the packages
- execute LSB testing with profile file session
- collect the results

Install packages_list and session files into ${D}/opt/lsb-test.

[YOCTO #1567]
---
 meta/recipes-extended/lsb/lsbtest/LSB_Test.sh   |  510 +++++++++++++++++++++++
 meta/recipes-extended/lsb/lsbtest/packages_list |   50 +++
 meta/recipes-extended/lsb/lsbtest/session       |  194 +++++++++
 meta/recipes-extended/lsb/lsbtest_1.0.bb        |   37 ++
 4 files changed, 791 insertions(+), 0 deletions(-)
 create mode 100644 meta/recipes-extended/lsb/lsbtest/LSB_Test.sh
 create mode 100644 meta/recipes-extended/lsb/lsbtest/packages_list
 create mode 100644 meta/recipes-extended/lsb/lsbtest/session
 create mode 100644 meta/recipes-extended/lsb/lsbtest_1.0.bb

Patch

diff --git a/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh b/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh
new file mode 100644
index 0000000..f14f485
--- /dev/null
+++ b/meta/recipes-extended/lsb/lsbtest/LSB_Test.sh
@@ -0,0 +1,510 @@ 
+#!/bin/bash
+
+# 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" ]
+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/${LSB_RELEASE}/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.23"
+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/${LSB_RELEASE}/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 --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"
+RPM_INSTALL_CMD_NOSCRIPTS="rpm --quiet --nodeps --replacepkgs --noscripts --nosignature -i"
+
+# 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}
+	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/qt3
+/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
+
+echo ""
+echo "---------------------------------"
+echo "Update cache"
+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
+
+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 ""
+
diff --git a/meta/recipes-extended/lsb/lsbtest/packages_list b/meta/recipes-extended/lsb/lsbtest/packages_list
new file mode 100644
index 0000000..9285ed9
--- /dev/null
+++ b/meta/recipes-extended/lsb/lsbtest/packages_list
@@ -0,0 +1,50 @@ 
+LSB_RELEASE="released-4.1.0"
+LSB_ARCH="lsbarch"
+
+BASE_PACKAGES_LIST="lsb-setup-4.1.0-1.noarch.rpm"
+
+RUNTIME_BASE_PACKAGES_LIST="lsb-dist-checker-4.1.0.1-2.targetarch.rpm \
+	lsb-tet3-lite-3.7-15.lsb4.targetarch.rpm \
+	lsb-tet3-lite-devel-3.7-15.lsb4.targetarch.rpm \
+	lsb-xvfb-1.2.0-19.targetarch.rpm \
+	"
+
+RUNTIME_PACKAGES_LIST="lsb-cmdchk-4.1.0-1.targetarch.rpm \
+	lsb-libchk-4.1.0-1.targetarch.rpm \
+	lsb-qm-2.2-8.lsb4.targetarch.rpm \
+	lsb-task-dist-testkit-4.1.0-1.noarch.rpm \
+	lsb-test-core-4.1.0-1.targetarch.rpm \
+	lsb-test-cpp-t2c-4.1.0-1.targetarch.rpm \
+	lsb-test-desktop-4.1.0-2.targetarch.rpm \
+	lsb-test-desktop-t2c-4.1.0-1.targetarch.rpm \
+	lsb-test-libstdcpp-4.1.0-13.lsb4.targetarch.rpm \
+	lsb-test-olver-core-4.1.0-1.targetarch.rpm \
+	lsb-test-perl-4.1.0-1.noarch.rpm \
+	lsb-test-printing-4.1.0-1.targetarch.rpm \
+	lsb-test-python-4.1.1-2.targetarch.rpm \
+	lsb-test-qt3-azov-4.1.0-1.targetarch.rpm \
+	lsb-test-qt4-azov-4.1.0-1.targetarch.rpm \
+	lsb-test-xts5-5.1.5-38.lsb4.targetarch.rpm \
+	lsb-test-alsa-t2c-4.1.0-1.targetarch.rpm \
+	lsb-test-core-t2c-4.1.0-1.targetarch.rpm \
+	lsb-test-xml2-azov-4.1.0-1.targetarch.rpm \
+	"
+
+APP_PACKAGES_LIST="lsb-python-2.4.6-5.lsb4.targetarch.rpm \
+	lsb-apache-2.2.14-3.lsb4.targetarch.rpm \
+	lsb-tcl-8.5.7-6.lsb4.targetarch.rpm \
+	lsb-expect-5.43.0-11.lsb4.targetarch.rpm \
+	lsb-groff-1.20.1-5.lsb4.targetarch.rpm \
+	lsb-raptor-1.4.19-3.lsb4.targetarch.rpm \
+	lsb-xpdf-1.01-10.lsb4.targetarch.rpm \
+	lsb-samba-3.4.3-5.lsb4.targetarch.rpm \
+	lsb-rsync-3.0.6-3.lsb4.targetarch.rpm \
+	"
+
+APP_TESTFILES_LIST="expect-tests.tar \
+	tcl-tests.tar \
+	raptor-tests.tar \
+	test1.pdf \
+	test2.pdf \
+	"
+
diff --git a/meta/recipes-extended/lsb/lsbtest/session b/meta/recipes-extended/lsb/lsbtest/session
new file mode 100644
index 0000000..85ca2ef
--- /dev/null
+++ b/meta/recipes-extended/lsb/lsbtest/session
@@ -0,0 +1,194 @@ 
+[GENERAL]
+VERBOSE_LEVEL:   1
+ARCHITECTURE:    targetarch
+USE_INTERNET:    1
+STD_VERSION:     LSB 4.1
+STD_PROFILE:     no
+[cmdchk]
+RUN: 1
+VERSION: local|*
+
+[libchk]
+RUN: 1
+VERSION: local|*
+
+[alsa-t2c]
+RUN: 1
+VERSION: local|*
+
+[alsa-t2c|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/alsa-t2c
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/alsa-t2c/results
+
+[core]
+RUN: 1
+VERSION: local|*
+
+[core|local|*]
+AUTOREPLY_PROVIDES_BASH: n
+AUTOREPLY_TESTRUN_PATH: /home/tet/test_sets
+AUTOREPLY_PERSON: Automated
+AUTOREPLY_KERNEL_NAME: vmlinuz
+AUTOREPLY_INSTALL_LSBPAM_CONF: y
+AUTOREPLY_PROVIDES_C_SHELL: n
+AUTOREPLY_ORGANISATION: N/A
+AUTOREPLY_SET_PASS_MIN_DAYS: y
+AUTOREPLY_PROVIDES_SYSV_INIT: 
+AUTOREPLY_ISNTALL_DEVS: y
+AUTOREPLY_SUPPORTS_FILE_CMD: y
+AUTOREPLY_TEST_SYSTEM: Distribution Checker
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core/tet/test_sets
+AUTOREPLY_SUPPORTS_NLS: n
+AUTOREPLY_SUPPORTS_PROCESS_ACCOUNTING: n
+AUTOREPLY_PATH_TO_RC.D: 
+AUTOREPLY_ALLOWS_MAKEDEV: n
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core/tet/test_sets/results
+
+[core-t2c]
+RUN: 1
+VERSION: local|*
+
+[core-t2c|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/core-t2c
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/core-t2c/results
+
+[cpp-t2c]
+RUN: 1
+VERSION: local|*
+
+[cpp-t2c|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/cpp-t2c
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/cpp-t2c/results
+
+[desktop]
+RUN: 1
+VERSION: local|*
+
+[desktop|local|*]
+AUTOREPLY_DESKTOP_ENVIRONMENT: [default]
+AUTOREPLY_PERSON: Automated
+AUTOREPLY_X_CLIENT_HOSTNAME: 
+AUTOREPLY_TEST_SYSTEM: Distribution Checker
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop
+AUTOREPLY_X11_FONT_PATH: [default]
+AUTOREPLY_SHOW_SUMMARY_REPORT: 
+AUTOREPLY_ORGANISATION: N/A
+AUTOREPLY_XVFB_DISPLAY: [default]
+
+[desktop-t2c]
+RUN: 1
+VERSION: local|*
+
+[desktop-t2c|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/desktop-t2c
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/desktop-t2c/results
+
+[libstdcpp]
+RUN: 1
+VERSION: local|*
+
+[libstdcpp|local|*]
+AUTOREPLY_TEST_SYSTEM: Distribution Checker
+AUTOREPLY_PERSON: Automated
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/libstdcpp_4.1.0
+AUTOREPLY_ORGANISATION: N/A
+AUTOREPLY_GNU_TRIPLET: 
+
+[olver]
+RUN: 1
+VERSION: local|*
+
+[olver|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/olver-core
+AUTOREPLY_RESULTS_DIR: /var/opt/lsb/test/olver-core
+
+[perl]
+RUN: 1
+VERSION: local|*
+
+[perl|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/perl
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/perl/results
+
+[printing]
+RUN: 1
+VERSION: local|*
+
+[printing|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/printing
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/printing/results
+
+[python]
+RUN: 1
+VERSION: local|*
+
+[python|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/python
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/python/results
+
+[qt3-azov]
+RUN: 1
+VERSION: local|*
+
+[qt3-azov|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/qt3-azov
+AUTOREPLY_X11_FONT_PATH: [default]
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/qt3-azov/results
+
+[qt4-azov]
+RUN: 1
+VERSION: local|*
+
+[qt4-azov|local|*]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/qt4-azov
+AUTOREPLY_X11_FONT_PATH: [default]
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/qt4-azov/results
+
+[xml2-azov]
+RUN: 1
+VERSION: local|*
+
+[xts5]
+RUN: 1
+VERSION: local|*
+
+[xts5|local|*]
+AUTOREPLY_XT_FONTPATH_GOOD: [default]
+AUTOREPLY_TESTSUITE_DIR: /opt/lsb/test/xts5
+AUTOREPLY_XVFB_DISPLAY: [default]
+AUTOREPLY_RESULTS_DIR: /opt/lsb/test/xts5/xts5/results
+AUTOREPLY_XT_FONTPATH: [default]
+AUTOREPLY_X_CLIENT_HOSTNAME: 
+
+[apache]
+RUN: 1
+VERSION: local|*
+
+[expect]
+RUN: 1
+VERSION: local|*
+
+[groff]
+RUN: 1
+VERSION: local|*
+
+[raptor]
+RUN: 1
+VERSION: local|*
+
+[rsync]
+RUN: 1
+VERSION: local|*
+
+[samba]
+RUN: 1
+VERSION: local|*
+
+[tcl]
+RUN: 1
+VERSION: local|*
+
+[xpdf]
+RUN: 1
+VERSION: local|*
+
diff --git a/meta/recipes-extended/lsb/lsbtest_1.0.bb b/meta/recipes-extended/lsb/lsbtest_1.0.bb
new file mode 100644
index 0000000..d932c83
--- /dev/null
+++ b/meta/recipes-extended/lsb/lsbtest_1.0.bb
@@ -0,0 +1,37 @@ 
+DESCRIPTION = "automate test for lsb"
+SECTION = "console/utils"
+LICENSE = "GPLv2"
+PR = "r0"
+
+LIC_FILES_CHKSUM = "file://LSB_Test.sh;beginline=3;endline=16;md5=7063bb54b04719df0716b513447f4fc0"
+
+SRC_URI = "file://LSB_Test.sh \
+		   file://packages_list \
+		   file://session \
+		   "
+RDEPENDS_${PN} = "rpm"
+
+S=${WORKDIR}
+
+do_install() {
+	install -d ${D}/usr/bin
+	install -m 0755 ${S}/LSB_Test.sh ${D}/usr/bin
+	install -d  ${D}/opt/lsb-test
+	install -m 0644 ${S}/packages_list ${D}/opt/lsb-test/packages_list
+	install -m 0644 ${S}/session ${D}/opt/lsb-test/session
+	if [ "${TARGET_ARCH}" == "i586" ];then
+		sed -i -e 's/lsbarch/ia32/g' -e 's/targetarch/i486/g' ${D}/opt/lsb-test/packages_list
+		sed -i -e 's/targetarch/x86/g' ${D}/opt/lsb-test/session
+	fi
+	if [ "${TARGET_ARCH}" == "x86_64" ];then
+		sed -i -e 's/lsbarch/amd64/g' -e 's/targetarch/x86_64/g' ${D}/opt/lsb-test/packages_list
+		sed -i -e 's/targetarch/x86-64/g' ${D}/opt/lsb-test/session
+	fi
+	if [ "${TARGET_ARCH}" == "powerpc" ];then
+		sed -i -e 's/lsbarch/ppc32/g' -e 's/targetarch/ppc/g' ${D}/opt/lsb-test/packages_list
+		sed -i -e 's/targetarch/PPC32/g' ${D}/opt/lsb-test/session
+	fi
+}
+
+FILES_${PN} += "/opt/lsb-test/* \
+               "