Category : C Source Code
Archive   : CFF51B.ZIP
Filename : SEQTEST.C

 
Output of file : SEQTEST.C contained in archive : CFF51B.ZIP
/* SEQTEST.C */
/* Copyright 1990, 1991, 1992, 1993 Norman D. Culver Ft. Lauderdale, FL */
/* All Rights Reserved */

#include
#include "../cff.h"

static void seq_test1(void *hd, void *hd1);
static void seq_test2(void *hd, void *hd1);
static void seq_test3(void *hd, void *hd1);

void
main()
{
void *hd, *hd1;

cfport_settestflags(1);
cfinit("seqtest",512,NULL);
cfprintf("SEQUENTIAL ACCESS TESTS.\n");

hd = cfopen("EXTDMEM/seq1", F_RDWR|F_CREAT|F_HUGEDIR, NULL);
hd1 = cfopen("EXTDMEM/seq2", F_RDWR|F_CREAT|F_SORTED|F_HUGEDIR, NULL);
seq_test1(hd, hd1);
seq_test2(hd, hd1);
seq_test3(hd, hd1);
cfclose(hd);
cfclose(hd1);
cfexit();
}

static void
seq_test1(void *hd, void *hd1)
{
long i;
Item myitem;
unsigned long finds[200];

cfprintf("Begin seq_test1 -- keyed inserts\n");
myitem.a2.type = STO_VALUE;
for(i = 0; i < 200; ++i)
{
myitem.a0 = i;
if(cfinsert(hd, &i, 4, &myitem) != OK)
cfprintf("Insert failed for hash at i=%d\n", i);
if(cfinsert(hd1, &i, 4, &myitem) != OK)
cfprintf("Insert failed for tree at i=%d\n", i);
}
myitem.a0 = 1000;
if(cfhead(hd, &myitem) != OK)
cfprintf("Head failed for hash dir.\n");
if(myitem.a0 > 199)
cfprintf("Data failed for Head hashdir =%d\n", myitem.a0);

myitem.a0 = 1000;
if(cftail(hd, &myitem) != OK)
cfprintf("Tail failed for hash dir.\n");
if(myitem.a0 > 199)
cfprintf("Data failed for Tail hashdir =%d\n", myitem.a0);

cfhead(hd1, &myitem);
if(myitem.a0 != 0)
cfprintf("Head failed for tree dir.\n");
cftail(hd1, &myitem);
if(myitem.a0 != 199)
cfprintf("Tail failed for tree dir.\n");

cfhead(hd, &myitem);
finds[myitem.a0] = myitem.a0;
cfhead(hd1, NULL);
for(i = 1; i < 200; ++i)
{
if(cfnext(hd, &myitem) != OK)
cfprintf("Next failed for hashdir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 > 199)
cfprintf("Data failed for Next hashdir at i=%d item=%d\n", i, myitem.a0);
finds[myitem.a0] = myitem.a0;

myitem.a0 = 0;
if(cfnext(hd1, &myitem) != OK)
cfprintf("Next failed for treedir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 != i)
cfprintf("Data failed for Next treedir at i=%d item=%d\n", i, myitem.a0);

}
cftail(hd, &myitem);
finds[myitem.a0] = myitem.a0;
cftail(hd1, NULL);
for(i=198; i >= 0; --i)
{
if(cfprev(hd, &myitem) != OK)
cfprintf("Prev failed for hashdir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 > 199)
cfprintf("Data failed for Prev hashdir at i=%d item=%d\n", i, myitem.a0);
finds[myitem.a0] = myitem.a0;

myitem.a0 = 0;
if(cfprev(hd1, &myitem) != OK)
cfprintf("Prev failed for treedir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 != i)
cfprintf("Data failed for Prev treedir at i=%d item=%d\n", i, myitem.a0);

}
for(i = 0; i < 200; ++i)
if(finds[i] != i)
cfprintf("Hash find failed at i=%d data=%d\n", i, finds[i]);

cfprintf("End seq_test1\n");
}
static void
seq_test2(void *hd, void *hd1)
{
long i;
Item myitem;
unsigned long finds[200];

cfprintf("Begin seq_test2 -- dupnum inserts\n");
myitem.a2.type = STO_VALUE;
for(i = 0; i < 200; ++i)
{
long numdups;
myitem.a0 = i;
if(cfinsert_dupnum(hd, "NAME", 4, &myitem, &numdups) != OK)
cfprintf("Insert failed for hash at i=%d\n", i);
if(numdups != i+1)
cfprintf("Wrong number of dups for hash is=%d should be=%d\n", numdups, i+1);
if(cfinsert_dupnum(hd1, "NAME", 4, &myitem, &numdups) != OK)
cfprintf("Insert failed for tree at i=%d\n", i);
if(numdups != i+1)
cfprintf("Wrong number of dups for tree is=%d should be=%d\n", numdups, i+1);
}
myitem.a0 = 1000;
if(cfhead_dupnum(hd, "NAME", 4, &myitem) != OK)
cfprintf("Head failed for hash dir.\n");
if(myitem.a0 > 199)
cfprintf("Data failed for Head hashdir =%d\n", myitem.a0);

myitem.a0 = 1000;
if(cftail_dupnum(hd, "NAME", 4, &myitem) != OK)
cfprintf("Tail failed for hash dir.\n");
if(myitem.a0 > 199)
cfprintf("Data failed for Tail hashdir =%d\n", myitem.a0);

myitem.a0 = 1000;
if(cfhead_dupnum(hd1, "NAME", 4, &myitem) != OK)
cfprintf("Head failed for tree dir.\n");
if(myitem.a0 != 0)
cfprintf("Data failed for Head treedir =%d\n", myitem.a0);
if(cftail_dupnum(hd1, "NAME", 4, &myitem) != OK)
cfprintf("Tail failed for tree dir.\n");
if(myitem.a0 != 199)
cfprintf("Data failed for Tail treedir =%d\n", myitem.a0);

cfhead_dupnum(hd, "NAME", 4, &myitem);
finds[myitem.a0] = myitem.a0;
cfhead_dupnum(hd1, "NAME", 4, &myitem);
for(i = 1; i < 200; ++i)
{
if(cfnext_dupnum(hd, "NAME", 4, &myitem) != OK)
cfprintf("Next failed for hashdir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 > 199)
cfprintf("Data failed for Next hashdir at i=%d item=%d\n", i, myitem.a0);
finds[myitem.a0] = myitem.a0;

myitem.a0 = 0;
if(cfnext_dupnum(hd1, "NAME", 4, &myitem) != OK)
cfprintf("Next failed for treedir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 != i)
cfprintf("Data failed for Next treedir at i=%d item=%d\n", i, myitem.a0);
}
cftail_dupnum(hd, "NAME", 4, &myitem);
finds[myitem.a0] = myitem.a0;
cftail_dupnum(hd1, "NAME", 4, NULL);
for(i=198; i >= 0; --i)
{
if(cfprev_dupnum(hd, "NAME", 4, &myitem) != OK)
cfprintf("Prev failed for hashdir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 > 199)
cfprintf("Data failed for Prev hashdir at i=%d item=%d\n", i, myitem.a0);
finds[myitem.a0] = myitem.a0;

myitem.a0 = 0;
if(cfprev_dupnum(hd1, "NAME", 4, &myitem) != OK)
cfprintf("Prev failed for treedir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 != i)
cfprintf("Data failed for Prev treedir at i=%d item=%d\n", i, myitem.a0);

}
for(i = 0; i < 200; ++i)
if(finds[i] != i)
cfprintf("Hash find failed at i=%d data=%d\n", i, finds[i]);

cfprintf("End seq_test2\n");
}
static void
seq_test3(void *hd, void *hd1)
{
long i;
Item myitem;
unsigned long finds[200];

cfprintf("Begin seq_test3 -- dupname inserts\n");
myitem.a2.type = STO_VALUE;
for(i = 0; i < 200; ++i)
{
DupName numdups;
myitem.a0 = i;
if(cfinsert_dupname(hd, "XXXX", 4, &myitem, &numdups) != OK)
cfprintf("Insert failed for hash at i=%d\n", i);
if(numdups.name != i+1)
cfprintf("Wrong number of dups for hash is=%d should be=%d\n", numdups.name, i+1);
if(cfinsert_dupname(hd1, "XXXX", 4, &myitem, &numdups) != OK)
cfprintf("Insert failed for tree at i=%d\n", i);
if(numdups.name != i+1)
cfprintf("Wrong number of dups for tree is=%d should be=%d\n", numdups.name, i+1);
}
myitem.a0 = 1000;
if(cfhead_dupname(hd, "XXXX", 4, &myitem) != OK)
cfprintf("Head failed for hash dir.\n");
if(myitem.a0 > 199)
cfprintf("Data failed for Head hashdir =%d\n", myitem.a0);

myitem.a0 = 1000;
if(cftail_dupname(hd, "XXXX", 4, &myitem) != OK)
cfprintf("Tail failed for hash dir.\n");
if(myitem.a0 > 199)
cfprintf("Data failed for Tail hashdir =%d\n", myitem.a0);

myitem.a0 = 1000;
if(cfhead_dupname(hd1, "XXXX", 4, &myitem) != OK)
cfprintf("Head failed for tree dir.\n");
if(myitem.a0 != 0)

cfprintf("Data failed for Head treedir =%d\n", myitem.a0);
if(cftail_dupname(hd1, "XXXX", 4, &myitem) != OK)
cfprintf("Tail failed for tree dir.\n");
if(myitem.a0 != 199)
cfprintf("Data failed for Tail treedir =%d\n", myitem.a0);

cfhead_dupname(hd, "XXXX", 4, &myitem);
finds[myitem.a0] = myitem.a0;
cfhead_dupname(hd1, "XXXX", 4, &myitem);
for(i = 1; i < 200; ++i)
{
if(cfnext_dupname(hd, "XXXX", 4, &myitem) != OK)
cfprintf("Next failed for hashdir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 > 199)
cfprintf("Data failed for Next hashdir at i=%d item=%d\n", i, myitem.a0);
finds[myitem.a0] = myitem.a0;

myitem.a0 = 0;
if(cfnext_dupname(hd1, "XXXX", 4, &myitem) != OK)
cfprintf("Next failed for treedir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 != i)
cfprintf("Data failed for Next treedir at i=%d item=%d\n", i, myitem.a0);
}
cftail_dupname(hd, "XXXX", 4, &myitem);
finds[myitem.a0] = myitem.a0;
cftail_dupname(hd1, "XXXX", 4, NULL);
for(i=198; i >= 0; --i)
{
if(cfprev_dupname(hd, "XXXX", 4, &myitem) != OK)
cfprintf("Prev failed for hashdir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 > 199)
cfprintf("Data failed for Prev hashdir at i=%d item=%d\n", i, myitem.a0);
finds[myitem.a0] = myitem.a0;

myitem.a0 = 0;
if(cfprev_dupname(hd1, "XXXX", 4, &myitem) != OK)
cfprintf("Prev failed for treedir at i=%d item=%d\n", i, myitem.a0);
if(myitem.a0 != i)
cfprintf("Data failed for Prev treedir at i=%d item=%d\n", i, myitem.a0);

}
for(i = 0; i < 200; ++i)
if(finds[i] != i)
cfprintf("Hash find failed at i=%d data=%d\n", i, finds[i]);

cfprintf("End seq_test3\n");
}



  3 Responses to “Category : C Source Code
Archive   : CFF51B.ZIP
Filename : SEQTEST.C

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/