tbags.c revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1999-2011 AT&T Intellectual Property *
* and is licensed under the *
* Eclipse Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* (with md5 checksum b35adb5213ca9657e911e9befb180842) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* *
***********************************************************************/
#include "dttest.h"
typedef struct _obj_s
long key;
long ord;
} Obj_t;
{
}
{
}
{
static char buf[1024];
return buf;
}
tmain()
{
char *name;
/* construct repetitive objects */
{ for(k = 0; k < R_OBJ; ++k)
}
}
{ switch(meth)
{ case 0:
name = "Dtobag";
break;
case 1:
name = "Dtbag";
break;
case 2:
name = "Dtrhbag";
break;
case 3:
name = "Dtlist";
break;
default: terror("Unknown storage method");
break;
}
/* add all objects into dictionary */
for(k = 0; k < R_OBJ; ++k)
if(o != obj)
}
{ /* note that dtappend() was used to keep objects in order of insertion */
if(o->ord != 0)
n_obj = 0; /* test ordering */
{ n_obj += 1;
terror("%s: objects not ordered correctly p=%d > o=%d",
}
}
if(meth == 0) /* testing ordering properties of Dtobag */
{
n_obj += 1;
else break;
}
n_obj += 1;
else break;
}
n_obj = 0; /* test linear order */
{ n_obj += 1;
terror("%s: objects not ordered correctly p=%d > o=%d",
}
}
{ n_obj += 1;
n_mid += 1;
}
{ n_obj += 1;
n_mid += 1;
}
{ n_obj += 1;
n_mid += 1;
}
n_mid = 0; /* delete a bunch of objects */
n_mid += 1;
else terror("%s: dtremove (key=%d,ord=%d) wrongly yielded (key=%d,ord=%d)",
terror("%s: dtremove (key=%d,ord=%d) wrongly yielded (key=%d,ord=%d)",
n_mid += 1;
else terror("%s: dtdelete matching object to (key=%d,ord=%d) failed",
}
n_obj = 0; /* count the left over */
n_obj += 1;
}
texit(0);
}