diff --git a/tests/ids-files/Makefile b/tests/ids-files/Makefile new file mode 100644 index 0000000..8779c9c --- /dev/null +++ b/tests/ids-files/Makefile @@ -0,0 +1,65 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /kernel/hwdata/Sanity/ids-files +# Description: compares upstream ID files with our ID files +# Author: Milos Malik +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# 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., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/kernel/hwdata/Sanity/ids-files +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + chmod a+x runtest.sh + chcon -t bin_t runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Milos Malik " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: compares upstream ID files with our ID files" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: hwdata" >> $(METADATA) + @echo "Requires: hwdata" >> $(METADATA) + @echo "Requires: wget" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + + rhts-lint $(METADATA) + diff --git a/tests/ids-files/PURPOSE b/tests/ids-files/PURPOSE new file mode 100644 index 0000000..4a39624 --- /dev/null +++ b/tests/ids-files/PURPOSE @@ -0,0 +1,6 @@ +PURPOSE of /kernel/hwdata/Sanity/ids-files + +Description: compares upstream ID files with our ID files + +Author: Milos Malik + diff --git a/tests/ids-files/runtest.sh b/tests/ids-files/runtest.sh new file mode 100755 index 0000000..9de3246 --- /dev/null +++ b/tests/ids-files/runtest.sh @@ -0,0 +1,91 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /kernel/hwdata/Sanity/ids-files +# Description: compares upstream ID files with our ID files +# Author: Milos Malik +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# 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., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/bin/rhts-environment.sh +. /usr/lib/beakerlib/beakerlib.sh + +PACKAGE="hwdata" +HWDATA_DIR="/usr/share/hwdata" +PCI_IDS_FILE="pci.ids" +PCI_IDS_URL="http://pci-ids.ucw.cz/v2.2/pci.ids" +USB_IDS_FILE="usb.ids" +USB_IDS_URL="http://www.linux-usb.org/usb.ids" +MONITORS_FILE="MonitorsDB" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm ${PACKAGE} + rlAssertRpm wget + rlAssertExists ${HWDATA_DIR}/${PCI_IDS_FILE} + rlAssertExists ${HWDATA_DIR}/${USB_IDS_FILE} + if rlIsRHEL 6 ; then + rlAssertExists ${HWDATA_DIR}/${MONITORS_FILE} + fi + rlPhaseEnd + + rlPhaseStartTest + rlRun "wget -q -t 4 ${PCI_IDS_URL}" + rlAssertExists ${PCI_IDS_FILE} + echo "Lines in upstream file: "`wc -l < ${PCI_IDS_FILE}` + echo "Lines in our file: "`wc -l < ${HWDATA_DIR}/${PCI_IDS_FILE}` + echo "Common lines: "`comm -1 -2 ${PCI_IDS_FILE} ${HWDATA_DIR}/${PCI_IDS_FILE} | wc -l` + echo "Different lines in upstream file: "`comm -2 -3 ${PCI_IDS_FILE} ${HWDATA_DIR}/${PCI_IDS_FILE} | wc -l` + echo "Different lines in our file: "`comm -1 -3 ${PCI_IDS_FILE} ${HWDATA_DIR}/${PCI_IDS_FILE} | wc -l` + + rlRun "wget -q -t 4 ${USB_IDS_URL}" + rlAssertExists ${USB_IDS_FILE} + echo "Lines in upstream file: "`wc -l < ${USB_IDS_FILE}` + echo "Lines in our file: "`wc -l < ${HWDATA_DIR}/${USB_IDS_FILE}` + echo "Common lines: "`comm -1 -2 ${USB_IDS_FILE} ${HWDATA_DIR}/${USB_IDS_FILE} | wc -l` + echo "Different lines in upstream file: "`comm -2 -3 ${USB_IDS_FILE} ${HWDATA_DIR}/${USB_IDS_FILE} | wc -l` + echo "Different lines in our file: "`comm -1 -3 ${USB_IDS_FILE} ${HWDATA_DIR}/${USB_IDS_FILE} | wc -l` + + if ! rlIsRHEL 7 ; then + rlLog "Checking the format of ${HWDATA_DIR}/${MONITORS_FILE}" + fi + LINE=0 + while read ; do + let "LINE += 1" + if echo ${REPLY} | grep -e '^#' -e '^ *$' >& /dev/null ; then + continue + fi + COUNT=`echo ${REPLY} | tr ';' '\n' | wc -l` + if [ ${COUNT} -lt 5 -o ${COUNT} -gt 6 ] ; then + rlFail "Wrong format on line ${LINE}" + fi + done < ${HWDATA_DIR}/${MONITORS_FILE} + rlPhaseEnd + + rlPhaseStartCleanup + rlRun "rm -f ${PCI_IDS_FILE}" + rlRun "rm -f ${USB_IDS_FILE}" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd + diff --git a/tests/syntax/Makefile b/tests/syntax/Makefile new file mode 100644 index 0000000..a949ef3 --- /dev/null +++ b/tests/syntax/Makefile @@ -0,0 +1,68 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /kernel/hwdata/idfiles/syntax +# Description: checks for basic syntax errors +# Author: Milos Malik +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# 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., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/kernel/hwdata/idfiles/syntax +export TESTVERSION=1.0 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Milos Malik " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: checks for basic syntax errors" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: hwdata" >> $(METADATA) + @echo "Requires: hwdata" >> $(METADATA) + @echo "Requires: pciutils" >> $(METADATA) + @echo "Requires: usbutils" >> $(METADATA) + @echo "Requires: grep" >> $(METADATA) + @echo "Requires: mktemp" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Architectures: i386 x86_64 ia64" >> $(METADATA) + + rhts-lint $(METADATA) + diff --git a/tests/syntax/PURPOSE b/tests/syntax/PURPOSE new file mode 100644 index 0000000..dc2a4b1 --- /dev/null +++ b/tests/syntax/PURPOSE @@ -0,0 +1,6 @@ +PURPOSE of /kernel/hwdata/idfiles/syntax + +Description: checks for basic syntax errors + +Author: Milos Malik + diff --git a/tests/syntax/runtest.sh b/tests/syntax/runtest.sh new file mode 100644 index 0000000..0d1921b --- /dev/null +++ b/tests/syntax/runtest.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /kernel/hwdata/idfiles/syntax +# Description: checks for basic syntax errors +# Author: Milos Malik +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2009 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing +# to use, modify, copy, or redistribute it subject to the terms +# and conditions of the GNU General Public License version 2. +# +# 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., 51 Franklin Street, Fifth Floor, +# Boston, MA 02110-1301, USA. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include rhts environment +. /usr/bin/rhts-environment.sh +. /usr/lib/beakerlib/beakerlib.sh + +PACKAGE="hwdata" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm ${PACKAGE} + rlAssertRpm pciutils + rlAssertRpm usbutils + OUTPUT_FILE=`mktemp` + rlPhaseEnd + + rlPhaseStartTest + rlRun "lspci >& ${OUTPUT_FILE}" + rlRun "grep -i 'unknown line' ${OUTPUT_FILE}" 1 + rlRun "lsusb >& ${OUTPUT_FILE}" 0,1 + rlRun "grep -i 'unknown line' ${OUTPUT_FILE}" 1 + rlPhaseEnd + + rlPhaseStartCleanup + rm -f ${OUTPUT_FILE} + rlPhaseEnd +rlJournalPrintText +rlJournalEnd + diff --git a/tests/tests.yml b/tests/tests.yml new file mode 100644 index 0000000..dd34348 --- /dev/null +++ b/tests/tests.yml @@ -0,0 +1,18 @@ +--- +# This first play always runs on the local staging system +- hosts: localhost + roles: + - role: standard-test-beakerlib + tags: + - classic + tests: + - ids-files + - syntax + required_packages: + - hwdata + - pciutils + - usbutils + - grep + - mktemp + - hwdata + - wget