diff options
Diffstat (limited to 'nx-X11')
-rw-r--r-- | nx-X11/programs/Xserver/record/set.c | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/nx-X11/programs/Xserver/record/set.c b/nx-X11/programs/Xserver/record/set.c index afb1024dd..9a47d1b7b 100644 --- a/nx-X11/programs/Xserver/record/set.c +++ b/nx-X11/programs/Xserver/record/set.c @@ -44,9 +44,6 @@ from The Open Group. implemented, and RecordCreateSet will decide heuristically which one to use based on the set members. - Note: When compiling for use in the server, do not use -DTESTING. - When compiling for stand-alone testing of the set ADT, use -DTESTING. - */ #ifdef HAVE_DIX_CONFIG_H @@ -55,28 +52,7 @@ from The Open Group. #include <string.h> -#ifndef TESTING #include "misc.h" -#else -#include <stdio.h> -#include <stdlib.h> - -/* stuff that you normally get from the X Server's environment */ - -typedef int Bool; -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif - -typedef unsigned short CARD16; - -#ifndef max -#define max(_a, _b) ( ((_a) > (_b)) ? (_a) : (_b) ) -#endif - -#endif /* TESTING */ - #include "set.h" static int @@ -417,20 +393,6 @@ bailout: return (RecordSetPtr)prls; } -#ifdef TESTING -typedef enum { - BitVectorImplementation, IntervalListImplementation} RecordSetImplementation; - -RecordSetImplementation _RecordSetImpl; - -static void -_RecordForceSetImplementation(setimpl) - RecordSetImplementation setimpl; -{ - _RecordSetImpl = setimpl; -} -#endif - typedef RecordSetPtr (*RecordCreateSetProcPtr)( RecordSetInterval *pIntervals, int nIntervals, @@ -455,12 +417,8 @@ _RecordSetMemoryRequirements(pIntervals, nIntervals, alignment, ppCreateSet) &bma); rlsize = IntervalListMemoryRequirements(pIntervals, nIntervals, maxMember, &rla); -#ifdef TESTING - if (_RecordSetImpl == BitVectorImplementation) -#else if ( ( (nIntervals > 1) && (maxMember <= 255) ) || (bmsize < rlsize) ) -#endif { *alignment = bma; *ppCreateSet = BitVectorCreateSet; @@ -509,183 +467,3 @@ RecordCreateSet(pIntervals, nIntervals, pMem, memsize) } return (*pCreateSet)(pIntervals, nIntervals, pMem, size); } - -/***************************************************************************/ - -#ifdef TESTING - -/* - -Test Strategy - -Having two set representations is convenient for testing because we -can play them against each other. The test code will be able to -specify which implementation to use. This breaks the encapsulation, -but that seems acceptable for testing. The crux of the test loop -looks like this: - -loop: - generate random list of Intervals - - create set A using bit vector implementation - create set B using Interval list implementation - - for each possible set member - if set A and set B disagree on whether this is a member error; - - iterate over both sets, comparing the intervals returned by each. - if intervals or number of intervals are different error; - - iterate over intervals of set A - for i = interval.first to interval.last - if i is not a member of set B error; - - iterate over intervals of set B - for i = interval.first to interval.last - if i is not a member of set A error; - - destroy sets A, B - -*/ - -int GenerateRandomIntervals(pIntervals, maxintervals) - RecordSetInterval *pIntervals; - int maxintervals; -{ - int i, nIntervals; - - nIntervals = rand() % maxintervals; - - for (i = 0; i < nIntervals; i++) - { - pIntervals[i].first = rand(); - pIntervals[i].last = pIntervals[i].first + rand(); - } - return nIntervals; -} - -#define MAXINTERVALS 100 - -int main(argc, argv) - int argc; - char **argv; -{ - RecordSetPtr bs, rs; - RecordSetInterval br, rr; - RecordSetIteratePtr bi, ri; - CARD16 i; - int testcount; - RecordSetInterval intervals[MAXINTERVALS]; - int nIntervals; - int bsize, rsize; - int balign, ralign; - int pad; - - for (testcount = 0; 1; testcount++) - { - nIntervals = GenerateRandomIntervals(intervals, MAXINTERVALS); - printf("%d nIntervals %d\n", testcount, nIntervals); - - if (testcount & 1) - { - _RecordForceSetImplementation(BitVectorImplementation); - bsize = RecordSetMemoryRequirements(intervals, nIntervals, &balign); - _RecordForceSetImplementation(IntervalListImplementation); - rsize = RecordSetMemoryRequirements(intervals, nIntervals, &ralign); - pad = (ralign - (bsize & (ralign - 1))) & (ralign - 1); - bs = (RecordSetPtr)malloc(bsize + pad + rsize ); - if (!bs) - { - fprintf(stderr, "%d: failed to alloc memory for sets\n", - testcount); - continue; - } - rs = (RecordSetPtr)(((char *)bs) + bsize + pad); - } - else - { - bs = rs = NULL; - bsize = rsize = 0; - } - - _RecordForceSetImplementation(BitVectorImplementation); - bs = RecordCreateSet(intervals, nIntervals, bs, bsize); - _RecordForceSetImplementation(IntervalListImplementation); - rs = RecordCreateSet(intervals, nIntervals, rs, rsize); - - if (!bs || !rs) - { - fprintf(stderr, "%d: failed to create sets\n", testcount); - continue; - } - - for (i = 0; i < 65535; i++) - { - unsigned long b, r; - - b = RecordIsMemberOfSet(bs, i); - r = RecordIsMemberOfSet(rs, i); - if ( (b && !r) || (!b && r) ) - { - fprintf(stderr, "%d: isMemberOfSet %d\n", - testcount, (int)i); - } - } - - bi = RecordIterateSet(bs, NULL, &br); - ri = RecordIterateSet(rs, NULL, &rr); - - while (bi && ri) - { - if ( (rr.first != br.first) || (rr.last != br.last) ) - { - fprintf(stderr, "%d: iterateSet interval value mismatch\n", - testcount); - } - bi = RecordIterateSet(bs, bi, &br); - ri = RecordIterateSet(rs, ri, &rr); - } - if (bi != ri) - { - fprintf(stderr, "%d: iterateSet interval count mismatch\n", - testcount); - } - - - bi = NULL; - while (bi = RecordIterateSet(bs, bi, &br)) - { - for (i = br.first; i <= br.last; i++) - { - if (!RecordIsMemberOfSet(rs, i)) - { - fprintf(stderr, "%d: iterateSet b / isMemberOfSet r %d\n", - testcount, (int)i); - } - } - } - - ri = NULL; - while (ri = RecordIterateSet(rs, ri, &rr)) - { - for (i = rr.first; i <= rr.last; i++) - { - if (!RecordIsMemberOfSet(bs, i) ) - { - fprintf(stderr, "%d: iterateSet r / isMemberOfSet b %d\n", - testcount, (int)i); - } - } - } - - RecordDestroySet(bs); - RecordDestroySet(rs); - - if (testcount & 1) - { - free(bs); - } - } -} - -#endif /* TESTING */ |