From a9f8ddc13d87f2ea7c5685c417a3e427f889d575 Mon Sep 17 00:00:00 2001 From: Mike Gahagan Date: Wed, 4 Oct 2017 15:15:53 -0400 Subject: Initial checkin of tuned tests (need library/base to be ported before these will work) --- check-system-settings/Makefile | 64 +++++++++++++++++++++++ check-system-settings/PURPOSE | 3 ++ check-system-settings/runtest.sh | 90 ++++++++++++++++++++++++++++++++ profiles/Makefile | 66 ++++++++++++++++++++++++ profiles/PURPOSE | 3 ++ profiles/runtest.sh | 102 +++++++++++++++++++++++++++++++++++++ tests.yml | 17 +++++++ tuned-adm-functionality/Makefile | 65 +++++++++++++++++++++++ tuned-adm-functionality/PURPOSE | 3 ++ tuned-adm-functionality/runtest.sh | 100 ++++++++++++++++++++++++++++++++++++ 10 files changed, 513 insertions(+) create mode 100644 check-system-settings/Makefile create mode 100644 check-system-settings/PURPOSE create mode 100755 check-system-settings/runtest.sh create mode 100644 profiles/Makefile create mode 100644 profiles/PURPOSE create mode 100755 profiles/runtest.sh create mode 100644 tests.yml create mode 100644 tuned-adm-functionality/Makefile create mode 100644 tuned-adm-functionality/PURPOSE create mode 100755 tuned-adm-functionality/runtest.sh diff --git a/check-system-settings/Makefile b/check-system-settings/Makefile new file mode 100644 index 0000000..747037b --- /dev/null +++ b/check-system-settings/Makefile @@ -0,0 +1,64 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/tuned/check-system-settings +# Description: Verify command which checks whether current system settings correspond to the set profile. +# Author: Tereza Cerna +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2015 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# 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, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +export TEST=/CoreOS/tuned/check-system-settings +export TESTVERSION=1.1 + +BUILT_FILES= + +FILES=$(METADATA) runtest.sh Makefile PURPOSE + +.PHONY: all install download clean + +run: $(FILES) build + ./runtest.sh + +build: $(BUILT_FILES) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Tereza Cerna " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Verify command which checks whether current system settings correspond to the set profile." >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 10m" >> $(METADATA) + @echo "RunFor: tuned" >> $(METADATA) + @echo "Requires: tuned" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2+" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Bug: 1212836 1243807" >> $(METADATA) + @echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/check-system-settings/PURPOSE b/check-system-settings/PURPOSE new file mode 100644 index 0000000..6a46619 --- /dev/null +++ b/check-system-settings/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/tuned/check-system-settings +Description: Verify command which checks whether current system settings correspond to the set profile. +Author: Tereza Cerna diff --git a/check-system-settings/runtest.sh b/check-system-settings/runtest.sh new file mode 100755 index 0000000..6662d42 --- /dev/null +++ b/check-system-settings/runtest.sh @@ -0,0 +1,90 @@ +#!/bin/bash +# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/tuned/check-system-settings +# Description: Verify command which checks whether current system settings correspond to the set profile. +# Author: Tereza Cerna +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2015 Red Hat, Inc. +# +# This program is free software: you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation, either version 2 of +# the License, or (at your option) any later version. +# +# 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, see http://www.gnu.org/licenses/. +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +# Include Beaker environment +. /usr/bin/rhts-environment.sh || exit 1 +. /usr/share/beakerlib/beakerlib.sh || exit 1 + +PACKAGE="tuned" +red=`tput setaf 1; tput bold;` +green=`tput setaf 2; tput bold;` +reset=`tput sgr0` + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlImport "tuned/basic" + rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory" + rlRun "pushd $TmpDir" + rlServiceStart "tuned" + tunedProfileBackup + rlPhaseEnd + + rlPhaseStartTest "Verify all profiles." + modprobe nf_conntrack + cd /usr/lib/tuned + for PROFILE in `tuned-adm list | grep "\- " | awk '{ print $2 }'` + do + rlLog "${green}Actual profile: $PROFILE${reset}" + rlRun "tuned-adm profile $PROFILE" + sleep 5 + rlRun "tuned-adm active | grep $PROFILE" + echo > /var/log/tuned/tuned.log; + rlRun "tuned-adm verify --ignore-missing" 0 "Current system setting corresponds with selected profile $PROFILE." + RESULT=$? + if [ $RESULT == 0 ]; then + echo "${green}---> Verification: PASS <---${reset}" + else + echo "${red}---> Verification: FAIL <--- ${reset}" + fi + echo "ERRORS in /var/log/tuned/tuned.log (This errors cannot be problem, only missing HW, etc.):" + tput setaf 1; + cat /var/log/tuned/tuned.log | grep ERROR + tput sgr0 + echo + done + cd - + rlPhaseEnd + + rlPhaseStartTest "Is error found by tuned-adm verify?" + rlRun "service tuned restart" + sleep 3 + rlRun "tuned-adm profile virtual-guest" + rlRun "tuned-adm active" + rlRun "tuned-adm verify --ignore-missing" 0 "Current system setting corresponds with selected profile $profile." + rlRun "sysctl vm.swappiness=77" + rlRun "tuned-adm verify --ignore-missing" 1 "Current system setting doens't correspond with selected profile $profile." + rlPhaseEnd + + rlPhaseStartCleanup + tunedProfileRestore + rlServiceRestore "tuned" + rlRun "popd" + rlRun "rm -r $TmpDir" 0 "Removing tmp directory" + rlPhaseEnd +rlJournalPrintText +rlJournalEnd diff --git a/profiles/Makefile b/profiles/Makefile new file mode 100644 index 0000000..1bef674 --- /dev/null +++ b/profiles/Makefile @@ -0,0 +1,66 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/tuned/profiles +# Description: Checks if profile changes are possible +# Author: Branislav Blaskovic +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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=/CoreOS/tuned/profiles +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) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Branislav Blaskovic " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Checks if profile changes are possible" >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 20m" >> $(METADATA) + @echo "RunFor: tuned" >> $(METADATA) + @echo "Requires: tuned tuned-profiles-compat tuned-profiles-atomic tuned-profiles-sap tuned-profiles-sap-hana" >> $(METADATA) + @echo "RhtsRequires: library(tuned/basic)" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + @echo "Bug: 1436590" >> $(METADATA) + + + rhts-lint $(METADATA) diff --git a/profiles/PURPOSE b/profiles/PURPOSE new file mode 100644 index 0000000..9631c9d --- /dev/null +++ b/profiles/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/tuned/profiles +Description: Checks if profile changes are possible +Author: Branislav Blaskovic diff --git a/profiles/runtest.sh b/profiles/runtest.sh new file mode 100755 index 0000000..b001b7e --- /dev/null +++ b/profiles/runtest.sh @@ -0,0 +1,102 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/tuned/profiles +# Description: Checks if profile changes are possible +# Author: Branislav Blaskovic +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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 Beaker environment +. /usr/bin/rhts-environment.sh +. /usr/lib/beakerlib/beakerlib.sh + +PACKAGE="tuned" +LOG_FILE="profile.log" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlImport "tuned/basic" + + rlFileBackup "/etc/rsyslog.conf" + rlFileBackup --clean "/etc/tuned.conf.bckp" + rlFileBackup --clean "/etc/sysconfig/ktune.bckp" + rlFileBackup --clean "/etc/rc.d/" + + tunedProfileBackup + rlServiceStart "tuned" + + # Set active profile to some default one + if rlIsRHEL 6 + then + rlRun "tuned-adm profile default" + else + rlRun "tuned-adm profile balanced" + fi + + #rlRun "setenforce 0" 0 "!!! stop selinux !!!" + RHTS_OPTION_STRONGER_AVC="" + rlPhaseEnd + + rlPhaseStartTest + rlRun "touch $LOG_FILE" + rlRun "ACTIVE=`tuned-adm active | grep "Current active profile:" | sed 's/Current active profile: //'`" + + IFS_BAK=$IFS + IFS=$'\n' + + # There can be comments in output of 'tuned-adm list', e.g. '- test-profile - comment' + for profile in `tuned-adm list | sed -n '/^-/ {s/- \+/ /g;s/\s\+\(\S\+\).*/\1/;p}'` + do + rlLog "====== $profile ======" + rlRun -s "tuned-adm profile \"$profile\" > start.stdout 2>start.stderr" + + # Debug + rlRun "cat $rlRun_LOG" + + rlAssertNotGrep "FAIL" "$rlRun_LOG" + rlAssertNotGrep "Invalid profile" "$rlRun_LOG" + + # Add outputs to log file + rlRun "echo \"[ $profile ]\" >> $LOG_FILE" + rlRun "cat $rlRun_LOG >> $LOG_FILE" + sleep 10 + done + + IFS=$IFS_BAK + rlPhaseEnd + + rlPhaseStartCleanup + unset RHTS_OPTION_STRONGER_AVC + #rlRun "setenforce 1" 0 "!!! run selinux !!!" + + rlRun "test $ACTIVE = "off" && tuned-adm off || tuned-adm profile $ACTIVE" + tunedProfileRestore + rlFileRestore + rlServiceRestore "tuned" + rlServiceStop "ktune" + rlBundleLogs "$LOG_FILE" + rlPhaseEnd + +rlJournalPrintText +rlJournalEnd diff --git a/tests.yml b/tests.yml new file mode 100644 index 0000000..3bba461 --- /dev/null +++ b/tests.yml @@ -0,0 +1,17 @@ +- hosts: localhost + tags: + - classic + - container + roles: + - role: standard-test-beakerlib + tests: + - check-system-settings + - profiles + - tuned-adm-functionality + required_packages: # Requires Library/base from tuned which needs to be ported before these tests will work. + - tuned + - tuned-profiles-atomic + - tuned-profiles-compat + - tuned-profiles-sap + - tuned-profiles-sap-hana + diff --git a/tuned-adm-functionality/Makefile b/tuned-adm-functionality/Makefile new file mode 100644 index 0000000..1bd0268 --- /dev/null +++ b/tuned-adm-functionality/Makefile @@ -0,0 +1,65 @@ +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Makefile of /CoreOS/tuned/tuned-adm-functionality +# Description: Check functionality of tuned-adm tool. +# Author: Tereza Cerna +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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=/CoreOS/tuned/tuned-adm-functionality +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) + test -x runtest.sh || chmod a+x runtest.sh + +clean: + rm -f *~ $(BUILT_FILES) + + +include /usr/share/rhts/lib/rhts-make.include + +$(METADATA): Makefile + @echo "Owner: Tereza Cerna " > $(METADATA) + @echo "Name: $(TEST)" >> $(METADATA) + @echo "TestVersion: $(TESTVERSION)" >> $(METADATA) + @echo "Path: $(TEST_DIR)" >> $(METADATA) + @echo "Description: Check functionality of tuned-adm tool." >> $(METADATA) + @echo "Type: Sanity" >> $(METADATA) + @echo "TestTime: 5m" >> $(METADATA) + @echo "RunFor: tuned" >> $(METADATA) + @echo "Requires: tuned" >> $(METADATA) + @echo "RhtsRequires: library(tuned/basic)" >> $(METADATA) + @echo "Priority: Normal" >> $(METADATA) + @echo "License: GPLv2" >> $(METADATA) + @echo "Bug: 1358857 1258755" >> $(METADATA) + @echo "Confidential: no" >> $(METADATA) + @echo "Destructive: no" >> $(METADATA) + + rhts-lint $(METADATA) diff --git a/tuned-adm-functionality/PURPOSE b/tuned-adm-functionality/PURPOSE new file mode 100644 index 0000000..b3dee3b --- /dev/null +++ b/tuned-adm-functionality/PURPOSE @@ -0,0 +1,3 @@ +PURPOSE of /CoreOS/tuned/tuned-adm-functionality +Description: Check functionality of tuned-adm tool. +Author: Tereza Cerna diff --git a/tuned-adm-functionality/runtest.sh b/tuned-adm-functionality/runtest.sh new file mode 100755 index 0000000..2683862 --- /dev/null +++ b/tuned-adm-functionality/runtest.sh @@ -0,0 +1,100 @@ +#!/bin/bash +# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# runtest.sh of /CoreOS/tuned/tuned-adm-functionality +# Description: Check functionality of tuned-adm tool. +# Author: Tereza Cerna +# +# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# +# Copyright (c) 2012 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 Beaker environment +. /usr/bin/rhts-environment.sh +. /usr/lib/beakerlib/beakerlib.sh + +PACKAGE="tuned" +LOG_FILE="profile.log" + +rlJournalStart + rlPhaseStartSetup + rlAssertRpm $PACKAGE + rlImport "tuned/basic" + tunedProfileBackup + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm LIST" + rlServiceStart "tuned" + rlRun "tuned-adm list" 0 + rlServiceStop "tuned" + rlRun "tuned-adm list" 0 + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm ACTIVE" + rlServiceStart "tuned" + rlRun "tuned-adm active" 0 + rlServiceStop "tuned" + rlRun "tuned-adm active" 0 + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm OFF" + rlServiceStart "tuned" + rlRun "tuned-adm off" 0 + rlServiceStop "tuned" + rlRun "tuned-adm off" 1 + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm PROFILE" + rlServiceStart "tuned" + rlRun "tuned-adm profile virtual-guest" 0 + sleep 5 + rlServiceStop "tuned" + rlRun "tuned-adm profile virtual-host" 0 + sleep 5 + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm PROFILE_INFO" + rlServiceStart "tuned" + rlRun "tuned-adm profile_info" 0 + rlServiceStop "tuned" + rlRun "tuned-adm profile_info" 0 + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm RECOMMEND" + rlServiceStart "tuned" + rlRun "tuned-adm recommend" 0 + rlServiceStop "tuned" + rlRun "tuned-adm recommend" 0 + rlPhaseEnd + + rlPhaseStartTest "Test tuned-adm VERIFY" + rlServiceStart "tuned" + rlRun "tuned-adm verify" 0 + rlServiceStop "tuned" + rlRun "tuned-adm verify" 1 + rlPhaseEnd + + rlPhaseStartCleanup + tunedProfileRestore + rlServiceRestore "tuned" + rlPhaseEnd + +rlJournalPrintText +rlJournalEnd -- cgit