Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b7c24702 authored by Kenny Root's avatar Kenny Root
Browse files

Better error reporting for PackageManager tests

The unit tests were eating failure reasons. Remove some assertions so
the useful messages percolate up to the JUnit report.

Change-Id: Ica8efe403ca3eb4f0c4f2a18939a22085f74a08f
parent 52c5acac
Loading
Loading
Loading
Loading
+25 −17
Original line number Original line Diff line number Diff line
@@ -170,11 +170,10 @@ public class PackageManagerTests extends AndroidTestCase {
        return ipm;
        return ipm;
    }
    }


    public boolean invokeInstallPackage(Uri packageURI, int flags, GenericReceiver receiver) {
    public void invokeInstallPackage(Uri packageURI, int flags, GenericReceiver receiver,
            boolean shouldSucceed) {
        PackageInstallObserver observer = new PackageInstallObserver();
        PackageInstallObserver observer = new PackageInstallObserver();
        final boolean received = false;
        mContext.registerReceiver(receiver, receiver.filter);
        mContext.registerReceiver(receiver, receiver.filter);
        final boolean DEBUG = true;
        try {
        try {
            // Wait on observer
            // Wait on observer
            synchronized(observer) {
            synchronized(observer) {
@@ -192,10 +191,24 @@ public class PackageManagerTests extends AndroidTestCase {
                    if(!observer.isDone()) {
                    if(!observer.isDone()) {
                        fail("Timed out waiting for packageInstalled callback");
                        fail("Timed out waiting for packageInstalled callback");
                    }
                    }

                    if (shouldSucceed) {
                        if (observer.returnCode != PackageManager.INSTALL_SUCCEEDED) {
                        if (observer.returnCode != PackageManager.INSTALL_SUCCEEDED) {
                        Log.i(TAG, "Failed to install with error code = " + observer.returnCode);
                            fail("Package installation should have succeeded, but got code "
                        return false;
                                    + observer.returnCode);
                        }
                    } else {
                        if (observer.returnCode == PackageManager.INSTALL_SUCCEEDED) {
                            fail("Package installation should fail");
                        }

                        /*
                         * We'll never expect get a notification since we
                         * shouldn't succeed.
                         */
                        return;
                    }
                    }

                    // Verify we received the broadcast
                    // Verify we received the broadcast
                    waitTime = 0;
                    waitTime = 0;
                    while((!receiver.isDone()) && (waitTime < MAX_WAIT_TIME) ) {
                    while((!receiver.isDone()) && (waitTime < MAX_WAIT_TIME) ) {
@@ -209,7 +222,6 @@ public class PackageManagerTests extends AndroidTestCase {
                    if(!receiver.isDone()) {
                    if(!receiver.isDone()) {
                        fail("Timed out waiting for PACKAGE_ADDED notification");
                        fail("Timed out waiting for PACKAGE_ADDED notification");
                    }
                    }
                    return receiver.received;
                }
                }
            }
            }
        } finally {
        } finally {
@@ -588,7 +600,7 @@ public class PackageManagerTests extends AndroidTestCase {
                }
                }
            } else {
            } else {
                InstallReceiver receiver = new InstallReceiver(pkg.packageName);
                InstallReceiver receiver = new InstallReceiver(pkg.packageName);
                assertTrue(invokeInstallPackage(packageURI, flags, receiver));
                invokeInstallPackage(packageURI, flags, receiver, true);
                // Verify installed information
                // Verify installed information
                assertInstall(pkg, flags, expInstallLocation);
                assertInstall(pkg, flags, expInstallLocation);
            }
            }
@@ -705,14 +717,10 @@ public class PackageManagerTests extends AndroidTestCase {
            receiver = new InstallReceiver(ip.pkg.packageName);
            receiver = new InstallReceiver(ip.pkg.packageName);
        }
        }
        try {
        try {
            try {
            invokeInstallPackage(ip.packageURI, flags, receiver, replace);
                assertEquals(invokeInstallPackage(ip.packageURI, flags, receiver), replace);
            if (replace) {
            if (replace) {
                assertInstall(ip.pkg, flags, ip.pkg.installLocation);
                assertInstall(ip.pkg, flags, ip.pkg.installLocation);
            }
            }
            } catch (Exception e) {
                failStr("Failed with exception : " + e);
            }
        } finally {
        } finally {
            cleanUpInstall(ip);
            cleanUpInstall(ip);
        }
        }
@@ -1244,7 +1252,7 @@ public class PackageManagerTests extends AndroidTestCase {
        GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName);
        GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName);
        int replaceFlags = rFlags | PackageManager.INSTALL_REPLACE_EXISTING;
        int replaceFlags = rFlags | PackageManager.INSTALL_REPLACE_EXISTING;
        try {
        try {
            assertEquals(invokeInstallPackage(ip.packageURI, replaceFlags, receiver), true);
            invokeInstallPackage(ip.packageURI, replaceFlags, receiver, true);
            assertInstall(ip.pkg, rFlags, ip.pkg.installLocation);
            assertInstall(ip.pkg, rFlags, ip.pkg.installLocation);
        } catch (Exception e) {
        } catch (Exception e) {
            failStr("Failed with exception : " + e);
            failStr("Failed with exception : " + e);
@@ -1271,7 +1279,7 @@ public class PackageManagerTests extends AndroidTestCase {
        GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName);
        GenericReceiver receiver = new ReplaceReceiver(ip.pkg.packageName);
        int replaceFlags = rFlags | PackageManager.INSTALL_REPLACE_EXISTING;
        int replaceFlags = rFlags | PackageManager.INSTALL_REPLACE_EXISTING;
        try {
        try {
            assertEquals(invokeInstallPackage(ip.packageURI, replaceFlags, receiver), true);
            invokeInstallPackage(ip.packageURI, replaceFlags, receiver, true);
            assertInstall(ip.pkg, iFlags, ip.pkg.installLocation);
            assertInstall(ip.pkg, iFlags, ip.pkg.installLocation);
        } catch (Exception e) {
        } catch (Exception e) {
            failStr("Failed with exception : " + e);
            failStr("Failed with exception : " + e);