Added basic testing for init failing. Now to add support for testing for the lack of a programmer error.
This commit is contained in:
parent
761d3a434a
commit
41e62cdce1
|
@ -1,5 +1,6 @@
|
|||
// 19 april 2019
|
||||
#include "uipriv.h"
|
||||
#include "testhooks.h"
|
||||
|
||||
enum {
|
||||
stateUninitialized,
|
||||
|
@ -14,6 +15,13 @@ static int state = stateUninitialized;
|
|||
|
||||
#define initialized() (state != stateUninitialized && state != stateError)
|
||||
|
||||
bool testHookInitShouldFail = false;
|
||||
|
||||
void uiprivTestHookSetInitShouldFailArtificially(bool shouldFail)
|
||||
{
|
||||
testHookInitShouldFail = shouldFail;
|
||||
}
|
||||
|
||||
bool uiInit(void *options, uiInitError *err)
|
||||
{
|
||||
if (state != stateUninitialized) {
|
||||
|
@ -37,6 +45,10 @@ bool uiInit(void *options, uiInitError *err)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (testHookInitShouldFail) {
|
||||
state = stateError;
|
||||
return uiprivInitReturnErrorf(err, "general failure");
|
||||
}
|
||||
if (!uiprivSysInit(options, err)) {
|
||||
state = stateError;
|
||||
return false;
|
||||
|
|
|
@ -4,6 +4,9 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
// main.c
|
||||
uiprivExtern void uiprivTestHookSetInitShouldFailArtificially(bool shouldFail);
|
||||
|
||||
// errors.c
|
||||
typedef void (*uiprivTestHookReportProgrammerErrorFunc)(const char *msg, void *data);
|
||||
uiprivExtern void uiprivTestHookReportProgrammerError(uiprivTestHookReportProgrammerErrorFunc f, void *data);
|
||||
|
|
|
@ -1,9 +1,27 @@
|
|||
// 10 april 2019
|
||||
#include "test.h"
|
||||
#include "thread.h"
|
||||
#include "../common/testhooks.h"
|
||||
|
||||
// TODO test the number of calls to queued functions made
|
||||
|
||||
TestNoInit(InitFailure)
|
||||
{
|
||||
uiInitError err;
|
||||
//TODO void *ctx;
|
||||
|
||||
//TODO ctx = beginCheckProgrammerError(NULL);
|
||||
uiprivTestHookSetInitShouldFailArtificially(true);
|
||||
memset(&err, 0, sizeof (uiInitError));
|
||||
err.Size = sizeof (uiInitError);
|
||||
if (uiInit(NULL, &err))
|
||||
TestErrorf("uiInit() succeeded; expected failure");
|
||||
else if (strcmp(err.Message, "general failure") != 0)
|
||||
TestErrorf("uiInit() failed with wrong message:" diff("%s"),
|
||||
err.Message, "general failure");
|
||||
//TODO endCheckProgrammerError(ctx);
|
||||
}
|
||||
|
||||
TestNoInit(InitWithNonNullOptionsIsProgrammerError)
|
||||
{
|
||||
void *ctx;
|
||||
|
|
Loading…
Reference in New Issue