Skip to content
This repository has been archived by the owner on Jul 26, 2022. It is now read-only.

Commit

Permalink
New cleanup options tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pimotte committed Aug 12, 2014
1 parent ff5d798 commit e0bda79
Show file tree
Hide file tree
Showing 3 changed files with 113 additions and 3 deletions.
12 changes: 9 additions & 3 deletions syncany-lib/src/main/java/org/syncany/config/Config.java
Expand Up @@ -304,6 +304,14 @@ public File getLocalDir() {
public File getDatabaseDir() {
return databaseDir;
}

public File getLogDir() {
return logDir;
}

public File getStateDir() {
return stateDir;
}

public SaltedSecretKey getMasterKey() {
return masterKey;
Expand All @@ -321,7 +329,5 @@ public File getCleanupFile() {
return new File(stateDir, FILE_CLEANUP);
}

public File getLogDir() {
return logDir;
}

}
Expand Up @@ -435,4 +435,107 @@ public void testCleanupAfterFailedUpOperation() throws Exception {
clientA.deleteTestData();
clientB.deleteTestData();
}

@Test
public void testCleanupMaxDatabaseFiles() throws Exception {
// Setup
LocalConnection testConnection = (LocalConnection) TestConfigUtil.createTestLocalConnection();
TestClient clientA = new TestClient("A", testConnection);

CleanupOperationOptions options = new CleanupOperationOptions();
options.setMergeRemoteFiles(true);
options.setRemoveOldVersions(true);
options.setKeepVersionsCount(10);
options.setMaxDatabaseFiles(3);

// Run

// A: Create some file versions
clientA.createNewFile("file.jpg");
for (int i=1; i<=4; i++) {
clientA.changeFile("file.jpg");
clientA.upWithForceChecksum();
}


// B: Cleanup
CleanupOperationResult cleanupOperationResult = clientA.cleanup(options);
assertEquals(CleanupResultCode.OK, cleanupOperationResult.getResultCode());
assertEquals(4, cleanupOperationResult.getMergedDatabaseFilesCount());
assertEquals(0, cleanupOperationResult.getRemovedMultiChunks().size());
assertEquals(0, cleanupOperationResult.getRemovedOldVersionsCount());

TestClient clientB = new TestClient("B", testConnection);
clientB.down();


// B: Create some file versions
clientB.createNewFile("file-B.jpg");
for (int i=1; i<=6; i++) {
clientB.changeFile("file-B.jpg");
clientB.upWithForceChecksum();
}

// B: Cleanup (2 clients, so 7 databases is too much)
cleanupOperationResult = clientB.cleanup(options);
assertEquals(CleanupResultCode.OK, cleanupOperationResult.getResultCode());
assertEquals(7, cleanupOperationResult.getMergedDatabaseFilesCount());
assertEquals(0, cleanupOperationResult.getRemovedMultiChunks().size());
assertEquals(0, cleanupOperationResult.getRemovedOldVersionsCount());

// Tear down
clientA.deleteTestData();
clientB.deleteTestData();
}


@Test
public void testQuickDoubleCleanup() throws Exception {
// Setup
LocalConnection testConnection = (LocalConnection) TestConfigUtil.createTestLocalConnection();
TestClient clientA = new TestClient("A", testConnection);

CleanupOperationOptions options = new CleanupOperationOptions();
options.setMergeRemoteFiles(true);
options.setRemoveOldVersions(false);
options.setMinSecondsBetweenCleanups(40000000);

// Run

// A: Create some file versions
clientA.createNewFile("file.jpg");
for (int i=1; i<=16; i++) {
clientA.changeFile("file.jpg");
clientA.upWithForceChecksum();
}


// B: Cleanup
CleanupOperationResult cleanupOperationResult = clientA.cleanup(options);
assertEquals(CleanupResultCode.OK, cleanupOperationResult.getResultCode());
assertEquals(16, cleanupOperationResult.getMergedDatabaseFilesCount());
assertEquals(0, cleanupOperationResult.getRemovedMultiChunks().size());
assertEquals(0, cleanupOperationResult.getRemovedOldVersionsCount());

for (int i=1; i<=15; i++) {
clientA.changeFile("file.jpg");
clientA.upWithForceChecksum();
}

// Because of minimum timeout, this cleanup should not do anything
cleanupOperationResult = clientA.cleanup(options);
assertEquals(CleanupResultCode.OK_NOTHING_DONE, cleanupOperationResult.getResultCode());

// When force is on, the cleanup should go through
options.setForce(true);

cleanupOperationResult = clientA.cleanup(options);
assertEquals(CleanupResultCode.OK, cleanupOperationResult.getResultCode());
assertEquals(16, cleanupOperationResult.getMergedDatabaseFilesCount());
assertEquals(0, cleanupOperationResult.getRemovedMultiChunks().size());
assertEquals(0, cleanupOperationResult.getRemovedOldVersionsCount());

// Tear down
clientA.deleteTestData();
}
}
Expand Up @@ -212,6 +212,7 @@ public static Config createTestLocalConfig(String machineName, TransferSettings
config.getCacheDir().mkdirs();
config.getDatabaseDir().mkdirs();
config.getLogDir().mkdirs();
config.getStateDir().mkdirs();

// Write to config folder (required for some tests)
new Persister().write(configTO, new File(config.getAppDir()+"/"+Config.FILE_CONFIG));
Expand Down

0 comments on commit e0bda79

Please sign in to comment.