Parcourir la source

[1329] added a test case with a DB that doesn't have diffs table.

JINMEI Tatuya il y a 13 ans
Parent
commit
5d290088a1

+ 13 - 0
src/lib/datasrc/tests/sqlite3_accessor_unittest.cc

@@ -1099,4 +1099,17 @@ TEST_F(SQLite3Update, addDiffWithUpdate) {
 
 
     checkDiffs(expected_stored, accessor->getRecordDiff(zone_id));
     checkDiffs(expected_stored, accessor->getRecordDiff(zone_id));
 }
 }
+
+TEST_F(SQLite3Update, addDiffWithNoTable) {
+    // An attempt of adding diffs to an old version of database that doesn't
+    // have a diffs table.  This will fail in preparing the statement.
+    initAccessor(SQLITE_DBFILE_EXAMPLE + ".nodiffs", "IN");
+    zone_id = accessor->startUpdateZone("example.com.", false).second;
+    copy(diff_begin_data, diff_begin_data + DatabaseAccessor::DIFF_PARAM_COUNT,
+         diff_params);
+    EXPECT_THROW(accessor->addRecordDiff(zone_id, getVersion(diff_begin_data),
+                                         getOperation(diff_begin_data),
+                                         diff_params),
+                 SQLite3Error);
+}
 } // end anonymous namespace
 } // end anonymous namespace

BIN
src/lib/datasrc/tests/testdata/test.sqlite3.nodiffs