base.c   [plain text]


#include <stdio.h>
#include <stdbool.h>

#include "test_support.h"
#include "base.h"

static bool         wasProblem        = false;
static const char*	coal1Where        = NULL;
static int*			coal1Addr         = NULL;
static int			checkInCountCoal1 = 0;

void baseVerifyCoal1(const char* where, int* addr)
{
    LOG("baseVerifyCoal1(%s, %p)", where, addr);
    ++checkInCountCoal1;
    if ( coal1Where == NULL ) {
        coal1Where = where;
        coal1Addr = addr;
    }
    else {
        if ( addr != coal1Addr ) {
            LOG("coal1 resolved to different locations.  %p in %s and %p in %s",
                coal1Addr, coal1Where, addr, where);
            wasProblem = true;
        }
    }
}


static const char*	coal2Where        = NULL;
static int*			coal2Addr         = NULL;
static int			checkInCountCoal2 = 0;

void baseVerifyCoal2(const char* where, int* addr)
{
    LOG("baseVerifyCoal2(%s, %p)", where, addr);
    ++checkInCountCoal2;
    if ( coal2Where == NULL ) {
        coal2Where = where;
        coal2Addr = addr;
    }
    else {
        if ( addr != coal2Addr ) {
            LOG("coal2 resolved to different locations.  %p in %s and %p in %s",
                coal2Addr, coal2Where, addr, where);
            wasProblem = true;
        }
    }
}



void baseCheck()
{
    if ( wasProblem )
        FAIL("was problem");
    else if ( checkInCountCoal1 != 4 )
        FAIL("checkInCountCoal1 != 4");
    else if ( checkInCountCoal2 != 4 )
        FAIL("checkInCountCoal2 != 2");
    else
        PASS("Success");
}