Explicitly specified 0 as the invalid control type and stopped using 5 as an invalid control type.

This commit is contained in:
Pietro Gagliardi 2020-05-10 21:54:37 -04:00
parent 3689d3c96a
commit c52656f2c2
3 changed files with 9 additions and 13 deletions

View File

@ -222,7 +222,7 @@ void *uiControlImplData(uiControl *c)
}
static uiControl testHookControlWithInvalidControlMarker = {
.controlID = 5,
.controlID = 0,
};
uiControl *uiprivTestHookControlWithInvalidControlMarker(void)
@ -232,7 +232,7 @@ uiControl *uiprivTestHookControlWithInvalidControlMarker(void)
static uiControl testHookControlWithInvalidType = {
.controlID = controlTypeID,
.typeID = 5,
.typeID = 0,
};
uiControl *uiprivTestHookControlWithInvalidType(void)

View File

@ -18,7 +18,7 @@ uint32_t uiControlType(void);
`uiControl` is an opaque type that describes a control.
`uiControlType()` is the type identifier of a `uiControl` as passed to `uiCheckControlType()`. You rarely need to call this directly; the `uiControl()` conversion macro does this for you.
`uiControlType()` is the type identifier of a `uiControl` as passed to `uiCheckControlType()`. You rarely need to call this directly; the `uiControl()` conversion macro does this for you. A control type identifier of 0 is always invalid; this can be used to initialize the variables that hold the returned identifiers from `uiRegisterControlType()`.
### `uiControlVtable`

View File

@ -2,9 +2,6 @@
#include "test.h"
#include "../common/testhooks.h"
// TODO replace hardcoded control types of 5 with a constant from the test hook system
// TODO also test 0 here too
struct counts {
unsigned int countInit;
unsigned int countFree;
@ -55,7 +52,6 @@ static const uiControlVtable vtable = {
static uint32_t testControlType(void)
{
// TODO explicitly make/document 0 as always invalid
static uint32_t type = 0;
if (type == 0)
@ -205,7 +201,7 @@ Test(CheckingControlWithAnUnknownTypeIsProgrammerError)
{
void *ctx;
ctx = beginCheckProgrammerError("uiCheckControlType(): unknown uiControl type 5 found in uiControl (this is likely not a real uiControl or some data is corrupt)");
ctx = beginCheckProgrammerError("uiCheckControlType(): unknown uiControl type 0 found in uiControl (this is likely not a real uiControl or some data is corrupt)");
uiCheckControlType(uiprivTestHookControlWithInvalidType(), testControlType());
endCheckProgrammerError(ctx);
}
@ -214,7 +210,7 @@ Test(CheckingControlWithAnUnknownTypeIsProgrammerErrorEvenIfCheckingAgainstuiCon
{
void *ctx;
ctx = beginCheckProgrammerError("uiCheckControlType(): unknown uiControl type 5 found in uiControl (this is likely not a real uiControl or some data is corrupt)");
ctx = beginCheckProgrammerError("uiCheckControlType(): unknown uiControl type 0 found in uiControl (this is likely not a real uiControl or some data is corrupt)");
uiCheckControlType(uiprivTestHookControlWithInvalidType(), uiControlType());
endCheckProgrammerError(ctx);
}
@ -224,9 +220,9 @@ Test(CheckingForUnknownControlTypeIsProgrammerError)
uiControl *c;
void *ctx;
ctx = beginCheckProgrammerError("uiCheckControlType(): unknown uiControl type 5 requested");
ctx = beginCheckProgrammerError("uiCheckControlType(): unknown uiControl type 0 requested");
c = uiNewControl(testControlType(), NULL);
uiCheckControlType(c, 5);
uiCheckControlType(c, 0);
uiControlFree(c);
endCheckProgrammerError(ctx);
}
@ -256,8 +252,8 @@ Test(NewControlOfUnknownTypeIsProgrammerError)
{
void *ctx;
ctx = beginCheckProgrammerError("uiNewControl(): unknown uiControl type 5 requested");
uiNewControl(5, NULL);
ctx = beginCheckProgrammerError("uiNewControl(): unknown uiControl type 0 requested");
uiNewControl(0, NULL);
endCheckProgrammerError(ctx);
}