Migrated noinitwrongthread.c.
This commit is contained in:
parent
8c7f1987da
commit
4d78b5a3ef
|
@ -4,6 +4,9 @@
|
||||||
|
|
||||||
allcallsCase(uiMain, /* no arguments */)
|
allcallsCase(uiMain, /* no arguments */)
|
||||||
allcallsCase(uiQuit, /* no arguments */)
|
allcallsCase(uiQuit, /* no arguments */)
|
||||||
|
#ifdef allcallsIncludeQueueMain
|
||||||
|
allcallsCase(uiQueueMain, NULL, NULL)
|
||||||
|
#endif
|
||||||
|
|
||||||
allcallsCase(uiNewEvent, NULL)
|
allcallsCase(uiNewEvent, NULL)
|
||||||
allcallsCase(uiEventAddHandler, NULL, NULL, NULL, NULL)
|
allcallsCase(uiEventAddHandler, NULL, NULL, NULL, NULL)
|
||||||
|
|
|
@ -7,7 +7,7 @@ libui_test_sources = [
|
||||||
'events_errors.cpp',
|
'events_errors.cpp',
|
||||||
'initmain.c',
|
'initmain.c',
|
||||||
'main.c',
|
'main.c',
|
||||||
# 'noinitwrongthread.c',
|
'noinitwrongthread.cpp',
|
||||||
]
|
]
|
||||||
|
|
||||||
if libui_OS == 'windows'
|
if libui_OS == 'windows'
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
// 28 may 2019
|
|
||||||
#include "test.h"
|
|
||||||
|
|
||||||
#define allcallsCase(f, ...) \
|
|
||||||
void doCase ## f(void *data) \
|
|
||||||
{ \
|
|
||||||
f(__VA_ARGS__); \
|
|
||||||
}
|
|
||||||
allcallsCase(uiQueueMain, NULL, NULL)
|
|
||||||
#include "allcalls.h"
|
|
||||||
#undef allcallsCase
|
|
||||||
|
|
||||||
static const struct {
|
|
||||||
const char *name;
|
|
||||||
void (*f)(void *data);
|
|
||||||
const char *beforeInitWant;
|
|
||||||
const char *wrongThreadWant;
|
|
||||||
} allCases[] = {
|
|
||||||
#define allcallsCase(f, ...) { #f, doCase ## f, \
|
|
||||||
"attempt to call " #f "() before uiInit()", \
|
|
||||||
allcallsThread(#f), \
|
|
||||||
},
|
|
||||||
#define allcallsThread(f) NULL
|
|
||||||
allcallsCase(uiQueueMain, NULL, NULL)
|
|
||||||
#undef allcallsThread
|
|
||||||
#define allcallsThread(f) "attempt to call " f "() on a thread other than the GUI thread"
|
|
||||||
#include "allcalls.h"
|
|
||||||
#undef allcallsCase
|
|
||||||
{ NULL, NULL, NULL, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
testingTestInSet(beforeTests, FunctionsFailBeforeInit)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
|
|
||||||
for (i = 0; allCases[i].name != NULL; i++) {
|
|
||||||
if (allCases[i].beforeInitWant == NULL)
|
|
||||||
continue;
|
|
||||||
checkProgrammerError(t, allCases[i].name, allCases[i].f, NULL, allCases[i].beforeInitWant);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
testingTest(FunctionsFailOnWrongThread)
|
|
||||||
{
|
|
||||||
size_t i;
|
|
||||||
|
|
||||||
for (i = 0; allCases[i].name != NULL; i++) {
|
|
||||||
if (allCases[i].wrongThreadWant == NULL)
|
|
||||||
continue;
|
|
||||||
checkProgrammerErrorInThread(t, allCases[i].name, allCases[i].f, NULL, allCases[i].wrongThreadWant);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
// 28 may 2019
|
||||||
|
#include "test.h"
|
||||||
|
|
||||||
|
static const struct checkErrorCase beforeInitCases[] = {
|
||||||
|
#define allcallsCase(f, ...) { #f "()", [](void) { f(__VA_ARGS__); }, "attempt to call " #f "() before uiInit()" },
|
||||||
|
#define allcallsIncludeQueueMain
|
||||||
|
#include "allcalls.h"
|
||||||
|
#undef allcallsIncludeQueueMain
|
||||||
|
#undef allcallsCase
|
||||||
|
{ NULL, NULL, NULL },
|
||||||
|
};
|
||||||
|
|
||||||
|
testingTestInSet(beforeTests, FunctionsFailBeforeInit)
|
||||||
|
{
|
||||||
|
checkProgrammerErrors(t, beforeInitCases);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const struct checkErrorCase wrongThreadCases[] = {
|
||||||
|
#define allcallsCase(f, ...) { #f "()", [](void) { f(__VA_ARGS__); }, "attempt to call " #f "() on a thread other than the GUI thread" },
|
||||||
|
#include "allcalls.h"
|
||||||
|
#undef allcallsCase
|
||||||
|
{ NULL, NULL, NULL },
|
||||||
|
};
|
||||||
|
|
||||||
|
testingTest(FunctionsFailOnWrongThread)
|
||||||
|
{
|
||||||
|
checkProgrammerErrorsInThread(t, wrongThreadCases);
|
||||||
|
}
|
Loading…
Reference in New Issue