added a primitive dictionary file loader. needs more work

This commit is contained in:
2017-12-13 08:21:13 +00:00
parent f9970ef086
commit 61483e294a
6 changed files with 731 additions and 1010 deletions

View File

@ -34,7 +34,7 @@ static qse_size_t hash_item (qse_htl_t* htl, const void* data)
{
item_t* item = (item_t*)data;
//return item->a + 123445;
return qse_genhash (&item->a, QSE_SIZEOF(item->a));
return qse_genhash32 (&item->a, QSE_SIZEOF(item->a));
}
static int comp_item (qse_htl_t* htl, const void* data1, const void* data2)
@ -135,6 +135,7 @@ static int test2 ()
item_t x;
qse_htl_t* htl;
qse_htl_node_t* np;
int count = 0;
htl = qse_htl_open (QSE_MMGR_GETDFL(), 0, QSE_SIZEOF(x));
if (htl == QSE_NULL)
@ -148,6 +149,7 @@ static int test2 ()
qse_htl_setcopier (htl, copy_item);
qse_htl_setfreeer (htl, free_item);
again:
for (x.a = 9; x.a < 20; x.a++)
{
x.x = x.a * 10;
@ -195,6 +197,15 @@ static int test2 ()
qse_printf (QSE_T("total %lu items\n"), (unsigned long)qse_htl_getsize(htl));
qse_htl_walk (htl, walk2, QSE_NULL);
qse_htl_clear (htl);
if (count == 0)
{
count++;
qse_printf (QSE_T("<<<TRAYING AGAIN ....>>>\n"));
goto again;
}
qse_htl_close (htl);
return 0;
}

View File

@ -2,6 +2,7 @@
#include <qse/cmn/str.h>
#include <qse/rad/raddic.h>
#include <qse/si/sio.h>
#include <string.h>
#define R(f) \
do { \
@ -9,41 +10,40 @@
if (f() == -1) return -1; \
} while (0)
#define FAIL(msg) qse_printf(QSE_T("FAILURE in %hs line %d - %hs\n"), __func__, __LINE__, msg)
#define FAIL(msg) qse_printf(QSE_T("FAILURE in %hs line %d - %s\n"), __func__, __LINE__, msg)
#define _assert(test,msg) do { if (!(test)) { FAIL(msg); return -1; } } while(0)
#define _verify(test) do { int r=test(); tests_run++; if(r) return r; } while(0)
static int test1 ()
{
qse_raddic_t* dic;
qse_raddic_vendor_t* vendor, * v;
qse_raddic_attr_t* attr, * a;
qse_raddic_vendor_t* vendor, * v;
int i;
dic = qse_raddic_open (QSE_MMGR_GETDFL(), 0);
_assert (dic != QSE_NULL, "unable to create a radius dictionary");
_assert (dic != QSE_NULL, QSE_T("unable to create a radius dictionary"));
vendor = qse_raddic_addvendor (dic, QSE_T("abiyo.net"), 12365);
_assert (vendor != QSE_NULL, "unable to add the first vendor");
_assert (vendor->vendorpec == 12365, "the vendor value is not 12365");
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo.net")) == 0, "the vendor name is not abiyo.net");
_assert (vendor != QSE_NULL, QSE_T("unable to add the first vendor"));
_assert (vendor->vendorpec == 12365, QSE_T("the vendor value is not 12365"));
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo.net")) == 0, QSE_T("the vendor name is not abiyo.net"));
vendor = qse_raddic_addvendor (dic, QSE_T("abiyo.net"), 99999);
_assert (vendor == QSE_NULL, "a duplicate name must not be allowed");
_assert (vendor == QSE_NULL, QSE_T("a duplicate name must not be allowed"));
vendor = qse_raddic_addvendor (dic, QSE_T("abiyo-aliased.net"), 12365);
_assert (vendor != QSE_NULL, "unable to add a duplicate id");
_assert (vendor != QSE_NULL, QSE_T("unable to add a duplicate id"));
vendor = qse_raddic_findvendorbyname (dic, QSE_T("Abiyo.Net"));
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, "unable to find a vendor named Abiyo.Net");
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, QSE_T("unable to find a vendor named Abiyo.Net"));
vendor = qse_raddic_findvendorbyvalue (dic, 12365);
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, "unable to find a vendor of value 12365");
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo-aliased.net")) == 0, "unable to find a vendor of value 12365");
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, QSE_T("unable to find a vendor of value 12365"));
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo-aliased.net")) == 0, QSE_T("unable to find a vendor of value 12365"));
vendor = qse_raddic_findvendorbyname (dic, QSE_T("Abiyo-aliased.Net"));
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, "unable to find a vendor named Abiyo-aliased.Net");
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo-aliased.net")) == 0, "unable to find a vendor of value 12365");
_assert (vendor != QSE_NULL && vendor->vendorpec == 12365, QSE_T("unable to find a vendor named Abiyo-aliased.Net"));
_assert (qse_strcasecmp(vendor->name, QSE_T("abiyo-aliased.net")) == 0, QSE_T("unable to find a vendor of value 12365"));
#define COUNT1 600
#define COUNT2 700
@ -53,9 +53,9 @@ static int test1 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
vendor = qse_raddic_addvendor (dic, tmp, i);
_assert (vendor != QSE_NULL, "unable to add a vendor");
_assert (vendor->vendorpec == i, "wrong vendor value");
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
_assert (vendor != QSE_NULL, QSE_T("unable to add a vendor"));
_assert (vendor->vendorpec == i, QSE_T("wrong vendor value"));
_assert (qse_strcasecmp(vendor->name, tmp) == 0, QSE_T("wrong vendor name"));
}
for (i = 1; i < COUNT1; i++)
@ -63,9 +63,9 @@ static int test1 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
vendor = qse_raddic_findvendorbyname (dic, tmp);
_assert (vendor != QSE_NULL, "unable to find a vendor");
_assert (vendor->vendorpec == i, "wrong vendor value");
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
_assert (vendor != QSE_NULL, QSE_T("unable to find a vendor"));
_assert (vendor->vendorpec == i, QSE_T("wrong vendor value"));
_assert (qse_strcasecmp(vendor->name, tmp) == 0, QSE_T("wrong vendor name"));
}
for (i = 1; i < COUNT1; i++)
@ -73,9 +73,9 @@ static int test1 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
vendor = qse_raddic_findvendorbyvalue (dic, i);
_assert (vendor != QSE_NULL, "unable to find a vendor");
_assert (vendor->vendorpec == i, "wrong vendor value");
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
_assert (vendor != QSE_NULL, QSE_T("unable to find a vendor"));
_assert (vendor->vendorpec == i, QSE_T("wrong vendor value"));
_assert (qse_strcasecmp(vendor->name, tmp) == 0, QSE_T("wrong vendor name"));
}
for (i = COUNT1; i < COUNT2; i++)
@ -84,12 +84,12 @@ static int test1 ()
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
vendor = qse_raddic_addvendor (dic, tmp, COUNT1);
// insert different items with the same value
_assert (vendor != QSE_NULL, "unable to add a vendor");
_assert (vendor->vendorpec == COUNT1, "wrong vendor value");
_assert (qse_strcasecmp(vendor->name, tmp) == 0, "wrong vendor name");
_assert (vendor != QSE_NULL, QSE_T("unable to add a vendor"));
_assert (vendor->vendorpec == COUNT1, QSE_T("wrong vendor value"));
_assert (qse_strcasecmp(vendor->name, tmp) == 0, QSE_T("wrong vendor name"));
v = qse_raddic_findvendorbyvalue (dic, COUNT1);
_assert (vendor == v, "unable to find a last added vendor by value");
_assert (vendor == v, QSE_T("unable to find a last added vendor by value"));
}
for (i = COUNT1; i < COUNT2 - 1; i++)
@ -100,24 +100,24 @@ static int test1 ()
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
n = qse_raddic_deletevendorbyname (dic, tmp);
_assert (n == 0, "unable to delete a vendor");
_assert (n == 0, QSE_T("unable to delete a vendor"));
v = qse_raddic_findvendorbyname (dic, tmp);
_assert (v == QSE_NULL, "vendor found errorenously");
_assert (v == QSE_NULL, QSE_T("vendor found errorenously"));
if (i == COUNT2 - 1)
{
v = qse_raddic_findvendorbyvalue (dic, COUNT1);
_assert (v == QSE_NULL, "vendor of COUNT1 found errorenously");
_assert (v == QSE_NULL, QSE_T("vendor of COUNT1 found errorenously"));
}
else
{
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i + 1);
v = qse_raddic_findvendorbyname (dic, tmp);
_assert (v != QSE_NULL && v->vendorpec == COUNT1 && qse_strcasecmp(tmp, v->name) == 0, "unable to find an expected vendor");
_assert (v != QSE_NULL && v->vendorpec == COUNT1 && qse_strcasecmp(tmp, v->name) == 0, QSE_T("unable to find an expected vendor"));
v = qse_raddic_findvendorbyvalue (dic, COUNT1);
_assert (v != QSE_NULL && v->vendorpec == COUNT1, "unable to find the vendor of COUNT1");
_assert (v != QSE_NULL && v->vendorpec == COUNT1, QSE_T("unable to find the vendor of COUNT1"));
}
}
@ -128,7 +128,7 @@ static int test1 ()
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
n = qse_raddic_deletevendorbyname (dic, tmp);
_assert (n == 0, "unable to delete a vendor");
_assert (n == 0, QSE_T("unable to delete a vendor"));
}
for (i = 1; i < COUNT1; i++)
@ -136,31 +136,31 @@ static int test1 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d"), i);
v = qse_raddic_addvendor (dic, tmp, i);
_assert (v != QSE_NULL && v->vendorpec == i, "unable to add a vendor");
_assert (v != QSE_NULL && v->vendorpec == i, QSE_T("unable to add a vendor"));
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testx-%d"), i);
v = qse_raddic_addvendor (dic, tmp, i);
_assert (v != QSE_NULL && v->vendorpec == i, "unable to add a vendor");
_assert (v != QSE_NULL && v->vendorpec == i, QSE_T("unable to add a vendor"));
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testy-%d"), i);
v = qse_raddic_addvendor (dic, tmp, i);
_assert (v != QSE_NULL && v->vendorpec == i, "unable to add a vendor");
_assert (v != QSE_NULL && v->vendorpec == i, QSE_T("unable to add a vendor"));
}
for (i = 1; i < COUNT1; i++)
{
int n;
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n == 0, "unable to delete a vendor by value");
_assert (n == 0, QSE_T("unable to delete a vendor by value"));
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n == 0, "unable to delete a vendor by value");
_assert (n == 0, QSE_T("unable to delete a vendor by value"));
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n == 0, "unable to delete a vendor by value");
_assert (n == 0, QSE_T("unable to delete a vendor by value"));
n = qse_raddic_deletevendorbyvalue (dic, i);
_assert (n <= -1, "erroreneously successful vendor deletion by value");
_assert (n <= -1, QSE_T("erroreneously successful vendor deletion by value"));
}
qse_raddic_close (dic);
@ -177,7 +177,7 @@ static int test2 ()
int i, j;
dic = qse_raddic_open (QSE_MMGR_GETDFL(), 0);
_assert (dic != QSE_NULL, "unable to create a radius dictionary");
_assert (dic != QSE_NULL, QSE_T("unable to create a radius dictionary"));
memset (&f, 0, QSE_SIZEOF(f));
@ -188,9 +188,9 @@ static int test2 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d-%d"), j, i);
attr = qse_raddic_addattr (dic, tmp, j, QSE_RADDIC_ATTR_TYPE_STRING, i, &f);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
}
}
@ -201,14 +201,14 @@ static int test2 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("test-%d-%d"), j, i);
attr = qse_raddic_findattrbyname (dic, tmp);
_assert (attr != QSE_NULL, "unable to find an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to find an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
attr = qse_raddic_findattrbyvalue (dic, QSE_RADDIC_ATTR_MAKE(j, i));
_assert (attr != QSE_NULL, "unable to find an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to find an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
}
}
@ -219,15 +219,15 @@ static int test2 ()
qse_char_t tmp[64];
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testx-%d-%d"), j, i);
attr = qse_raddic_addattr (dic, tmp, j, QSE_RADDIC_ATTR_TYPE_STRING, i, &f);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testy-%d-%d"), j, i);
attr = qse_raddic_addattr (dic, tmp, j, QSE_RADDIC_ATTR_TYPE_STRING, i, &f);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
}
}
@ -241,34 +241,34 @@ static int test2 ()
qse_strxfmt(tmpy, QSE_COUNTOF(tmpy), QSE_T("testy-%d-%d"), j, i);
attr = qse_raddic_findattrbyname (dic, tmp);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
attr = qse_raddic_findattrbyname (dic, tmpx);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmpx) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmpx) == 0, QSE_T("wrong attr name"));
attr = qse_raddic_findattrbyname (dic, tmpy);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmpy) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmpy) == 0, QSE_T("wrong attr name"));
attr = qse_raddic_findattrbyvalue (dic, QSE_RADDIC_ATTR_MAKE(j, i));
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmpy) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmpy) == 0, QSE_T("wrong attr name"));
_assert (attr->nexta != QSE_NULL, "unable to find an old attribute");
_assert (attr->nexta->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->nexta->name, tmpx) == 0, "wrong attr name");
_assert (attr->nexta != QSE_NULL, QSE_T("unable to find an old attribute"));
_assert (attr->nexta->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->nexta->name, tmpx) == 0, QSE_T("wrong attr name"));
_assert (attr->nexta->nexta != QSE_NULL, "unable to find an old attribute");
_assert (attr->nexta->nexta->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->nexta->nexta->name, tmp) == 0, "wrong attr name");
_assert (attr->nexta->nexta != QSE_NULL, QSE_T("unable to find an old attribute"));
_assert (attr->nexta->nexta->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->nexta->nexta->name, tmp) == 0, QSE_T("wrong attr name"));
_assert (attr->nexta->nexta->nexta == QSE_NULL, "wrong attribute chian");
_assert (attr->nexta->nexta->nexta == QSE_NULL, QSE_T("wrong attribute chian"));
}
}
@ -281,7 +281,7 @@ static int test2 ()
qse_strxfmt(tmp, QSE_COUNTOF(tmp), QSE_T("testx-%d-%d"), j, i);
n = qse_raddic_deleteattrbyname (dic, tmp);
_assert (n == 0, "erroreneous attribute deletion failure by name");
_assert (n == 0, QSE_T("erroreneous attribute deletion failure by name"));
}
}
@ -295,28 +295,28 @@ static int test2 ()
qse_strxfmt(tmpy, QSE_COUNTOF(tmpy), QSE_T("testy-%d-%d"), j, i);
attr = qse_raddic_findattrbyname (dic, tmp);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmp) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmp) == 0, QSE_T("wrong attr name"));
attr = qse_raddic_findattrbyname (dic, tmpx);
_assert (attr == QSE_NULL, "errorneous search success");
_assert (attr == QSE_NULL, QSE_T("errorneous search success"));
attr = qse_raddic_findattrbyname (dic, tmpy);
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmpy) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmpy) == 0, QSE_T("wrong attr name"));
attr = qse_raddic_findattrbyvalue (dic, QSE_RADDIC_ATTR_MAKE(j, i));
_assert (attr != QSE_NULL, "unable to add an attribute");
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->name, tmpy) == 0, "wrong attr name");
_assert (attr != QSE_NULL, QSE_T("unable to add an attribute"));
_assert (attr->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->name, tmpy) == 0, QSE_T("wrong attr name"));
_assert (attr->nexta != QSE_NULL, "unable to find an old attribute");
_assert (attr->nexta->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong attr value");
_assert (qse_strcasecmp(attr->nexta->name, tmp) == 0, "wrong attr name");
_assert (attr->nexta != QSE_NULL, QSE_T("unable to find an old attribute"));
_assert (attr->nexta->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong attr value"));
_assert (qse_strcasecmp(attr->nexta->name, tmp) == 0, QSE_T("wrong attr name"));
_assert (attr->nexta->nexta == QSE_NULL, "wrong attribute chian");
_assert (attr->nexta->nexta == QSE_NULL, QSE_T("wrong attribute chian"));
}
}
@ -324,13 +324,13 @@ static int test2 ()
{
int n;
n = qse_raddic_deleteattrbyvalue (dic, QSE_RADDIC_ATTR_MAKE(0, 0));
_assert (n == 0, "errorneous deletion failure by value");
_assert (n == 0, QSE_T("errorneous deletion failure by value"));
n = qse_raddic_deleteattrbyvalue (dic, QSE_RADDIC_ATTR_MAKE(0, 0));
_assert (n == 0, "errorneous deletion failure by value");
_assert (n == 0, QSE_T("errorneous deletion failure by value"));
n = qse_raddic_deleteattrbyvalue (dic, QSE_RADDIC_ATTR_MAKE(0, 0));
_assert (n <= -1, "errorneous deletion success by value");
_assert (n <= -1, QSE_T("errorneous deletion success by value"));
}
@ -342,9 +342,9 @@ static int test2 ()
qse_strxfmt(attrstr, QSE_COUNTOF(attrstr), QSE_T("test-%d-%d"), j, i);
qse_strxfmt(constr, QSE_COUNTOF(constr), QSE_T("const-%d-%d"), j, i);
con = qse_raddic_addconst (dic, constr, attrstr, 10);
_assert (con != QSE_NULL, "unable to add an constant");
_assert (con->value == 10, "wrong constant value");
_assert (qse_strcasecmp(con->name, constr) == 0, "wrong constant name");
_assert (con != QSE_NULL, QSE_T("unable to add an constant"));
_assert (con->value == 10, QSE_T("wrong constant value"));
_assert (qse_strcasecmp(con->name, constr) == 0, QSE_T("wrong constant name"));
}
}
@ -356,14 +356,14 @@ static int test2 ()
qse_strxfmt(constr, QSE_COUNTOF(constr), QSE_T("const-%d-%d"), j, i);
con = qse_raddic_findconstbyname (dic, QSE_RADDIC_ATTR_MAKE(j, i), constr);
_assert (con != QSE_NULL, "unable to find an constant");
_assert (con->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong constant value");
_assert (con->value == 10, "wrong constant value");
_assert (con != QSE_NULL, QSE_T("unable to find an constant"));
_assert (con->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong constant value"));
_assert (con->value == 10, QSE_T("wrong constant value"));
con = qse_raddic_findconstbyvalue (dic, QSE_RADDIC_ATTR_MAKE(j, i), 10);
_assert (con != QSE_NULL, "unable to find an constant");
_assert (con->value == 10, "wrong constant value");
_assert (con->attr == QSE_RADDIC_ATTR_MAKE(j, i), "wrong constant value");
_assert (con != QSE_NULL, QSE_T("unable to find an constant"));
_assert (con->value == 10, QSE_T("wrong constant value"));
_assert (con->attr == QSE_RADDIC_ATTR_MAKE(j, i), QSE_T("wrong constant value"));
}
}
@ -371,30 +371,50 @@ static int test2 ()
{
int n;
n = qse_raddic_deleteconstbyname (dic, QSE_RADDIC_ATTR_MAKE(1,1), QSE_T("const-1-1"));
_assert (n == 0, "errorneous constant deletion failure");
_assert (n == 0, QSE_T("errorneous constant deletion failure"));
n = qse_raddic_deleteconstbyname (dic, QSE_RADDIC_ATTR_MAKE(1,1), QSE_T("const-1-1"));
_assert (n <= -1, "errorneous constant deletion success");
_assert (n <= -1, QSE_T("errorneous constant deletion success"));
n = qse_raddic_deleteconstbyvalue (dic, QSE_RADDIC_ATTR_MAKE(2,2), 20);
_assert (n <= -1, "errorneous constant deletion success");
_assert (n <= -1, QSE_T("errorneous constant deletion success"));
n = qse_raddic_deleteconstbyvalue (dic, QSE_RADDIC_ATTR_MAKE(2,2), 10);
_assert (n == 0, "errorneous constant deletion success");
_assert (n == 0, QSE_T("errorneous constant deletion success"));
n = qse_raddic_deleteconstbyvalue (dic, QSE_RADDIC_ATTR_MAKE(2,2), 10);
_assert (n <= -1, "errorneous constant deletion success");
_assert (n <= -1, QSE_T("errorneous constant deletion success"));
}
qse_raddic_close (dic);
return 0;
}
static int test3 ()
{
qse_raddic_t* dic;
int n, trait;
dic = qse_raddic_open (QSE_MMGR_GETDFL(), 0);
_assert (dic != QSE_NULL, QSE_T("unable to create a radius dictionary"));
trait = QSE_RADDIC_ALLOW_CONST_WITHOUT_ATTR;
n = qse_raddic_setopt (dic, QSE_RADDIC_TRAIT, &trait);
_assert (n == 0, QSE_T("cannot set trait"));
n = qse_raddic_load (dic, QSE_T("dictionary"));
_assert (n == 0, qse_raddic_geterrmsg(dic));
qse_raddic_close (dic);
return 0;
}
int main ()
{
qse_open_stdsios ();
R (test1);
R (test2);
R (test3);
qse_close_stdsios ();
return 0;
}