diff options
Diffstat (limited to 'src/yum/test')
-rw-r--r-- | src/yum/test/test_common.sh | 15 | ||||
-rwxr-xr-x | src/yum/test/yum_package.sh | 84 |
2 files changed, 76 insertions, 23 deletions
diff --git a/src/yum/test/test_common.sh b/src/yum/test/test_common.sh index 25d931f..1e5cd98 100644 --- a/src/yum/test/test_common.sh +++ b/src/yum/test/test_common.sh @@ -6,8 +6,7 @@ if [ -z $CLASS_NAME ]; then fi -url="http://localhost:5988/root/cimv2" -op="${url}:${cls}" +url="http://localhost:5988" fedora_release=`sed 's/Fedora release\s*\([0-9]\+\).*/\1/' \ /etc/fedora-release` @@ -18,6 +17,18 @@ function make_nevra() { printf "%s-%s:%s-%s.%s" $@ } +function make_op() { + local class_name keys + read class_name keys <<< "$@" + [ -n "$keys" ] && keys=".$keys" + printf "root/cimv2:$class_name$keys" +} + +computer_system_keys="CreationClassName=\"Linux_ComputerSystem\"" +computer_system_keys+=",Name=$(hostname)" +computer_system_op=`make_op Linux_ComputerSystem "$computer_system_keys"` +op=`make_op ${CLASS_NAME}` + function make_rpm_name() { local name epoch ver rel arch; if [ $# -ge 5 ]; then diff --git a/src/yum/test/yum_package.sh b/src/yum/test/yum_package.sh index c13cbe4..5d81955 100755 --- a/src/yum/test/yum_package.sh +++ b/src/yum/test/yum_package.sh @@ -4,6 +4,7 @@ dir=`dirname $0` [ -z "$dir" ] && dir=. CLASS_NAME="LMI_YumPackage" +. $dir/test_common.sh declare -A pkg1 pkg2 if [[ "$fedora_release" = 16 ]]; then @@ -84,10 +85,22 @@ test_install() { fi local keys=`make_inst_keys ${nevra_arr[@]}` - local url="$op.${keys}" - echo "creating instance of $CLASS_NAME: $url" - wbemerr ci "$url" "${keys},Release=\"$rel\"" - + local url="$url/$op.${keys}" + + echo "trying to get instance" + if ! wbemerr gi "$url" |& \ + grep -q '\<SoftwareElementState="\?1"\?'; then + echo "wrong SoftwareElementState" + exit 1 + fi + + echo "installing $CLASS_NAME: $url" + if ! wbemerr cm "$url" Install |& \ + grep -q '\<Install:\s*1\s\+Installed'; then + echo "wrong return code" + exit 1 + fi + if is_installed $name; then echo "successful installation" else @@ -95,10 +108,19 @@ test_install() { exit 1 fi + echo "checking get instance" + if ! wbemerr gi "$url" |& \ + grep -q '\<SoftwareElementState="\?2"\?'; then + echo "wrong SoftwareElementState" + exit 1 + fi + echo "testing installation of already installed package" - wbemcli ci "${url}" "${keys},Release=\"rel\"" |& \ - grep -q CIM_ERR_ALREADY_EXISTS && - echo "success" || echo "failed" + if ! wbemcli cm "${url}" Install |& \ + grep -q '\<Install:\s*0\s\+Installed'; then + echo "wrong return code" + exit 1 + fi } test_update() { @@ -126,9 +148,9 @@ test_update() { fi local keys=`make_inst_keys ${nevra_arr[@]}` - local url="$op.${keys}" - echo "intalling older package with $CLASS_NAME: $url" - wbemerr ci "$url" "${keys},Release=\"$rel\"" + local package_url="$url/$op.$keys" + echo "intalling older package with $CLASS_NAME: $package_url" + wbemerr cm "$package_url" Install if is_installed $name; then echo "successful installation" @@ -137,9 +159,15 @@ test_update() { exit 1 fi - echo "updating with ${CLASS_NAME}.Update()" - wbemerr cm "$url" "Update" | grep -q '\<Update:\s*1\s\+Installed' || \ + echo "updating with LMI_YumInstalledPackage.Update()" + + local installed_keys="Software=$op.$keys,System=$computer_system_op" + local installed_url="$url/`make_op LMI_YumInstalledPackage $installed_keys`" + if ! wbemerr cm "$installed_url" "Update" | \ + grep -q '\<Update:\s*1\s\+Installed'; then echo "wrong return code" + exit 1 + fi if is_installed_nevra $name $up_epoch $up_ver $up_rel $arch; then echo "successful update" @@ -149,13 +177,17 @@ test_update() { fi keys=`make_inst_keys $name $up_epoch $up_ver $up_rel $arch` - url2="${op}.${keys}" - echo "trying to update once more to: $url2" - wbemerr cm "$url2" "Update" | grep -q '\<Update:\s*0\s\+Installed' || \ + installed_keys="Software=$op.$keys,System=$computer_system_op" + local installed_url2="$url/`make_op LMI_YumInstalledPackage $installed_keys`" + echo "trying to update once more to: $installed_url2" + if ! wbemerr cm "$installed_url2" "Update" | \ + grep -q '\<Update:\s*0\s\+Installed'; then echo "wrong return code" + exit 1 + fi echo "removing updated package" - wbemerr di "$url2" + wbemerr di "$installed_url2" if is_installed $name; then echo "failed to remove ${name}" exit 1 @@ -167,11 +199,12 @@ test_update() { install_pkg "$@" || exit 1 echo "trying to update to not existing version-release" - wbemerr cm "$url" "Update.Version=\"not-existing-version\"" |& + wbemerr cm "$installed_url" "Update.Version=\"not-existing-version\"" |& grep -q CIM_ERR_NOT_FOUND && echo "ok" || echo "failed" echo "trying to update to the same version-release" - wbemerr cm "$url" "Update.Version=\"${ver}\",Release=\"${rel}\"" | \ + wbemerr cm "$installed_url" \ + "Update.Version=\"${ver}\",Release=\"${rel}\"" | \ grep -q '\<Update:\s*0\s\+Installed' || \ echo "wrong return code" @@ -183,7 +216,8 @@ test_update() { fi echo "trying to update to the specific version" - wbemerr cm "$url" "Update.Version=\"${up_ver}\",Release=\"${up_rel}\"" | + wbemerr cm "$installed_url" \ + "Update.Version=\"${up_ver}\",Release=\"${up_rel}\"" | grep -q '\<Update:\s*1\s\+Installed' || \ echo "wrong return code" @@ -210,13 +244,21 @@ test_remove() { fi local keys=`make_inst_keys ${nevra_arr[@]}` - local url="$op.${keys}" - wbemerr di "$url" + local installed_keys="Software=$op.$keys,System=$computer_system_op" + local installed_url="$url/`make_op LMI_YumInstalledPackage $installed_keys`" + wbemerr di "$installed_url" if is_installed $name; then echo "failed to remove ${name}" + exit 1 else echo "success" fi + local url="$url/$op.$keys" + if ! wbemerr gi "$url" |& \ + grep -q '\<SoftwareElementState="\?1"\?'; then + echo "wrong SoftwareElementState" + exit 1 + fi } |