Loading tests/AndroidTests/src/com/android/unit_tests/AsecTests.java +157 −72 Original line number Diff line number Diff line Loading @@ -78,6 +78,60 @@ public class AsecTests extends AndroidTestCase { } } private boolean containerExists(String localId) throws RemoteException { IMountService ms = getMs(); String[] containers = ms.getSecureContainerList(); String fullId = "com.android.unittests.AsecTests." + localId; for (int i = 0; i < containers.length; i++) { if (containers[i].equals(fullId)) { return true; } } return false; } private int createContainer(String localId, int size, String key) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.createSecureContainer(fullId, size, "fat", key, android.os.Process.myUid()); } private int mountContainer(String localId, String key) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.mountSecureContainer(fullId, key, android.os.Process.myUid()); } private int renameContainer(String localId1, String localId2) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId1 = "com.android.unittests.AsecTests." + localId1; String fullId2 = "com.android.unittests.AsecTests." + localId2; IMountService ms = getMs(); return ms.renameSecureContainer(fullId1, fullId2); } private int unmountContainer(String localId, boolean force) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.unmountSecureContainer(fullId, force); } private int destroyContainer(String localId, boolean force) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.destroySecureContainer(fullId, force); } private IMountService getMs() { IBinder service = ServiceManager.getService("mount"); if (service != null) { Loading @@ -100,143 +154,174 @@ public class AsecTests extends AndroidTestCase { } public void testCreateContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testCreateContainer", 4, "none")); Assert.assertEquals(true, containerExists("testCreateContainer")); } catch (Exception e) { failStr(e); } } public void testCreateMinSizeContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testCreateContainer", 1, "none")); Assert.assertEquals(true, containerExists("testCreateContainer")); } catch (Exception e) { failStr(e); } } public void testCreateZeroSizeContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateZeroSizeContainer", 0, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, createContainer("testCreateZeroContainer", 0, "none")); } catch (Exception e) { failStr(e); } } public void testCreateMinSizeContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); public void testCreateDuplicateContainer() { try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateMinSizeContainer", 1, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testCreateDupContainer", 4, "none")); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, createContainer("testCreateDupContainer", 4, "none")); } catch (Exception e) { failStr(e); } } public void testDestroyContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testDestroyContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testDestroyContainer", true); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testDestroyContainer", 4, "none")); Assert.assertEquals(StorageResultCode.OperationSucceeded, destroyContainer("testDestroyContainer", false)); } catch (Exception e) { failStr(e); } } public void testMountContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer( "com.android.unittests.AsecTests.testMountContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testMountContainer", 4, "none")); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testMountContainer", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testMountContainer", false)); rc = ms.mountSecureContainer("com.android.unittests.AsecTests.testMountContainer", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, mountContainer("testMountContainer", "none")); } catch (Exception e) { failStr(e); } } public void testMountBadKey() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer( "com.android.unittests.AsecTests.testMountBadKey", 4, "fat", "00000000000000000000000000000000", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testMountBadKey", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); rc = ms.mountSecureContainer( "com.android.unittests.AsecTests.testMountBadKey", "00000000000000000000000000000001", 1001); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc); rc = ms.mountSecureContainer( "com.android.unittests.AsecTests.testMountBadKey", "none", 1001); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testMountBadKey", 4, "00000000000000000000000000000000")); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testMountBadKey", false)); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, mountContainer("testMountContainer", "000000000000000000000000000000001")); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, mountContainer("testMountContainer", "none")); } catch (Exception e) { failStr(e); } } public void testUnmountBusyContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testUnmountBusyContainer", 4, "none")); String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testUnmountBusyContainer"); Context con = super.getContext(); File f = new File(path, "reference"); FileOutputStream fos = new FileOutputStream(f); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, rc); fos.close(); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, unmountContainer("testUnmountBusyContainer", false)); fos.close(); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testUnmountBusyContainer", false)); } catch (Exception e) { failStr(e); } } public void testDestroyBusyContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testDestroyBusyContainer", 4, "none")); String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testUnmountBusyContainer"); Context con = super.getContext(); String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testDestroyBusyContainer"); File f = new File(path, "reference"); FileOutputStream fos = new FileOutputStream(f); rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, rc); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, destroyContainer("testDestroyBusyContainer", false)); fos.close(); Assert.assertEquals(StorageResultCode.OperationSucceeded, destroyContainer("testDestroyBusyContainer", false)); } catch (Exception e) { failStr(e); } } public void testRenameContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.1", 4, "none")); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testRenameContainer.1", false)); Assert.assertEquals(StorageResultCode.OperationSucceeded, renameContainer("testRenameContainer.1", "testRenameContainer.2")); Assert.assertEquals(false, containerExists("testRenameContainer.1")); Assert.assertEquals(true, containerExists("testRenameContainer.2")); } catch (Exception e) { failStr(e); } } public void testRenameMountedContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.1", 4, "none")); Assert.assertEquals(StorageResultCode.OperationFailedStorageMounted, renameContainer("testRenameContainer.1", "testRenameContainer.2")); } catch (Exception e) { failStr(e); } } public void testRenameToExistingContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.1", 4, "none")); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.2", 4, "none")); rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationFailedStorageMounted, renameContainer("testRenameContainer.1", "testRenameContainer.2")); } catch (Exception e) { failStr(e); } Loading Loading
tests/AndroidTests/src/com/android/unit_tests/AsecTests.java +157 −72 Original line number Diff line number Diff line Loading @@ -78,6 +78,60 @@ public class AsecTests extends AndroidTestCase { } } private boolean containerExists(String localId) throws RemoteException { IMountService ms = getMs(); String[] containers = ms.getSecureContainerList(); String fullId = "com.android.unittests.AsecTests." + localId; for (int i = 0; i < containers.length; i++) { if (containers[i].equals(fullId)) { return true; } } return false; } private int createContainer(String localId, int size, String key) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.createSecureContainer(fullId, size, "fat", key, android.os.Process.myUid()); } private int mountContainer(String localId, String key) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.mountSecureContainer(fullId, key, android.os.Process.myUid()); } private int renameContainer(String localId1, String localId2) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId1 = "com.android.unittests.AsecTests." + localId1; String fullId2 = "com.android.unittests.AsecTests." + localId2; IMountService ms = getMs(); return ms.renameSecureContainer(fullId1, fullId2); } private int unmountContainer(String localId, boolean force) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.unmountSecureContainer(fullId, force); } private int destroyContainer(String localId, boolean force) throws RemoteException { Assert.assertTrue(isMediaMounted()); String fullId = "com.android.unittests.AsecTests." + localId; IMountService ms = getMs(); return ms.destroySecureContainer(fullId, force); } private IMountService getMs() { IBinder service = ServiceManager.getService("mount"); if (service != null) { Loading @@ -100,143 +154,174 @@ public class AsecTests extends AndroidTestCase { } public void testCreateContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testCreateContainer", 4, "none")); Assert.assertEquals(true, containerExists("testCreateContainer")); } catch (Exception e) { failStr(e); } } public void testCreateMinSizeContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testCreateContainer", 1, "none")); Assert.assertEquals(true, containerExists("testCreateContainer")); } catch (Exception e) { failStr(e); } } public void testCreateZeroSizeContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateZeroSizeContainer", 0, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, createContainer("testCreateZeroContainer", 0, "none")); } catch (Exception e) { failStr(e); } } public void testCreateMinSizeContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); public void testCreateDuplicateContainer() { try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testCreateMinSizeContainer", 1, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testCreateDupContainer", 4, "none")); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, createContainer("testCreateDupContainer", 4, "none")); } catch (Exception e) { failStr(e); } } public void testDestroyContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testDestroyContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testDestroyContainer", true); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testDestroyContainer", 4, "none")); Assert.assertEquals(StorageResultCode.OperationSucceeded, destroyContainer("testDestroyContainer", false)); } catch (Exception e) { failStr(e); } } public void testMountContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer( "com.android.unittests.AsecTests.testMountContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testMountContainer", 4, "none")); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testMountContainer", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testMountContainer", false)); rc = ms.mountSecureContainer("com.android.unittests.AsecTests.testMountContainer", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, mountContainer("testMountContainer", "none")); } catch (Exception e) { failStr(e); } } public void testMountBadKey() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer( "com.android.unittests.AsecTests.testMountBadKey", 4, "fat", "00000000000000000000000000000000", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testMountBadKey", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); rc = ms.mountSecureContainer( "com.android.unittests.AsecTests.testMountBadKey", "00000000000000000000000000000001", 1001); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc); rc = ms.mountSecureContainer( "com.android.unittests.AsecTests.testMountBadKey", "none", 1001); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testMountBadKey", 4, "00000000000000000000000000000000")); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testMountBadKey", false)); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, mountContainer("testMountContainer", "000000000000000000000000000000001")); Assert.assertEquals(StorageResultCode.OperationFailedInternalError, mountContainer("testMountContainer", "none")); } catch (Exception e) { failStr(e); } } public void testUnmountBusyContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testUnmountBusyContainer", 4, "none")); String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testUnmountBusyContainer"); Context con = super.getContext(); File f = new File(path, "reference"); FileOutputStream fos = new FileOutputStream(f); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, rc); fos.close(); rc = ms.unmountSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, unmountContainer("testUnmountBusyContainer", false)); fos.close(); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testUnmountBusyContainer", false)); } catch (Exception e) { failStr(e); } } public void testDestroyBusyContainer() { Assert.assertTrue(isMediaMounted()); IMountService ms = getMs(); try { int rc = ms.createSecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", 4, "fat", "none", android.os.Process.myUid()); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testDestroyBusyContainer", 4, "none")); String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testUnmountBusyContainer"); Context con = super.getContext(); String path = ms.getSecureContainerPath("com.android.unittests.AsecTests.testDestroyBusyContainer"); File f = new File(path, "reference"); FileOutputStream fos = new FileOutputStream(f); rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, rc); Assert.assertEquals(StorageResultCode.OperationFailedStorageBusy, destroyContainer("testDestroyBusyContainer", false)); fos.close(); Assert.assertEquals(StorageResultCode.OperationSucceeded, destroyContainer("testDestroyBusyContainer", false)); } catch (Exception e) { failStr(e); } } public void testRenameContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.1", 4, "none")); Assert.assertEquals(StorageResultCode.OperationSucceeded, unmountContainer("testRenameContainer.1", false)); Assert.assertEquals(StorageResultCode.OperationSucceeded, renameContainer("testRenameContainer.1", "testRenameContainer.2")); Assert.assertEquals(false, containerExists("testRenameContainer.1")); Assert.assertEquals(true, containerExists("testRenameContainer.2")); } catch (Exception e) { failStr(e); } } public void testRenameMountedContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.1", 4, "none")); Assert.assertEquals(StorageResultCode.OperationFailedStorageMounted, renameContainer("testRenameContainer.1", "testRenameContainer.2")); } catch (Exception e) { failStr(e); } } public void testRenameToExistingContainer() { try { Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.1", 4, "none")); Assert.assertEquals(StorageResultCode.OperationSucceeded, createContainer("testRenameContainer.2", 4, "none")); rc = ms.destroySecureContainer("com.android.unittests.AsecTests.testUnmountBusyContainer", false); Assert.assertEquals(StorageResultCode.OperationSucceeded, rc); Assert.assertEquals(StorageResultCode.OperationFailedStorageMounted, renameContainer("testRenameContainer.1", "testRenameContainer.2")); } catch (Exception e) { failStr(e); } Loading