/*
- * Copyright (C) 1996-2014 The Squid Software Foundation and contributors
+ * Copyright (C) 1996-2015 The Squid Software Foundation and contributors
*
* Squid software is distributed under GPLv2+ license and includes
* contributions from numerous individuals and organizations.
#include <unistd.h>
#endif
-#if 0
-#define assert(X) {if (!(X)) exit (1);}
#include "splay.h"
-#undef assert
-#else
-#include "splay.h"
-#endif
-
#include "util.h"
class intnode
for (i = 0; i < 100; ++i) {
I = (intnode *)xcalloc(sizeof(intnode), 1);
I->i = squid_random();
- top = top->insert(I, compareintvoid);
+ if (top)
+ top = top->insert(I, compareintvoid);
+ else
+ top = new splayNode(static_cast<void*>(new intnode(101)));
}
SplayCheck::BeginWalk();
SplayCheck::BeginWalk();
top->walk(SplayCheck::WalkVoid, NULL);
top->destroy(destintvoid);
- /* check we don't segfault on NULL splay calls */
- top = NULL;
- top->splay((void *)NULL, compareintvoid);
}
/* test typesafe splay containers */
{
/* intnode* */
- SplayNode<intnode *> *safeTop = NULL;
+ SplayNode<intnode *> *safeTop = new SplayNode<intnode *>(new intnode(101));
for ( int i = 0; i < 100; ++i) {
intnode *I;
safeTop->walk(SplayCheck::WalkNode, NULL);
safeTop->destroy(destint);
- /* check we don't segfault on NULL splay calls */
- safeTop = NULL;
- safeTop->splay((intnode *)NULL, compareint);
}
{
/* intnode */
- SplayNode<intnode> *safeTop = NULL;
+ SplayNode<intnode> *safeTop = new SplayNode<intnode>(101);
for (int i = 0; i < 100; ++i) {
intnode I;
{
/* check for begin() */
- SplayNode<intnode> *safeTop = NULL;
+ Splay<intnode> *safeTop = new Splay<intnode>();
if (safeTop->start() != NULL)
exit (1);
I.i = squid_random();
if (I.i > 50 && I.i < 10000000)
- safeTop = safeTop->insert(I, compareintref);
+ safeTop->insert(I, compareintref);
}
{
intnode I;
I.i = 50;
- safeTop = safeTop->insert (I, compareintref);
+ safeTop->insert (I, compareintref);
I.i = 10000000;
- safeTop = safeTop->insert (I, compareintref);
+ safeTop->insert (I, compareintref);
}
if (!safeTop->start())
exit (1);
}
+ /* TODO: also test the other Splay API */
+
return 0;
}