summaryrefslogtreecommitdiffstats
path: root/kpilot/tests/testdatabase.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kpilot/tests/testdatabase.cc')
-rw-r--r--kpilot/tests/testdatabase.cc316
1 files changed, 0 insertions, 316 deletions
diff --git a/kpilot/tests/testdatabase.cc b/kpilot/tests/testdatabase.cc
deleted file mode 100644
index 02b43c6b..00000000
--- a/kpilot/tests/testdatabase.cc
+++ /dev/null
@@ -1,316 +0,0 @@
-/* testdatabase KPilot
-**
-** Copyright (C) 2005 by Adriaan de Groot <groot@kde.org)
-**
-** Test the functions related to local databases.
-*/
-
-/*
-** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU Lesser General Public License as published by
-** the Free Software Foundation; either version 2.1 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 Lesser General Public License for more details.
-**
-** You should have received a copy of the GNU Lesser General Public License
-** along with this program in a file called COPYING; if not, write to
-** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-** MA 02110-1301, USA.
-*/
-
-/*
-** Bug reports and questions can be sent to kde-pim@kde.org
-*/
-
-#include "options.h"
-
-#include <kaboutdata.h>
-#include <kapplication.h>
-#include <kdebug.h>
-#include <klocale.h>
-#include <kcmdlineargs.h>
-
-#include "pilotLocalDatabase.h"
-#include "pilotRecord.h"
-#include "pilotMemo.h"
-
-
-/* Return values for the various check* functions. They
- return OK if all is OK; ERR is for generic errors.
- ERR_NO_EXIST is returned if something (usually a database
- or other file) doesn't exist that should. The latter
- error might be ignored.
-*/
-#define OK (0)
-#define ERR (1)
-#define ERR_NO_EXIST (2)
-
-
-/* Data about the records in a database. The id field is
- interpreted specially for the first and last entries.
-*/
-typedef struct { int id,size; } recordInfo;
-
-/* Use END in the last recordInfo struct describing a database
- to indicate you expect the database to end there. Use NO_EXIST
- as the ID in the first struct to indicate that the database
- is expected _not_ to exist.
-*/
-#define NO_EXIST (-2)
-#define END (-1)
-
-/* These tables of data are taken from various databases I have
- (but which I cannot commit to SVN due to license issues).
- The aesop listing is from an eBook of Aesop's fables.
- The way to create these tables is to use a third-party
- tool such as par to read the database:
-
- ./par l /tmp/Aesop.pdb | awk '{print "{",$3,",",$4,"},";}'
-
-*/
-recordInfo nonexistent[] = {
- { NO_EXIST, 0 }
-} ;
-
-recordInfo aesop[] = {
-{ 7307264 , 214 },
-{ 7307265 , 1564 },
-{ 7307266 , 1575 },
-{ 7307267 , 2214 },
-{ 7307268 , 2276 },
-{ 7307269 , 2148 },
-{ 7307270 , 2194 },
-{ 7307271 , 2178 },
-{ 7307272 , 2220 },
-{ 7307273 , 2216 },
-{ 7307274 , 2181 },
-{ 7307275 , 2183 },
-{ 7307276 , 2197 },
-{ 7307277 , 2010 },
-{ 7307278 , 2198 },
-{ 7307279 , 2196 },
-{ 7307280 , 2243 },
-{ 7307281 , 2211 },
-{ 7307282 , 2274 },
-{ 7307283 , 364 },
-{ 7307284 , 49124 },
- { END, 0 }
-} ;
-
-int checkDatabase(const char *path, recordInfo *info)
-{
- FUNCTIONSETUP;
-
- PilotLocalDatabase db(TQString::fromLatin1(path));
- if (!db.isOpen())
- {
- kdDebug() << "No database " << path << endl;
- if ( info[0].id == NO_EXIST )
- {
- kdDebug() << "This was expected" << endl;
- return OK;
- }
- else
- {
- return ERR_NO_EXIST;
- }
- }
-
- if ( info[0].id == NO_EXIST )
- {
- kdDebug() << "Database not expected" << endl;
- return ERR;
- }
-
- int fail = 0;
- int index = 0;
- PilotRecord *r;
- while( (r = db.readRecordByIndex(index) ) )
- {
- kdDebug() << "[" << index << "] id=" << r->id() << " size=" << r->size() << endl;
- if ( ((recordid_t)info[index].id) != r->id() )
- {
- kdDebug() << "* Bad ID (expected" << r->id() << ")" << endl;
- fail++;
- }
- else if ( info[index].size != r->size() )
- {
- kdDebug() << "* Bad size (expected " << info[index].size << ")" << endl;
- fail++;
- }
- index++;
- }
- if ( info[index].id != END )
- {
- kdDebug() << "* End wasn't expected yet." << endl;
- r++;
- }
-
- if (fail)
- {
- kdDebug() << "* " << fail << " failures." << endl;
- return ERR;
- }
- return OK;
-}
-
-const char *categoryNames[4] =
-{
- "aardvarks",
- "toolongToBeaCategoryName",
- "personal",
- "impersonal"
-} ;
-
-TQStringList listCategories()
-{
- TQStringList cats;
- PilotLocalDatabase *l = new PilotLocalDatabase("./data/MemoDB");
- PilotMemoInfo *m = new PilotMemoInfo(l);
-
- if (!l->isOpen()) return cats;
-
- cats.append(CSL1("Unfiled"));
- m->dump();
-
- for (int i=0; i<20; i++)
- {
- PilotRecord *r = l->readRecordByIndex(i);
- kdDebug() << "Read record " << (void *)r << " with id=" << r->id() << endl;
- if (!r) break;
- }
-
- for (int i=0; i<4; i++)
- {
- TQString s = m->category(i);
- kdDebug() << "Category " << i << ": " << (s.isEmpty() ? CSL1("<empty>") : s) << endl;
- cats.append(s);
-/*
- if (i<((sizeof(categoryNames) / sizeof(categoryNames[0]))))
- m->setCategoryName(i,TQString::fromLatin1(categoryNames[i]));
-*/
- }
-
- m->write(l);
-
- delete m;
- delete l;
-
- return cats;
-}
-
-int checkCategories()
-{
- TQStringList l = listCategories();
- TQStringList m = listCategories();
-
- if (l.isEmpty() || m.isEmpty()) return ERR;
- if (l!=m) return ERR;
- return OK;
-}
-
-int checkMemo()
-{
- PilotLocalDatabase *l = new PilotLocalDatabase("./data/MemoDB");
- if (!l->isOpen()) return ERR_NO_EXIST;
-
- PilotMemoInfo *m = new PilotMemoInfo(l);
- m->dump();
-
- TQString c = m->category(1);
- if (c != CSL1("Business"))
- {
- kdDebug() << "* Category 1 is not 'Business' but " << c << endl;
- return ERR;
- }
-
- m->setCategoryName(2,CSL1("Aardvark"));
- m->dump();
-
- c = m->category(2);
- if (c != CSL1("Aardvark"))
- {
- kdDebug() << "* Category 2 is not 'Aardvark' but " << c << endl;
- return ERR;
- }
-
-
- delete m;
- delete l;
- return OK;
-}
-
-static const KCmdLineOptions options[] =
-{
- {"verbose", "Verbose output", 0},
- KCmdLineLastOption
-};
-
-
-int main(int argc, char **argv)
-{
- KApplication::disableAutoDcopRegistration();
-
- KAboutData aboutData("testdatabase","Test Databases","0.1");
- KCmdLineArgs::init(argc,argv,&aboutData);
- KCmdLineArgs::addCmdLineOptions( options );
-
- KApplication app( false, false );
-
- KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
-
- Q_UNUSED(args)
-
- int r = 0;
- int i = 0;
-#ifdef DEBUG
- debug_level=4;
-#endif
-
- Q_UNUSED(argc);
- Q_UNUSED(argv);
-
-#define ALLOW_NO_EXIST (1)
- static struct { const char *path; recordInfo *info; int flags; }
- tests[] =
- {
- { "/tmp/nonexistant/nonexistent", nonexistent,0 },
- { "/tmp/Aesop", aesop, ALLOW_NO_EXIST },
- { 0L, 0L, 0 }
- } ;
-
- while ( tests[i].path )
- {
- kdDebug() << "*** Test " << i << endl;
- int ret = checkDatabase( tests[i].path, tests[i].info );
- if ( ret )
- {
- if ( (ret==ERR_NO_EXIST) &&
- (tests[i].flags & ALLOW_NO_EXIST) )
- {
- kdDebug() << "* Test database doesn't exist, ignored." << endl;
- }
- else
- {
- r++;
- }
- }
- i++;
- }
-
- kdDebug() << "*** Test " << i << endl;
- if (checkMemo()) r++;
- i++;
-
- if (r)
- {
- kdDebug() << "***\n*** Failed " << r << " tests." << endl;
- return 1;
- }
- return 0;
-}
-