void testImport (String destBackendType, String srcBackendType, int64 seedValue) { DummyScheduler scheduler; File const node_db (File::createTempFile ("node_db")); StringPairArray srcParams; srcParams.set ("type", srcBackendType); srcParams.set ("path", node_db.getFullPathName ()); // Create a batch Batch batch; createPredictableBatch (batch, 0, numObjectsToTest, seedValue); // Write to source db { ScopedPointer <Database> src (Database::New ("test", scheduler, srcParams)); storeBatch (*src, batch); } Batch copy; { // Re-open the db ScopedPointer <Database> src (Database::New ("test", scheduler, srcParams)); // Set up the destination database File const dest_db (File::createTempFile ("dest_db")); StringPairArray destParams; destParams.set ("type", destBackendType); destParams.set ("path", dest_db.getFullPathName ()); ScopedPointer <Database> dest (Database::New ("test", scheduler, destParams)); beginTestCase (String ("import into '") + destBackendType + "' from '" + srcBackendType + "'"); // Do the import dest->import (*src); // Get the results of the import fetchCopyOfBatch (*dest, ©, batch); } // Canonicalize the source and destination batches std::sort (batch.begin (), batch.end (), NodeObject::LessThan ()); std::sort (copy.begin (), copy.end (), NodeObject::LessThan ()); expect (areBatchesEqual (batch, copy), "Should be equal"); }