Skip to content

Commit 1bb0299

Browse files
committed
Test for full DLFS drive syncing
1 parent 525cce2 commit 1bb0299

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

convex-core/src/test/java/convex/dlfs/DLFSTest.java

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -304,32 +304,33 @@ public void testBigFile() throws IOException {
304304
DLFileSystem driveA=DLFS.createLocal();
305305
DLFileSystem driveB=DLFS.createLocal();
306306

307+
long TS=1000;
307308
{ // create two files, check timestamp
308-
setDriveTimes(1000,driveA,driveB);
309+
setDriveTimes(TS,driveA,driveB);
309310
AVector<ACell> nodeA=driveA.createFile(driveA.getPath("foo"));
310311
AVector<ACell> nodeB=driveB.createFile(driveB.getPath("bar"));
311312
assertEquals(nodeA, nodeB); // should be identical nodes
312-
assertEquals(1000,DLFSNode.getUTime(nodeA).longValue());
313+
assertEquals(TS,DLFSNode.getUTime(nodeA).longValue());
313314

314-
assertEquals(1000,driveB.getFileAttributes(driveB.getPath("bar")).lastModifiedTime().toMillis());
315+
assertEquals(TS,driveB.getFileAttributes(driveB.getPath("bar")).lastModifiedTime().toMillis());
315316
}
316317

317318
{ // create two directory trees
318-
setDriveTimes(1001,driveA,driveB);
319+
setDriveTimes(TS+1,driveA,driveB);
319320
Files.createDirectories(driveA.getPath("tree/a"));
320321
Files.createDirectories(driveB.getPath("tree/b"));
321322
}
322323

323324
{ // create conflict at same time
324-
setDriveTimes(1002,driveA,driveB);
325+
setDriveTimes(TS+2,driveA,driveB);
325326
Files.createDirectories(driveA.getPath("conflict"));
326327
Files.createFile(driveB.getPath("conflict"));
327328
}
328329

329330
{ // create conflict at same time
330-
setDriveTimes(1003,driveA);
331+
setDriveTimes(TS+3,driveA);
331332
Files.createDirectories(driveA.getPath("conflict2"));
332-
setDriveTimes(1004,driveB);
333+
setDriveTimes(TS+4,driveB);
333334
Files.createFile(driveB.getPath("conflict2"));
334335
}
335336

@@ -344,21 +345,21 @@ public void testBigFile() throws IOException {
344345
assertTrue(Files.isRegularFile(driveA.getPath("conflict2"))); // should prefer newer timestamp from b
345346

346347
// root timestamp for drive A should be time of merge. Some files may be past that
347-
assertEquals(1003,driveA.getFileAttributes(driveA.getPath("/")).lastModifiedTime().toMillis());
348-
assertEquals(1004,driveA.getFileAttributes(driveA.getPath("/conflict2")).lastModifiedTime().toMillis());
348+
assertEquals(TS+3,driveA.getFileAttributes(driveA.getPath("/")).lastModifiedTime().toMillis());
349+
assertEquals(TS+4,driveA.getFileAttributes(driveA.getPath("/conflict2")).lastModifiedTime().toMillis());
349350

350-
setDriveTimes(1005,driveA,driveB);
351+
setDriveTimes(TS+5,driveA,driveB);
351352
driveB.replicate(driveA);
352353
assertTrue(Files.isRegularFile(driveB.getPath("conflict"))); // should prefer current value at same timestamp
353-
assertEquals(1005,Files.getLastModifiedTime(driveB.getPath("/")).toMillis()); // something got updated
354+
assertEquals(TS+5,Files.getLastModifiedTime(driveB.getPath("/")).toMillis()); // something got updated
354355

355356
// Delete conflicting file, should make a tombstone!
356357
Files.delete(driveA.getPath("conflict"));
357358

358359
// Replicate both ways, should get same root hash with no conflicts
359360
driveA.replicate(driveB);
360361
driveB.replicate(driveA);
361-
assertEquals(1005,Files.getLastModifiedTime(driveA.getPath("/")).toMillis()); // something got updated
362+
assertEquals(TS+5,Files.getLastModifiedTime(driveA.getPath("/")).toMillis()); // something got updated
362363
assertEquals(driveA.getRootHash(),driveB.getRootHash());
363364
}
364365

0 commit comments

Comments
 (0)