#include <stdio.h>
#include <stdbool.h>
#include "base.h"
#include "test.h" // PASS(), FAIL(), XPASS(), XFAIL()
static bool wasProblem = false;
static const char* coal1Where = NULL;
static int* coal1Addr = NULL;
static int checkInCountCoal1 = 0;
void baseVerifyCoal1(const char* where, int* addr)
{
++checkInCountCoal1;
if ( coal1Where == NULL ) {
coal1Where = where;
coal1Addr = addr;
}
else {
if ( addr != coal1Addr ) {
fprintf(stderr, "coal1 resolved to different locations. %p %s and %p %s\n",
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)
{
++checkInCountCoal2;
if ( coal2Where == NULL ) {
coal2Where = where;
coal2Addr = addr;
}
else {
if ( addr != coal2Addr ) {
fprintf(stderr, "coal2 resolved to different locations. %p %s and %p %s\n",
coal2Addr, coal2Where, addr, where);
wasProblem = true;
}
}
}
void baseCheck()
{
if ( wasProblem || (checkInCountCoal1 != 3) || (checkInCountCoal2 != 2) )
FAIL("weak-coal");
else
PASS("weak-coal");
}