diff --git a/design/database.txt b/design/database.txt index 7f079a60..fdb29cc4 100644 --- a/design/database.txt +++ b/design/database.txt @@ -88,6 +88,11 @@ Database: (lib/database.cpp) void Database :: save(); Saves the database to disk. + void Database :: clear(); + This function exists only if CONFIG_DEBUG is enabled. + Clear the database contents in-memory, but do NOT write + to disk. + void Database :: print() This function exists only If CONFIG_DEBUG is enabled. Following a similar format for writing to disk, print the diff --git a/include/database.h b/include/database.h index c98db53a..6b62b629 100644 --- a/include/database.h +++ b/include/database.h @@ -42,6 +42,7 @@ public: void save(); void load(); #ifdef CONFIG_DEBUG + void clear(); void print(); #endif /* CONFIG_DEBUG */ diff --git a/include/database.hpp b/include/database.hpp index b85dcb57..82693961 100644 --- a/include/database.hpp +++ b/include/database.hpp @@ -55,6 +55,14 @@ void Database :: load() file.close(); } +#ifdef CONFIG_DEBUG +template +void Database :: clear() +{ + db.clear(); + _size = 0; +} + template void Database :: print() { @@ -68,6 +76,7 @@ void Database :: print() :: print("\n"); } } +#endif /* CONFIG_DEBUG */ template unsigned int Database :: insert(T val) diff --git a/tests/database/database.cpp b/tests/database/database.cpp index 81004a23..2705e19d 100644 --- a/tests/database/database.cpp +++ b/tests/database/database.cpp @@ -149,6 +149,20 @@ void test_5() db.print(); } +/* + * Test the database's clear() function + */ +void test_6() +{ + print("\nTest 6\n"); + Database db("", DB_NORMAL); + for (unsigned int i = 0; i < 10; i++) + db.insert(DBTest(i)); + db.print(); + db.clear(); + db.print(); +} + int main(int argc, char **argv) { test_0(); @@ -157,6 +171,7 @@ int main(int argc, char **argv) test_3(); test_4(); test_5(); + test_6(); return 0; } diff --git a/tests/database/database.good b/tests/database/database.good index f0b89c83..ff295b7c 100644 --- a/tests/database/database.good +++ b/tests/database/database.good @@ -300052,3 +300052,19 @@ db[6] = 6 db[7] = 7 db[8] = 8 db[9] = 9 + +Test 6 +Database size: 10 +Valid rows: 10 +db[0] = 0 +db[1] = 1 +db[2] = 2 +db[3] = 3 +db[4] = 4 +db[5] = 5 +db[6] = 6 +db[7] = 7 +db[8] = 8 +db[9] = 9 +Database size: 0 +Valid rows: 0