check ptr when comparing two TestState values
This commit is contained in:
parent
e69a2d0375
commit
0665b8be3e
74
test/util.c
74
test/util.c
|
@ -28,6 +28,7 @@
|
||||||
// Local Types
|
// Local Types
|
||||||
|
|
||||||
typedef struct CompareInts CompareInts;
|
typedef struct CompareInts CompareInts;
|
||||||
|
typedef struct ComparePtrs ComparePtrs;
|
||||||
|
|
||||||
struct CompareInts
|
struct CompareInts
|
||||||
{
|
{
|
||||||
|
@ -36,6 +37,13 @@ struct CompareInts
|
||||||
int actual;
|
int actual;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct ComparePtrs
|
||||||
|
{
|
||||||
|
const char *context;
|
||||||
|
const void *expected;
|
||||||
|
const void *actual;
|
||||||
|
};
|
||||||
|
|
||||||
// Local Prototypes
|
// Local Prototypes
|
||||||
|
|
||||||
// compare the run value of two states
|
// compare the run value of two states
|
||||||
|
@ -74,6 +82,15 @@ static void compare_pending(
|
||||||
const TestState *
|
const TestState *
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// compare the ptr value of two states
|
||||||
|
static void compare_ptr(
|
||||||
|
TestState *,
|
||||||
|
const char *,
|
||||||
|
const char *,
|
||||||
|
const TestState *,
|
||||||
|
const TestState *
|
||||||
|
);
|
||||||
|
|
||||||
// compare two ints
|
// compare two ints
|
||||||
static void compare_ints(
|
static void compare_ints(
|
||||||
TestState *,
|
TestState *,
|
||||||
|
@ -82,7 +99,16 @@ static void compare_ints(
|
||||||
int
|
int
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// compare two pointers
|
||||||
|
static void compare_ptrs(
|
||||||
|
TestState *,
|
||||||
|
const char *,
|
||||||
|
void *,
|
||||||
|
void *
|
||||||
|
);
|
||||||
|
|
||||||
decl_test(compare_ints_test);
|
decl_test(compare_ints_test);
|
||||||
|
decl_test(compare_ptrs_test);
|
||||||
|
|
||||||
// Public Functions
|
// Public Functions
|
||||||
|
|
||||||
|
@ -99,6 +125,7 @@ compare_states(
|
||||||
compare_passed(s, prefix, context, expected, actual);
|
compare_passed(s, prefix, context, expected, actual);
|
||||||
compare_failed(s, prefix, context, expected, actual);
|
compare_failed(s, prefix, context, expected, actual);
|
||||||
compare_pending(s, prefix, context, expected, actual);
|
compare_pending(s, prefix, context, expected, actual);
|
||||||
|
compare_ptr(s, prefix, context, expected, actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Local Functions
|
// Local Functions
|
||||||
|
@ -167,6 +194,22 @@ compare_pending(
|
||||||
compare_ints(s, full_context, expected->pending, actual->pending);
|
compare_ints(s, full_context, expected->pending, actual->pending);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
compare_ptr(
|
||||||
|
TestState *s,
|
||||||
|
const char *prefix,
|
||||||
|
const char *context,
|
||||||
|
const TestState *expected,
|
||||||
|
const TestState *actual
|
||||||
|
)
|
||||||
|
{
|
||||||
|
char full_context[STR_BUF_SIZE];
|
||||||
|
print(prefix);
|
||||||
|
print("ptr\n");
|
||||||
|
snprintf(full_context, STR_BUF_SIZE, "%s ptr:", context);
|
||||||
|
compare_ptrs(s, full_context, expected->ptr, actual->ptr);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
compare_ints(
|
compare_ints(
|
||||||
TestState *s,
|
TestState *s,
|
||||||
|
@ -185,6 +228,24 @@ compare_ints(
|
||||||
s->ptr = old_ptr;
|
s->ptr = old_ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
compare_ptrs(
|
||||||
|
TestState *s,
|
||||||
|
const char *context,
|
||||||
|
void *expected,
|
||||||
|
void *actual
|
||||||
|
)
|
||||||
|
{
|
||||||
|
void *old_ptr = s->ptr;
|
||||||
|
ComparePtrs cp;
|
||||||
|
cp.context = context;
|
||||||
|
cp.expected = expected;
|
||||||
|
cp.actual = actual;
|
||||||
|
s->ptr = &cp;
|
||||||
|
run_test(s, compare_ptrs_test);
|
||||||
|
s->ptr = old_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
def_test(compare_ints_test, s)
|
def_test(compare_ints_test, s)
|
||||||
{
|
{
|
||||||
const CompareInts *ci = s->ptr;
|
const CompareInts *ci = s->ptr;
|
||||||
|
@ -198,4 +259,17 @@ def_test(compare_ints_test, s)
|
||||||
return test_failure;
|
return test_failure;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def_test(compare_ptrs_test, s)
|
||||||
|
{
|
||||||
|
const ComparePtrs *cp = s->ptr;
|
||||||
|
if (cp->actual == cp->expected) return test_success;
|
||||||
|
char str[STR_BUF_SIZE];
|
||||||
|
append_test_log(s, cp->context);
|
||||||
|
snprintf(str, STR_BUF_SIZE, "\texpected: 0x%x", cp->expected);
|
||||||
|
append_test_log(s, str);
|
||||||
|
snprintf(str, STR_BUF_SIZE, "\tactual: 0x%x", cp->actual);
|
||||||
|
append_test_log(s, str);
|
||||||
|
return test_failure;
|
||||||
|
}
|
||||||
|
|
||||||
//jl
|
//jl
|
||||||
|
|
Loading…
Reference in New Issue
Block a user