Fix is_package_installed() check with dpkg
is_package_installed() incorrectly returned '0' for packages that
had 'un' status in the dpkg database.
Change-Id: I81b77486c2ed7717ed81cb2c2572fe6c4b394ffc
diff --git a/tests/functions.sh b/tests/functions.sh
index 27a6cfe..7d486d4 100755
--- a/tests/functions.sh
+++ b/tests/functions.sh
@@ -367,3 +367,25 @@
else
echo "is_package_installed() on non-existing package failed"
fi
+
+# test against removed package...was a bug on Ubuntu
+if is_ubuntu; then
+ PKG=cowsay
+ if ! (dpkg -s $PKG >/dev/null 2>&1); then
+ # it was never installed...set up the condition
+ sudo apt-get install -y cowsay >/dev/null 2>&1
+ fi
+ if (dpkg -s $PKG >/dev/null 2>&1); then
+ # remove it to create the 'un' status
+ sudo dpkg -P $PKG >/dev/null 2>&1
+ fi
+
+ # now test the installed check on a deleted package
+ is_package_installed $PKG
+ VAL=$?
+ if [[ "$VAL" -ne 0 ]]; then
+ echo "OK"
+ else
+ echo "is_package_installed() on deleted package failed"
+ fi
+fi