diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c01fe6c00..75a010b2f 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -8,8 +8,7 @@ include_directories (${CMAKE_SOURCE_DIR} set (test_SRCS att.t autocomplete.t color.t config.t date.t directory.t dom.t duration.t file.t i18n.t json.t list.t nibbler.t path.t rx.t - t.t t2.t taskmod.t tdb.t tdb2.t text.t uri.t util.t view.t - json_test) + t.t t2.t taskmod.t tdb2.t text.t uri.t util.t view.t json_test) add_custom_target (test ./run_all DEPENDS ${test_SRCS} WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test) diff --git a/test/taskmod.t.cpp b/test/taskmod.t.cpp index eea882cdb..652f20b74 100644 --- a/test/taskmod.t.cpp +++ b/test/taskmod.t.cpp @@ -27,7 +27,6 @@ #include #include #include -//#include #include #include #include diff --git a/test/tdb.t.cpp b/test/tdb.t.cpp deleted file mode 100644 index 8db4ef98d..000000000 --- a/test/tdb.t.cpp +++ /dev/null @@ -1,174 +0,0 @@ -//////////////////////////////////////////////////////////////////////////////// -// taskwarrior - a command line task list manager. -// -// Copyright 2006 - 2011, Paul Beckingham, Federico Hernandez. -// All rights reserved. -// -// This program is free software; you can redistribute it and/or modify it under -// the terms of the GNU General Public License as published by the Free Software -// Foundation; either version 2 of the License, or (at your option) any later -// version. -// -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -// details. -// -// You should have received a copy of the GNU General Public License along with -// this program; if not, write to the -// -// Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, -// Boston, MA -// 02110-1301 -// USA -// -//////////////////////////////////////////////////////////////////////////////// -#include -#include - -#include -#include - -Context context; - -//////////////////////////////////////////////////////////////////////////////// -void get (std::vector & pending, std::vector & completed) -{ - TDB tdb; - tdb.location ("."); - tdb.lock (); - tdb.loadPending (pending); - tdb.loadCompleted (completed); - tdb.unlock (); -} - -//////////////////////////////////////////////////////////////////////////////// -int main (int argc, char** argv) -{ - UnitTest t (22); - - try - { - // Remove any residual test file. - unlink ("./pending.data"); - unlink ("./completed.data"); - unlink ("./undo.data"); - - // Set the context to allow GC. - context.config.set ("gc", "on"); - - // Try reading an empty database. - std::vector all; - std::vector pending; - std::vector completed; - get (pending, completed); - t.ok (pending.size () == 0, "TDB Read empty pending"); - t.ok (completed.size () == 0, "TDB Read empty completed"); - - // Add without commit. - TDB tdb; - tdb.location ("."); - tdb.lock (); - Task task ("[name:\"value\"]"); - tdb.add (task); // P0 C0 N1 M0 - tdb.unlock (); - - pending.clear (); - completed.clear (); - get (pending, completed); - - t.ok (pending.size () == 0, "TDB add -> no commit -> empty"); - t.ok (completed.size () == 0, "TDB add -> no commit -> empty"); - - // Add with commit. - tdb.lock (); - tdb.add (task); // P0 C0 N1 M0 - tdb.commit (); // P1 C0 N0 M0 - tdb.unlock (); - - get (pending, completed); - t.ok (pending.size () == 1, "TDB add -> commit -> saved"); - t.is (pending[0].get ("name"), "value", "TDB load name=value"); - t.is (pending[0].id, 1, "TDB load verification id=1"); - t.ok (completed.size () == 0, "TDB add -> commit -> saved"); - - // Update with commit. - pending.clear (); - completed.clear (); - - tdb.lock (); - tdb.load (all); - all[0].set ("name", "value2"); - tdb.update (all[0]); // P1 C0 N0 M1 - tdb.commit (); // P1 C0 N0 M0 - tdb.unlock (); - - pending.clear (); - completed.clear (); - get (pending, completed); - - t.ok (all.size () == 1, "TDB update -> commit -> saved"); - t.is (all[0].get ("name"), "value2", "TDB load name=value2"); - t.is (all[0].id, 1, "TDB load verification id=1"); - - // GC. - all.clear (); - - tdb.lock (); - tdb.loadPending (all); - all[0].setStatus (Task::completed); - tdb.update (all[0]); // P1 C0 N0 M1 - Task t2 ("[foo:\"bar\" status:\"pending\"]"); - tdb.add (t2); // P1 C0 N1 M1 - tdb.commit (); - tdb.unlock (); - - pending.clear (); - completed.clear (); - get (pending, completed); - - t.is (pending.size (), (size_t)2, "TDB before gc pending #2"); - t.is (pending[0].id, 1, "TDB before gc pending id 1"); - t.is (pending[0].getStatus (), Task::completed, "TDB before gc pending status completed"); - t.is (pending[1].id, 2, "TDB before gc pending id 2"); - t.is (pending[1].getStatus (), Task::pending, "TDB before gc pending status pending"); - t.is (completed.size (), (size_t)0, "TDB before gc completed 0"); - - tdb.gc (); // P1 C1 N0 M0 - - pending.clear (); - completed.clear (); - get (pending, completed); - - t.is (pending.size (), (size_t)1, "TDB after gc pending #1"); - t.is (pending[0].id, 1, "TDB after gc pending id 2"); - t.is (pending[0].getStatus (), Task::pending, "TDB after gc pending status pending"); - t.is (completed.size (), (size_t)1, "TDB after gc completed #1"); - t.is (completed[0].getStatus (), Task::completed, "TDB after gc completed status completed"); - } - - catch (std::string& error) - { - t.diag (error); - return -1; - } - - catch (...) - { - t.diag ("Unknown error."); - return -2; - } - - rmdir ("./extensions"); - unlink ("./pending.data"); - unlink ("./completed.data"); - unlink ("./undo.data"); - unlink ("./backlog.data"); - unlink ("./synch.key"); - - return 0; -} - -//////////////////////////////////////////////////////////////////////////////// -