And finished adjusting the tests accordingly. Now to test.

This commit is contained in:
Pietro Gagliardi 2019-05-03 02:02:20 -04:00
parent e2baa5bb5c
commit dbfea28313
4 changed files with 18 additions and 12 deletions

View File

@ -61,7 +61,7 @@ testingTest(QueueMain)
int flag = 0;
uiQueueMain(queued, &flag);
timeout_uiMain(t, 5 * timerSecond, 0);
timeout_uiMain(t, 5 * timerSecond);
if (flag != 1)
testingTErrorf(t, "uiQueueMain() didn't set flag properly: got %d, want 1", flag);
}
@ -122,7 +122,7 @@ testingTest(QueueMain_Sequence)
uint32_t flag;
queueOrder(&flag);
timeout_uiMain(t, 5 * timerSecond, 0);
timeout_uiMain(t, 5 * timerSecond);
checkOrder(t, flag);
}
@ -141,7 +141,7 @@ testingTest(QueueMain_DifferentThread)
int flag = 0;
thread = testingNewThread(queueThread, &flag);
timeout_uiMain(t, 5 * timerSecond, 0);
timeout_uiMain(t, 5 * timerSecond);
testingThreadWaitAndFree(thread);
if (flag != 1)
testingTErrorf(t, "uiQueueMain() didn't set flag properly: got %d, want 1", flag);
@ -162,7 +162,7 @@ testingTest(QueueMain_DifferentThreadSequence)
uint32_t flag = 1; // make sure it's initialized just in case
thread = testingNewThread(queueOrderThread, &flag);
timeout_uiMain(t, 5 * timerSecond, 0);
timeout_uiMain(t, 5 * timerSecond);
testingThreadWaitAndFree(thread);
checkOrder(t, flag);
}

View File

@ -5,7 +5,15 @@
// main.c
extern void timeoutMain(testingT *t, void *data);
#define timeout_uiMain(t, timeout, failNowOnError) \
testingRunWithTimeout(t, timeout, \
timeoutMain, NULL, \
"uiMain()", failNowOnError);
#define timeout_uiMain(t, d) { \
timerSysError err; \
int timedOut; \
err = timerRunWithTimeout(d, timeoutMain, NULL, &timedOut); \
if (err != 0) \
testingTErrorf(t, "error running uiMain() in timeout: " timerSysErrorFmt, timerSysErrorFmtArg(err)); \
if (timedOut) { \
char timeoutstr[timerDurationStringLen]; \
timerDurationString(d, timeoutstr); \
testingTErrorf(t, "uiMain() timed out (%s)", timeoutstr); \
} \
}

View File

@ -21,11 +21,11 @@ extern void timerDurationString(timerDuration d, char buf[timerDurationStringLen
typedef uint64_t timerSysError;
#ifdef _WIN32
#define timerSysErrorFmt "0x%08I32X"
#define timerSysErrorArg(x) ((uint32_t) x)
#define timerSysErrorFmtArg(x) ((uint32_t) x)
#else
#include <string.h>
#define timerSysErrorFmt "%s (%d)"
#define timerSysErrorArg(x) strerror((int) x), ((int) x)
#define timerSysErrorFmtArg(x) strerror((int) x), ((int) x)
#endif
extern timerSysError timerRunWithTimeout(timerDuration d, void (*f)(void *data), void *data, int *timedOut);

View File

@ -357,7 +357,6 @@ static unsigned __stdcall timerThreadProc(void *data)
timerSysError timerRunWithTimeout(timerDuration d, void (*f)(void *data), void *data, int *timedOut)
{
volatile struct timeoutParams p;
char timeoutstr[timerDurationStringLen];
MSG msg;
volatile uintptr_t timerThreadValue = 0;
volatile HANDLE timerThread = NULL;
@ -366,7 +365,6 @@ timerSysError timerRunWithTimeout(timerDuration d, void (*f)(void *data), void *
*timedOut = 0;
ZeroMemory(&p, sizeof (struct timeoutParams));
timerDurationString(d, timeoutstr);
hr = setupNonReentrance(&p);
if (hr != S_OK)