use of com.android.server.DropBoxManagerService in project android_frameworks_base by crdroidandroid.
the class DropBoxTest method testSizeLimits.
public void testSizeLimits() throws Exception {
File dir = getEmptyDir("testSizeLimits");
int blockSize = new StatFs(dir.getPath()).getBlockSize();
// Limit storage to 10 blocks
int kb = blockSize * 10 / 1024;
ContentResolver cr = getContext().getContentResolver();
Settings.Global.putString(cr, Settings.Global.DROPBOX_QUOTA_KB, Integer.toString(kb));
// Three tags using a total of 12 blocks:
// DropBoxTest0 [ ][ ]
// DropBoxTest1 [x][ ][ ][ ][xxx(20 blocks)xxx]
// DropBoxTest2 [xxxxxxxxxx][ ][ ]
//
// The blocks marked "x" will be removed due to storage restrictions.
// Use random fill (so it doesn't compress), subtract a little for gzip overhead
final int overhead = 64;
long before = System.currentTimeMillis();
DropBoxManagerService service = new DropBoxManagerService(getContext(), dir);
DropBoxManager dropbox = new DropBoxManager(getContext(), service.getServiceStub());
addRandomEntry(dropbox, "DropBoxTest0", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest0", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize * 2 - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize * 20 - overhead);
addRandomEntry(dropbox, "DropBoxTest2", blockSize * 4 - overhead);
addRandomEntry(dropbox, "DropBoxTest2", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest2", blockSize - overhead);
DropBoxManager.Entry e0 = dropbox.getNextEntry(null, before);
DropBoxManager.Entry e1 = dropbox.getNextEntry(null, e0.getTimeMillis());
DropBoxManager.Entry e2 = dropbox.getNextEntry(null, e1.getTimeMillis());
DropBoxManager.Entry e3 = dropbox.getNextEntry(null, e2.getTimeMillis());
DropBoxManager.Entry e4 = dropbox.getNextEntry(null, e3.getTimeMillis());
DropBoxManager.Entry e5 = dropbox.getNextEntry(null, e4.getTimeMillis());
DropBoxManager.Entry e6 = dropbox.getNextEntry(null, e5.getTimeMillis());
DropBoxManager.Entry e7 = dropbox.getNextEntry(null, e6.getTimeMillis());
DropBoxManager.Entry e8 = dropbox.getNextEntry(null, e7.getTimeMillis());
DropBoxManager.Entry e9 = dropbox.getNextEntry(null, e8.getTimeMillis());
assertTrue(null == dropbox.getNextEntry(null, e9.getTimeMillis()));
assertEquals("DropBoxTest0", e0.getTag());
assertEquals("DropBoxTest0", e1.getTag());
assertEquals(blockSize - overhead, getEntrySize(e0));
assertEquals(blockSize - overhead, getEntrySize(e1));
assertEquals("DropBoxTest1", e2.getTag());
assertEquals("DropBoxTest1", e3.getTag());
assertEquals("DropBoxTest1", e4.getTag());
assertEquals("DropBoxTest1", e5.getTag());
assertEquals("DropBoxTest1", e6.getTag());
// Tombstone
assertEquals(-1, getEntrySize(e2));
assertEquals(blockSize - overhead, getEntrySize(e3));
assertEquals(blockSize * 2 - overhead, getEntrySize(e4));
assertEquals(blockSize - overhead, getEntrySize(e5));
assertEquals(-1, getEntrySize(e6));
assertEquals("DropBoxTest2", e7.getTag());
assertEquals("DropBoxTest2", e8.getTag());
assertEquals("DropBoxTest2", e9.getTag());
// Tombstone
assertEquals(-1, getEntrySize(e7));
assertEquals(blockSize - overhead, getEntrySize(e8));
assertEquals(blockSize - overhead, getEntrySize(e9));
e0.close();
e1.close();
e2.close();
e3.close();
e4.close();
e5.close();
e6.close();
e7.close();
e8.close();
e9.close();
// Specifying a tag name skips tombstone records.
DropBoxManager.Entry t0 = dropbox.getNextEntry("DropBoxTest1", before);
DropBoxManager.Entry t1 = dropbox.getNextEntry("DropBoxTest1", t0.getTimeMillis());
DropBoxManager.Entry t2 = dropbox.getNextEntry("DropBoxTest1", t1.getTimeMillis());
assertTrue(null == dropbox.getNextEntry("DropBoxTest1", t2.getTimeMillis()));
assertEquals("DropBoxTest1", t0.getTag());
assertEquals("DropBoxTest1", t1.getTag());
assertEquals("DropBoxTest1", t2.getTag());
assertEquals(blockSize - overhead, getEntrySize(t0));
assertEquals(blockSize * 2 - overhead, getEntrySize(t1));
assertEquals(blockSize - overhead, getEntrySize(t2));
t0.close();
t1.close();
t2.close();
}
use of com.android.server.DropBoxManagerService in project platform_frameworks_base by android.
the class DropBoxTest method testCreateDropBoxManagerWithInvalidDirectory.
public void testCreateDropBoxManagerWithInvalidDirectory() throws Exception {
// If created with an invalid directory, the DropBoxManager should suffer quietly
// and fail all operations (this is how it survives a full disk).
// Once the directory becomes possible to create, it will start working.
File dir = new File(getEmptyDir("testCreateDropBoxManagerWith"), "InvalidDirectory");
// Create an empty file
new FileOutputStream(dir).close();
DropBoxManagerService service = new DropBoxManagerService(getContext(), dir);
DropBoxManager dropbox = new DropBoxManager(getContext(), service.getServiceStub());
dropbox.addText("DropBoxTest", "should be ignored");
dropbox.addData("DropBoxTest", "should be ignored".getBytes(), 0);
assertTrue(null == dropbox.getNextEntry("DropBoxTest", 0));
// Remove the file so a directory can be created
dir.delete();
dropbox.addText("DropBoxTest", "TEST");
DropBoxManager.Entry e = dropbox.getNextEntry("DropBoxTest", 0);
assertTrue(null == dropbox.getNextEntry("DropBoxTest", e.getTimeMillis()));
assertEquals("DropBoxTest", e.getTag());
assertEquals("TEST", e.getText(80));
e.close();
}
use of com.android.server.DropBoxManagerService in project platform_frameworks_base by android.
the class DropBoxTest method testAddText.
public void testAddText() throws Exception {
File dir = getEmptyDir("testAddText");
DropBoxManagerService service = new DropBoxManagerService(getContext(), dir);
DropBoxManager dropbox = new DropBoxManager(getContext(), service.getServiceStub());
long before = System.currentTimeMillis();
Thread.sleep(5);
dropbox.addText("DropBoxTest", "TEST0");
Thread.sleep(5);
long between = System.currentTimeMillis();
Thread.sleep(5);
dropbox.addText("DropBoxTest", "TEST1");
dropbox.addText("DropBoxTest", "TEST2");
Thread.sleep(5);
long after = System.currentTimeMillis();
DropBoxManager.Entry e0 = dropbox.getNextEntry("DropBoxTest", before);
DropBoxManager.Entry e1 = dropbox.getNextEntry("DropBoxTest", e0.getTimeMillis());
DropBoxManager.Entry e2 = dropbox.getNextEntry("DropBoxTest", e1.getTimeMillis());
assertTrue(null == dropbox.getNextEntry("DropBoxTest", e2.getTimeMillis()));
assertTrue(e0.getTimeMillis() > before);
assertTrue(e0.getTimeMillis() < between);
assertTrue(e1.getTimeMillis() > between);
assertTrue(e1.getTimeMillis() < e2.getTimeMillis());
assertTrue(e2.getTimeMillis() < after);
assertEquals("TEST0", e0.getText(80));
assertEquals("TEST1", e1.getText(80));
assertEquals("TES", e2.getText(3));
e0.close();
e1.close();
e2.close();
}
use of com.android.server.DropBoxManagerService in project platform_frameworks_base by android.
the class DropBoxTest method testSizeLimits.
public void testSizeLimits() throws Exception {
File dir = getEmptyDir("testSizeLimits");
int blockSize = new StatFs(dir.getPath()).getBlockSize();
// Limit storage to 10 blocks
int kb = blockSize * 10 / 1024;
ContentResolver cr = getContext().getContentResolver();
Settings.Global.putString(cr, Settings.Global.DROPBOX_QUOTA_KB, Integer.toString(kb));
// Three tags using a total of 12 blocks:
// DropBoxTest0 [ ][ ]
// DropBoxTest1 [x][ ][ ][ ][xxx(20 blocks)xxx]
// DropBoxTest2 [xxxxxxxxxx][ ][ ]
//
// The blocks marked "x" will be removed due to storage restrictions.
// Use random fill (so it doesn't compress), subtract a little for gzip overhead
final int overhead = 64;
long before = System.currentTimeMillis();
DropBoxManagerService service = new DropBoxManagerService(getContext(), dir);
DropBoxManager dropbox = new DropBoxManager(getContext(), service.getServiceStub());
addRandomEntry(dropbox, "DropBoxTest0", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest0", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize * 2 - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest1", blockSize * 20 - overhead);
addRandomEntry(dropbox, "DropBoxTest2", blockSize * 4 - overhead);
addRandomEntry(dropbox, "DropBoxTest2", blockSize - overhead);
addRandomEntry(dropbox, "DropBoxTest2", blockSize - overhead);
DropBoxManager.Entry e0 = dropbox.getNextEntry(null, before);
DropBoxManager.Entry e1 = dropbox.getNextEntry(null, e0.getTimeMillis());
DropBoxManager.Entry e2 = dropbox.getNextEntry(null, e1.getTimeMillis());
DropBoxManager.Entry e3 = dropbox.getNextEntry(null, e2.getTimeMillis());
DropBoxManager.Entry e4 = dropbox.getNextEntry(null, e3.getTimeMillis());
DropBoxManager.Entry e5 = dropbox.getNextEntry(null, e4.getTimeMillis());
DropBoxManager.Entry e6 = dropbox.getNextEntry(null, e5.getTimeMillis());
DropBoxManager.Entry e7 = dropbox.getNextEntry(null, e6.getTimeMillis());
DropBoxManager.Entry e8 = dropbox.getNextEntry(null, e7.getTimeMillis());
DropBoxManager.Entry e9 = dropbox.getNextEntry(null, e8.getTimeMillis());
assertTrue(null == dropbox.getNextEntry(null, e9.getTimeMillis()));
assertEquals("DropBoxTest0", e0.getTag());
assertEquals("DropBoxTest0", e1.getTag());
assertEquals(blockSize - overhead, getEntrySize(e0));
assertEquals(blockSize - overhead, getEntrySize(e1));
assertEquals("DropBoxTest1", e2.getTag());
assertEquals("DropBoxTest1", e3.getTag());
assertEquals("DropBoxTest1", e4.getTag());
assertEquals("DropBoxTest1", e5.getTag());
assertEquals("DropBoxTest1", e6.getTag());
// Tombstone
assertEquals(-1, getEntrySize(e2));
assertEquals(blockSize - overhead, getEntrySize(e3));
assertEquals(blockSize * 2 - overhead, getEntrySize(e4));
assertEquals(blockSize - overhead, getEntrySize(e5));
assertEquals(-1, getEntrySize(e6));
assertEquals("DropBoxTest2", e7.getTag());
assertEquals("DropBoxTest2", e8.getTag());
assertEquals("DropBoxTest2", e9.getTag());
// Tombstone
assertEquals(-1, getEntrySize(e7));
assertEquals(blockSize - overhead, getEntrySize(e8));
assertEquals(blockSize - overhead, getEntrySize(e9));
e0.close();
e1.close();
e2.close();
e3.close();
e4.close();
e5.close();
e6.close();
e7.close();
e8.close();
e9.close();
// Specifying a tag name skips tombstone records.
DropBoxManager.Entry t0 = dropbox.getNextEntry("DropBoxTest1", before);
DropBoxManager.Entry t1 = dropbox.getNextEntry("DropBoxTest1", t0.getTimeMillis());
DropBoxManager.Entry t2 = dropbox.getNextEntry("DropBoxTest1", t1.getTimeMillis());
assertTrue(null == dropbox.getNextEntry("DropBoxTest1", t2.getTimeMillis()));
assertEquals("DropBoxTest1", t0.getTag());
assertEquals("DropBoxTest1", t1.getTag());
assertEquals("DropBoxTest1", t2.getTag());
assertEquals(blockSize - overhead, getEntrySize(t0));
assertEquals(blockSize * 2 - overhead, getEntrySize(t1));
assertEquals(blockSize - overhead, getEntrySize(t2));
t0.close();
t1.close();
t2.close();
}
use of com.android.server.DropBoxManagerService in project platform_frameworks_base by android.
the class DropBoxTest method testAddFile.
public void testAddFile() throws Exception {
File dir = getEmptyDir("testAddFile");
long before = System.currentTimeMillis();
File f0 = new File(dir, "f0.txt");
File f1 = new File(dir, "f1.txt.gz");
File f2 = new File(dir, "f2.dat");
File f3 = new File(dir, "f2.dat.gz");
FileWriter w0 = new FileWriter(f0);
GZIPOutputStream gz1 = new GZIPOutputStream(new FileOutputStream(f1));
FileOutputStream os2 = new FileOutputStream(f2);
GZIPOutputStream gz3 = new GZIPOutputStream(new FileOutputStream(f3));
w0.write("FILE0");
gz1.write("FILE1".getBytes());
os2.write("DATA2".getBytes());
gz3.write("DATA3".getBytes());
w0.close();
gz1.close();
os2.close();
gz3.close();
DropBoxManagerService service = new DropBoxManagerService(getContext(), dir);
DropBoxManager dropbox = new DropBoxManager(getContext(), service.getServiceStub());
dropbox.addFile("DropBoxTest", f0, DropBoxManager.IS_TEXT);
dropbox.addFile("DropBoxTest", f1, DropBoxManager.IS_TEXT | DropBoxManager.IS_GZIPPED);
dropbox.addFile("DropBoxTest", f2, 0);
dropbox.addFile("DropBoxTest", f3, DropBoxManager.IS_GZIPPED);
DropBoxManager.Entry e0 = dropbox.getNextEntry("DropBoxTest", before);
DropBoxManager.Entry e1 = dropbox.getNextEntry("DropBoxTest", e0.getTimeMillis());
DropBoxManager.Entry e2 = dropbox.getNextEntry("DropBoxTest", e1.getTimeMillis());
DropBoxManager.Entry e3 = dropbox.getNextEntry("DropBoxTest", e2.getTimeMillis());
assertTrue(null == dropbox.getNextEntry("DropBoxTest", e3.getTimeMillis()));
assertTrue(e0.getTimeMillis() > before);
assertTrue(e1.getTimeMillis() > e0.getTimeMillis());
assertTrue(e2.getTimeMillis() > e1.getTimeMillis());
assertTrue(e3.getTimeMillis() > e2.getTimeMillis());
assertEquals(DropBoxManager.IS_TEXT, e0.getFlags());
assertEquals(DropBoxManager.IS_TEXT, e1.getFlags());
assertEquals(0, e2.getFlags());
assertEquals(0, e3.getFlags());
assertEquals("FILE0", e0.getText(80));
byte[] buf1 = new byte[80];
assertEquals("FILE1", new String(buf1, 0, e1.getInputStream().read(buf1)));
assertTrue(null == e2.getText(80));
byte[] buf2 = new byte[80];
assertEquals("DATA2", new String(buf2, 0, e2.getInputStream().read(buf2)));
assertTrue(null == e3.getText(80));
byte[] buf3 = new byte[80];
assertEquals("DATA3", new String(buf3, 0, e3.getInputStream().read(buf3)));
e0.close();
e1.close();
e2.close();
e3.close();
}
Aggregations