From 01a5aa95d9068f2babdc37ef7a98e280f1d0e6bc Mon Sep 17 00:00:00 2001 From: Nick Kralevich Date: Wed, 3 Sep 2014 20:03:17 +0000 Subject: [PATCH] Revert "SELinuxMMAC unit tests" Broken build. frameworks/base/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java:89: error: constructor PackageParser in class PackageParser cannot be applied to given types; PackageParser packageParser = new PackageParser(archiveFilePath); ^ required: no arguments found: String reason: actual and formal argument lists differ in length frameworks/base/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java:93: error: method parsePackage in class PackageParser cannot be applied to given types; PackageParser.Package pkg = packageParser.parsePackage(sourceFile, ^ required: File,int found: File,String,DisplayMetrics,int reason: actual and formal argument lists differ in length frameworks/base/services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java:99: error: incompatible types boolean savedCerts = packageParser.collectCertificates(pkg, 0); ^ required: boolean found: void Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 3 errors make: *** [out/target/common/obj/APPS/FrameworksServicesTests_intermediates/classes-full-debug.jar] Error 41 This reverts commit 2f446561f2f6d1b320b34432854d2f55e5b56f9e. Change-Id: I0aa992d7b9eccce7e38c430a8a96084a6ee99866 --- .../servicestests/res/raw/mmac_cnsps_ds.xml | 15 -- .../servicestests/res/raw/mmac_cnsps_nd.xml | 11 - .../servicestests/res/raw/mmac_csnp_ds.xml | 13 - .../servicestests/res/raw/mmac_csnp_nd.xml | 8 - .../servicestests/res/raw/mmac_csps_ds.xml | 16 -- .../servicestests/res/raw/mmac_csps_nd.xml | 12 - .../servicestests/res/raw/mmac_nc_ds.xml | 8 - .../servicestests/res/raw/mmac_nc_nd.xml | 3 - .../servicestests/res/raw/signed_platform.apk | Bin 2902 -> 0 bytes .../servicestests/res/raw/signed_release.apk | Bin 2895 -> 0 bytes .../android/server/pm/SELinuxMMACTests.java | 247 ------------------ 11 files changed, 333 deletions(-) delete mode 100644 services/tests/servicestests/res/raw/mmac_cnsps_ds.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_cnsps_nd.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_csnp_ds.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_csnp_nd.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_csps_ds.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_csps_nd.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_nc_ds.xml delete mode 100644 services/tests/servicestests/res/raw/mmac_nc_nd.xml delete mode 100644 services/tests/servicestests/res/raw/signed_platform.apk delete mode 100644 services/tests/servicestests/res/raw/signed_release.apk delete mode 100644 services/tests/servicestests/src/com/android/server/pm/SELinuxMMACTests.java diff --git a/services/tests/servicestests/res/raw/mmac_cnsps_ds.xml b/services/tests/servicestests/res/raw/mmac_cnsps_ds.xml deleted file mode 100644 index df32dc73012a3..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_cnsps_ds.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_cnsps_nd.xml b/services/tests/servicestests/res/raw/mmac_cnsps_nd.xml deleted file mode 100644 index b6ffc58d4523f..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_cnsps_nd.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_csnp_ds.xml b/services/tests/servicestests/res/raw/mmac_csnp_ds.xml deleted file mode 100644 index 4471278723e92..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_csnp_ds.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_csnp_nd.xml b/services/tests/servicestests/res/raw/mmac_csnp_nd.xml deleted file mode 100644 index 2b79f73e1f6f0..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_csnp_nd.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_csps_ds.xml b/services/tests/servicestests/res/raw/mmac_csps_ds.xml deleted file mode 100644 index 62b8e5ffe219a..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_csps_ds.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_csps_nd.xml b/services/tests/servicestests/res/raw/mmac_csps_nd.xml deleted file mode 100644 index a568f94a3d885..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_csps_nd.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_nc_ds.xml b/services/tests/servicestests/res/raw/mmac_nc_ds.xml deleted file mode 100644 index a5b7ef8145233..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_nc_ds.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/services/tests/servicestests/res/raw/mmac_nc_nd.xml b/services/tests/servicestests/res/raw/mmac_nc_nd.xml deleted file mode 100644 index ef9c6dd707658..0000000000000 --- a/services/tests/servicestests/res/raw/mmac_nc_nd.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/services/tests/servicestests/res/raw/signed_platform.apk b/services/tests/servicestests/res/raw/signed_platform.apk deleted file mode 100644 index aadcdeafa2cf11bfd19850b75c141d3afa0840bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2902 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 N=LFaE_=I=9{suo*2_XOg diff --git a/services/tests/servicestests/res/raw/signed_release.apk b/services/tests/servicestests/res/raw/signed_release.apk deleted file mode 100644 index af50f45854f707fb5ccefda3dc7d4e190dcb4fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2895 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 - * {@code - * cd $ANDROID_BUILD_TOP - * make -j8 FrameworksServicesTests - * adb install -r out/target/product/mako/data/app/FrameworksServicesTests.apk - * adb shell am instrument -w -e class com.android.server.pm.SELinuxMMACTests com.android.frameworks.servicestests/android.test.InstrumentationTestRunner - * } - * - */ -public class SELinuxMMACTests extends AndroidTestCase { - - private static final String TAG = "SELinuxMMACTests"; - - private static File MAC_INSTALL_TMP; - private static File APK_INSTALL_TMP; - - private static final String MAC_INSTALL_TMP_NAME = "macperms_test_policy"; - private static final String APK_INSTALL_TMP_NAME = "test_install.apk"; - - @Override - protected void setUp() throws Exception { - super.setUp(); - - // Use the test apps data directory as scratch space - File filesDir = mContext.getFilesDir(); - assertNotNull(filesDir); - - // Need a tmp file to hold mmac policy - MAC_INSTALL_TMP = new File(filesDir, MAC_INSTALL_TMP_NAME); - - // Need a tmp file to hold the apk - APK_INSTALL_TMP = new File(filesDir, APK_INSTALL_TMP_NAME); - } - - @Override - protected void tearDown() throws Exception { - super.tearDown(); - - // Just in case tmp files still exist - MAC_INSTALL_TMP.delete(); - APK_INSTALL_TMP.delete(); - } - - /** - * Fake an app install. Simply call the PackageParser to parse and save the - * contents of the app. - */ - private PackageParser.Package parsePackage(Uri packageURI) { - // Package archive parsing - String archiveFilePath = packageURI.getPath(); - PackageParser packageParser = new PackageParser(archiveFilePath); - File sourceFile = new File(archiveFilePath); - DisplayMetrics metrics = new DisplayMetrics(); - metrics.setToDefaults(); - PackageParser.Package pkg = packageParser.parsePackage(sourceFile, - archiveFilePath, metrics, 0); - assertNotNull(pkg); - assertNotNull(pkg.packageName); - - // Collect the certs for this package - boolean savedCerts = packageParser.collectCertificates(pkg, 0); - assertTrue(savedCerts); - - return pkg; - } - - /** - * Dump the contents of a resource to a file. This is just an ancillary function - * used for copying the apk and mac_permissions.xml policy files. - */ - private Uri getResourceURI(int fileResId, File outFile) { - try (InputStream is = mContext.getResources().openRawResource(fileResId)) { - boolean copied = FileUtils.copyToFile(is, outFile); - assertTrue(copied); - } catch (NotFoundException | IOException ex) { - fail("Expecting to load resource with id: " + fileResId + ". " + ex); - } - - return Uri.fromFile(outFile); - } - - /** - * Takes the policy xml file as a resource, the apk as a resource and the expected - * seinfo string. Determines if the assigned seinfo string matches the passed string. - */ - private void checkSeinfo(int policyRes, int apkRes, String expectedSeinfo) { - // Grab policy file as a uri - Uri policyURI = getResourceURI(policyRes, MAC_INSTALL_TMP); - - // Parse the policy file - boolean parsed = SELinuxMMAC.readInstallPolicy(policyURI.getPath()); - assertTrue(parsed); - - // Grab the apk as a uri - Uri apkURI = getResourceURI(apkRes, APK_INSTALL_TMP); - - // "install" the apk - PackageParser.Package pkg = parsePackage(apkURI); - - // Assign the apk an seinfo value - SELinuxMMAC.assignSeinfoValue(pkg); - - // Check for expected seinfo against assigned seinfo value - String actualSeinfo = pkg.applicationInfo.seinfo; - if (expectedSeinfo == null) { - assertNull(actualSeinfo); - } else { - assertEquals(expectedSeinfo, actualSeinfo); - } - - // delete policy and apk - MAC_INSTALL_TMP.delete(); - APK_INSTALL_TMP.delete(); - } - - /* - * Start of the SElinuxMMAC tests - */ - - // Requested policy file doesn't exist - public void test_INSTALL_POLICY_BADPATH() { - boolean ret = SELinuxMMAC.readInstallPolicy("/d/o/e/s/n/t/e/x/i/s/t"); - assertFalse(ret); - } - - /* - * Raw resource xml file names can be decoded with: - * c = signature stanza included - * s = seinfo tag attached - * p = package tag attached - * d = default stanza included - * n = means the next abbreviation is missing - * - * Example: R.raw.mmac_csps_ds.xml would translate to a signer stanza - * with a seinfo tag attached followed by an inner child package tag which - * has an seinfo tag. Also, there is a default stanza with an attached - * seinfo tag. - */ - - // signer stanza (seinfo, no package), no default stanza : match signer - public void test_CSNP_ND() { - checkSeinfo(R.raw.mmac_csnp_nd, R.raw.signed_platform, "signer"); - } - - // signer stanza (seinfo, no package), no default stanza : match nothing - public void test_CSNP_ND_2() { - checkSeinfo(R.raw.mmac_csnp_nd, R.raw.signed_release, null); - } - - // signer stanza (seinfo, package), no default stanza : match inner package - public void test_CSPS_ND() { - checkSeinfo(R.raw.mmac_csps_nd, R.raw.signed_platform, "package"); - } - - // signer stanza (seinfo, package), no default stanza : match nothing - public void test_CSPS_ND_2() { - checkSeinfo(R.raw.mmac_csps_nd, R.raw.signed_release, null); - } - - // signer stanza (no seinfo, package), no default stanza : match inner package - public void test_CNSPS_ND() { - checkSeinfo(R.raw.mmac_cnsps_nd, R.raw.signed_platform, "package"); - } - - // signer stanza (no seinfo, package), no default stanza : match nothing - public void test_CNSPS_ND_2() { - checkSeinfo(R.raw.mmac_cnsps_nd, R.raw.signed_release, null); - } - - // signer stanza (seinfo, no package), default stanza : match signer - public void test_CSNP_DS() { - checkSeinfo(R.raw.mmac_csnp_ds, R.raw.signed_platform, "signer"); - } - - // signer stanza (seinfo, no package), default stanza : match default - public void test_CSNP_DS_2() { - checkSeinfo(R.raw.mmac_csnp_ds, R.raw.signed_release, "default"); - } - - // signer stanza (seinfo, package), default stanza : match inner package - public void test_CSPS_DS() { - checkSeinfo(R.raw.mmac_csps_ds, R.raw.signed_platform, "package"); - } - - // signer stanza (seinfo, package), default stanza : match default - public void test_CSPS_DS_2() { - checkSeinfo(R.raw.mmac_csps_ds, R.raw.signed_release, "default"); - } - - // signer stanza (no seinfo, package), default stanza : match inner package - public void test_CNSPS_DS() { - checkSeinfo(R.raw.mmac_cnsps_ds, R.raw.signed_platform, "package"); - } - - // signer stanza (no seinfo, package), default stanza : match default - public void test_CNSPS_DS_2() { - checkSeinfo(R.raw.mmac_cnsps_ds, R.raw.signed_release, "default"); - } - - // no signer stanza, default stanza : match default - public void test_NC_DS() { - checkSeinfo(R.raw.mmac_nc_ds, R.raw.signed_platform, "default"); - } - - // Test for empty policy (i.e. no stanzas at all) : match nothing - public void test_NC_ND() { - checkSeinfo(R.raw.mmac_nc_nd, R.raw.signed_platform, null); - } -}