Skip to content

Added testcase for yum package #109

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions linux-tools/yum_test/00_Description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
Yum is a utility that can check for and automatically download and
install updated RPM packages. Dependencies are obtained and downloaded
automatically, prompting the user for permission as necessary.

Source RPM has many test scripts but yum-release-test.sh has all the
major functionality tests for yum.

yum-release-test.sh, executes some of the below options of yum command:
- update [package list]
- install <package list>
- remove <package list>
- list [package list]

Custom repository has been created for use by yum-release-test.sh
The repo is placed in test machine. Following is the list of packages
provided by the repo:

MyGroup1: yum1_rpm, yum2_rpm, yum3_rpm
MyGroup2: yum4_rpm, yum5_rpm
MyGroup3: yum11_rpm, yum12_rpm
yum14_rpm and yum5_rpm have updates
yum7_rpm has a dependency on yum6_rpm

11 changes: 11 additions & 0 deletions linux-tools/yum_test/control
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
AUTHOR = " Tejaswini Sambamurthy <tejaswin.linux.vnet.ibm.com> "
NAME = "yum_test"
TEST_CATEGORY = "Functional"
TEST_CLASS = "Linux Tools"
TEST_TYPE = "client"
TIME = 'SHORT'
DOC = '''
Test yum package
'''
path = ''
job.run_test('yum_test',test_path=path)
225 changes: 225 additions & 0 deletions linux-tools/yum_test/yum-release-test-script.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,225 @@
--- yum-release-test.sh.orig 2016-05-11 06:34:26.215585643 -0500
+++ yum-release-test.sh 2016-05-11 06:52:13.204522977 -0500
@@ -4,7 +4,7 @@
### Settings ##########################################
#######################################################

-USE_LOCAL_YUM_CONF=0
+USE_LOCAL_YUM_CONF=1

FIXWORKDIR=/tmp/yum-release-test

@@ -16,12 +16,12 @@
# path to executables
YUMBINARY=/home/ffesti/CVS/yum/yummain.py
YUMBINARY=yum
-YUMDOWNLOADER=(yumdownloader -d 0 --disablerepo=updates)
-YUMDOWNLOADERUPDATES=(yumdownloader -d 0 --enablerepo=updates)
+YUMDOWNLOADER=(yumdownloader -d 0 --disablerepo=myrepo-updates)
+YUMDOWNLOADERUPDATES=(yumdownloader -d 0 --enablerepo=myrepo-updates)

# for testing fedora releases
-YUM=($YUMBINARY -d 0 --installroot=$WORKDIR --disablerepo=updates )
-YUMUPDATES=($YUMBINARY -d 0 --installroot=$WORKDIR --enablerepo=updates )
+YUM=($YUMBINARY -d 0 --installroot=$WORKDIR --disablerepo=myrepo-updates )
+YUMUPDATES=($YUMBINARY -d 0 --installroot=$WORKDIR --enablerepo=myrepo-updates )

# for fedora devel
# XXX TODO
@@ -30,7 +30,7 @@

# Adjust size of base install
#DEFAULTGROUPS=("Office/Productivity" "GNOME Desktop Environment" "Games and Entertainment" "Sound and Video" "Graphical Internet" "System Tools" Core Base Editors "X Window System" )
-DEFAULTGROUPS=(Base Core)
+DEFAULTGROUPS=(MyGroup1 MyGroup2)



@@ -69,11 +69,11 @@
echo "yum groupinstall ${DEFAULTGROUPS[@]}"
"${YUM[@]}" -y groupinstall "${DEFAULTGROUPS[@]}"
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
- echo "Check for vim-minimal"
- "${RPM[@]}" -q vim-minimal > /dev/null
+ echo "Check for yum5_rpm"
+ "${RPM[@]}" -q yum5_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
else
- echo Omitting base install
+ echo Omitting MyGroup1 MyGroup2 install
fi

#"${YUMUPDATES[@]}" list updates
@@ -81,47 +81,47 @@
#exit 0

echo
-echo "yum remove vim-minimal"
-"${YUM[@]}" -y remove vim-minimal
+echo "yum remove yum5_rpm"
+"${YUM[@]}" -y remove yum5_rpm
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
-echo "Check if vim-minimal is removed"
-"${RPM[@]}" -q vim-minimal > /dev/null
+echo "Check if yum5_rpm is removed"
+"${RPM[@]}" -q yum5_rpm > /dev/null
if [ "X$?" == "X1" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo "yum install vim-minimal | cat"
-"${YUM[@]}" -y install vim-minimal | cat
+echo "yum install yum5_rpm | cat"
+"${YUM[@]}" -y install yum5_rpm | cat
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
-echo "Check vim-minimal"
-"${RPM[@]}" -q vim-minimal > /dev/null
+echo "Check yum5_rpm"
+"${RPM[@]}" -q yum5_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo "yum install bash (already installed)"
-"${YUM[@]}" install bash
+echo "yum install yum1_rpm (already installed)"
+"${YUM[@]}" install yum1_rpm
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
echo "yum install fOObAr (not available)"
"${YUM[@]}" install fOObAr
-if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
+if [ "X$?" == "X1" ] ; then echo " OK"; else echo " FAILED"; fi

if [ $WORKDIR != $FIXWORKDIR ] ; then

echo
- echo "yum groupinstall Graphics"
- "${YUM[@]}" -y groupinstall Graphics
+ echo "yum groupinstall MyGroup3"
+ "${YUM[@]}" -y groupinstall MyGroup3
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
- echo "Check gimp"
- "${RPM[@]}" -q gimp > /dev/null
+ echo "Check yum11_rpm"
+ "${RPM[@]}" -q yum11_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
- echo "yum groupremove Graphics"
- "${YUM[@]}" -y groupremove Graphics
+ echo "yum groupremove MyGroup3"
+ "${YUM[@]}" -y groupremove MyGroup3
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
- echo "Check if gimp is removed"
- "${RPM[@]}" -q gimp > /dev/null
+ echo "Check if yum11_rpm is removed"
+ "${RPM[@]}" -q yum11_rpm > /dev/null
if [ "X$?" == "X1" ] ; then echo " OK"; else echo " FAILED"; fi

echo
@@ -137,25 +137,23 @@
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo yumdownloader emacs
-"${YUMDOWNLOADER[@]}" --destdir $WORKDIR/tmp --resolve emacs
-"${YUMDOWNLOADER[@]}" --destdir $WORKDIR/tmp --resolve emacs-common
+echo yumdownloader yum14_rpm
+"${YUMDOWNLOADER[@]}" --destdir $WORKDIR/tmp --resolve yum14_rpm
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
-echo yum localinstall emacs\*.rpm
+echo yum localinstall yum14_rpm\*.rpm
"${YUM[@]}" localinstall -y $WORKDIR/tmp/*.rpm
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi
-echo "Check emacs"
-"${RPM[@]}" -q emacs > /dev/null
+echo "Check yum14_rpm"
+"${RPM[@]}" -q yum14_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

rm -f $WORKDIR/tmp/*.rpm

echo
-echo yumdownloader emacs
-"${YUMDOWNLOADERUPDATES[@]}" --destdir $WORKDIR/tmp --resolve emacs
-"${YUMDOWNLOADERUPDATES[@]}" --destdir $WORKDIR/tmp --resolve emacs-common
-echo yum localupdate emacs\*.rpm
-"${YUM[@]}" localupdate -y $WORKDIR/tmp/emacs*.rpm
+echo yumdownloader yum14_rpm
+"${YUMDOWNLOADERUPDATES[@]}" --destdir $WORKDIR/tmp --resolve yum14_rpm
+echo yum localupdate yum14_rpm\*.rpm
+"${YUM[@]}" localupdate -y $WORKDIR/tmp/yum14_rpm*.rpm
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
@@ -167,27 +165,16 @@
if [ "X$?" == "X100" ] ; then echo " OK"; else echo " FAILED or uptodate"; fi

echo
-echo yum update glibc
-GLIBC=`"${RPM[@]}" -q glibc`
-"${YUMUPDATES[@]}" -y update glibc
-UGLIBC=`"${RPM[@]}" -q glibc`
+echo yum update yum5_rpm
+GLIBC=`"${RPM[@]}" -q yum5_rpm`
+"${YUMUPDATES[@]}" -y update yum5_rpm
+UGLIBC=`"${RPM[@]}" -q yum5_rpm`
if [ "$GLIBC" != "$UGLIBC" ] ; then
echo " OK";
else
echo " FAILED or uptodate";
fi

-echo
-echo yum update
-KERNEL=`"${RPM[@]}" -q kernel`
-"${YUMUPDATES[@]}" -y update
-UKERNEL=`"${RPM[@]}" -q kernel`
-if [ "$KERNEL" != "$UKERNEL" ] ; then
- echo " OK";
-else
- echo " FAILED or uptodate";
-fi
-
echo
echo "yum --version"
"${YUM[@]}" --version
@@ -199,28 +186,28 @@
# etc

echo
-echo "yum search kernel"
-"${YUM[@]}" search kernel > /dev/null
+echo "yum search yum10_rpm"
+"${YUM[@]}" search yum10_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo "yum provides kernel"
-"${YUM[@]}" provides kernel > /dev/null
+echo "yum provides yum10_rpm"
+"${YUM[@]}" provides yum10_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo "yum info kernel"
-"${YUM[@]}" info kernel > /dev/null
+echo "yum info yum10_rpm"
+"${YUM[@]}" info yum10_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo "yum groupinfo Core"
-"${YUM[@]}" groupinfo Core > /dev/null
+echo "yum groupinfo MyGroup1"
+"${YUM[@]}" groupinfo MyGroup1 > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
-echo "yum deplist bash"
-"${YUM[@]}" deplist bash > /dev/null
+echo "yum deplist yum7_rpm"
+"${YUM[@]}" deplist yum7_rpm > /dev/null
if [ "X$?" == "X0" ] ; then echo " OK"; else echo " FAILED"; fi

echo
101 changes: 101 additions & 0 deletions linux-tools/yum_test/yum.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
#!/bin/sh
###########################################################################################
## Copyright 2003, 2016 IBM Corp ##
## ##
## Redistribution and use in source and binary forms, with or without modification, ##
## are permitted provided that the following conditions are met: ##
## 1.Redistributions of source code must retain the above copyright notice, ##
## this list of conditions and the following disclaimer. ##
## 2.Redistributions in binary form must reproduce the above copyright notice, this ##
## list of conditions and the following disclaimer in the documentation and/or ##
## other materials provided with the distribution. ##
## ##
## THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS AND ANY EXPRESS ##
## OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ##
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ##
## THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ##
## EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ##
## SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ##
## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ##
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ##
## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ##
############################################################################################
#
# File : yum.sh
#
# Description: Test the tools of yum package.
#
# Author: Tejaswini Sambamurthy <tejaswin.linux.vnet.ibm.com>
# Hariharan T S <[email protected]>
#
################################################################################
# source the utility functions
################################################################################
#cd `dirname $0`
#LTPBIN=${LTPBIN%/shared}/yum
source $LTPBIN/tc_utils.source
source $LTPBIN/domain_names.source
TESTS_DIR="${LTPBIN%/shared}/yum_test"

REQUIRED="yum yumdownloader"

################################################################################
# test functions
################################################################################
function tc_local_setup()
{
REPOLINK="http://$TEST1_AUSLAB/yumtestrepo/myrepo"
UPDATESREPOLINK="http://$TEST1_AUSLAB/yumtestrepo/updatesrepo"
DISTROYUMREPO="/etc/yum.repos.d/myrepo.repo"

tc_exec_or_break $REQUIRED

cat > $DISTROYUMREPO <<- REPODATA
[myrepo]
name=This is myrepo
baseurl=$REPOLINK
enabled=1
gpgcheck=0

[myrepo-updates]
name=This is my updates repo
baseurl=$UPDATESREPOLINK
enabled=1
gpgcheck=0
REPODATA

}

function tc_local_cleanup()
{
# Remove the testrepo under /etc/yum.repos.d
rm -rf $DISTROYUMREPO

yum clean all >$stdout 2>$stderr
tc_fail_if_bad $? "yum clean failed in clenaup" || return
}

function run_test()
{
pushd $TESTS_DIR &> /dev/null
tc_register "yum"
./yum-release-test.sh 1>$stdout 2>$stderr
RC=$?
tc_ignore_warnings "^$\|There is no installed groups file\|Maybe run: yum groups mark convert\|No environment named MyGroup3 exists"
if [ `grep -vc "Error: Nothing to do" $stderr` -eq 0 ];then cat /dev/null > $stderr; fi
grep -q FAILED $stdout
if [ $? -eq 0 ]; then
tc_fail "yum failed"
else
tc_pass_or_fail $RC "test failed"
fi

popd &> /dev/null
}

################################################################################
# MAIN
################################################################################
TST_TOTAL=1
tc_setup
run_test
Loading