Loading services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt +30 −12 Original line number Diff line number Diff line Loading @@ -91,10 +91,14 @@ open class AndroidPackageParsingTestBase { lateinit var newPackages: List<AndroidPackage> var failureInBeforeClass: Throwable? = null @Suppress("ConstantConditionIf") @JvmStatic @BeforeClass fun setUpPackages() { failureInBeforeClass = null try { this.oldPackages = apks.map { packageParser.parsePackage(it, PackageParser.PARSE_IS_SYSTEM_DIR, false) } Loading @@ -106,10 +110,17 @@ open class AndroidPackageParsingTestBase { if (DUMP_HPROF_TO_EXTERNAL) { System.gc() Environment.getExternalStorageDirectory() .resolve("${AndroidPackageParsingTestBase::class.java.simpleName}.hprof") .resolve( "${AndroidPackageParsingTestBase::class.java.simpleName}.hprof") .absolutePath .run(Debug::dumpHprofData) } } catch (t: Throwable) { // If we crash here we cause a tool failure (because we don't run any of the tests // in the subclasses, leading to a difference between expected and actual test // result counts). failureInBeforeClass = t } } fun oldAppInfo(pkg: PackageParser.Package, flags: Int = 0): ApplicationInfo? { Loading Loading @@ -137,6 +148,13 @@ open class AndroidPackageParsingTestBase { } } @org.junit.Before fun verifySetUpPackages() { failureInBeforeClass?.let { throw AssertionError("setUpPackages failed:", it) } } // The following methods dump an exact set of fields from the object to compare, because // 1. comprehensive equals/toStrings do not exist on all of the Info objects, and // 2. the test must only verify fields that [PackageParser.Package] can actually fill, as Loading Loading
services/tests/servicestests/src/com/android/server/pm/parsing/AndroidPackageParsingTestBase.kt +30 −12 Original line number Diff line number Diff line Loading @@ -91,10 +91,14 @@ open class AndroidPackageParsingTestBase { lateinit var newPackages: List<AndroidPackage> var failureInBeforeClass: Throwable? = null @Suppress("ConstantConditionIf") @JvmStatic @BeforeClass fun setUpPackages() { failureInBeforeClass = null try { this.oldPackages = apks.map { packageParser.parsePackage(it, PackageParser.PARSE_IS_SYSTEM_DIR, false) } Loading @@ -106,10 +110,17 @@ open class AndroidPackageParsingTestBase { if (DUMP_HPROF_TO_EXTERNAL) { System.gc() Environment.getExternalStorageDirectory() .resolve("${AndroidPackageParsingTestBase::class.java.simpleName}.hprof") .resolve( "${AndroidPackageParsingTestBase::class.java.simpleName}.hprof") .absolutePath .run(Debug::dumpHprofData) } } catch (t: Throwable) { // If we crash here we cause a tool failure (because we don't run any of the tests // in the subclasses, leading to a difference between expected and actual test // result counts). failureInBeforeClass = t } } fun oldAppInfo(pkg: PackageParser.Package, flags: Int = 0): ApplicationInfo? { Loading Loading @@ -137,6 +148,13 @@ open class AndroidPackageParsingTestBase { } } @org.junit.Before fun verifySetUpPackages() { failureInBeforeClass?.let { throw AssertionError("setUpPackages failed:", it) } } // The following methods dump an exact set of fields from the object to compare, because // 1. comprehensive equals/toStrings do not exist on all of the Info objects, and // 2. the test must only verify fields that [PackageParser.Package] can actually fill, as Loading