Add unit tests for allocate_field().
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
/* This includes the whole .c file to get access to static functions. */
|
/* This includes the whole .c file to get access to static functions. */
|
||||||
|
#define PB_ENABLE_MALLOC
|
||||||
#include "pb_decode.c"
|
#include "pb_decode.c"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -299,6 +300,28 @@ int main()
|
|||||||
dest.submsg.data_count == 5)
|
dest.submsg.data_count == 5)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
pb_istream_t s = {0};
|
||||||
|
void *data = NULL;
|
||||||
|
|
||||||
|
COMMENT("Testing allocate_field")
|
||||||
|
TEST(allocate_field(&s, &data, 10, 10) && data != NULL);
|
||||||
|
TEST(allocate_field(&s, &data, 10, 20) && data != NULL);
|
||||||
|
|
||||||
|
{
|
||||||
|
void *oldvalue = data;
|
||||||
|
size_t very_big = (size_t)-1;
|
||||||
|
size_t somewhat_big = very_big / 2 + 1;
|
||||||
|
size_t not_so_big = (size_t)1 << (4 * sizeof(size_t));
|
||||||
|
|
||||||
|
TEST(!allocate_field(&s, &data, very_big, 2) && data == oldvalue);
|
||||||
|
TEST(!allocate_field(&s, &data, somewhat_big, 2) && data == oldvalue);
|
||||||
|
TEST(!allocate_field(&s, &data, not_so_big, not_so_big) && data == oldvalue);
|
||||||
|
}
|
||||||
|
|
||||||
|
pb_free(data);
|
||||||
|
}
|
||||||
|
|
||||||
if (status != 0)
|
if (status != 0)
|
||||||
fprintf(stdout, "\n\nSome tests FAILED!\n");
|
fprintf(stdout, "\n\nSome tests FAILED!\n");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user