Blender  V3.3
Macros | Functions
BLI_memiter_test.cc File Reference
#include "testing/testing.h"
#include "MEM_guardedalloc.h"
#include "BLI_array_utils.h"
#include "BLI_memiter.h"
#include "BLI_ressource_strings.h"
#include "BLI_string.h"

Go to the source code of this file.

Macros

#define MEMITER_NUMBER_TEST_FN(fn, number_type)
 
#define TEST_EMPTY_AT_CHUNK_SIZE(chunk_size)
 
#define TEST_NUMBER_AT_CHUNK_SIZE(chunk_size)
 
#define STRINGS_TEST(chunk_size, ...)
 
#define TEST_STRINGS_AT_CHUNK_SIZE(chunk_size)
 
#define TEST_WORDS10K_AT_CHUNK_SIZE(chunk_size)
 

Functions

 TEST (memiter, Nop)
 
static void memiter_empty_test (int elems_num, const int chunk_size)
 
static void memiter_string_test (const char *strings[], const int chunk_size)
 
static void memiter_words10k_test (const char split_char, const int chunk_size)
 

Macro Definition Documentation

◆ MEMITER_NUMBER_TEST_FN

#define MEMITER_NUMBER_TEST_FN (   fn,
  number_type 
)
Value:
static void fn(int elems_num, const int chunk_size) \
{ \
BLI_memiter *mi = BLI_memiter_create(chunk_size); \
number_type *data; \
for (int index = 0; index < elems_num; index++) { \
data = (number_type *)BLI_memiter_alloc(mi, sizeof(number_type)); \
*data = index; \
} \
BLI_memiter_handle it; \
BLI_memiter_iter_init(mi, &it); \
uint elem_size; \
int index = 0; \
while ((data = (number_type *)BLI_memiter_iter_step_size(&it, &elem_size))) { \
EXPECT_EQ(sizeof(number_type), elem_size); \
EXPECT_EQ(index, *data); \
index += 1; \
} \
BLI_memiter_destroy(mi); \
}
void * BLI_memiter_alloc(BLI_memiter *mi, unsigned int size) ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL ATTR_NONNULL(1)
Definition: BLI_memiter.c:131
void * BLI_memiter_iter_step_size(BLI_memiter_handle *iter, uint *r_size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
BLI_memiter * BLI_memiter_create(unsigned int chunk_size_min) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL
Definition: BLI_memiter.c:114
static const int chunk_size

Definition at line 40 of file BLI_memiter_test.cc.

◆ STRINGS_TEST

#define STRINGS_TEST (   chunk_size,
  ... 
)
Value:
{ \
const char *data[] = {__VA_ARGS__, NULL}; \
memiter_string_test(data, chunk_size); \
}

Definition at line 243 of file BLI_memiter_test.cc.

◆ TEST_EMPTY_AT_CHUNK_SIZE

#define TEST_EMPTY_AT_CHUNK_SIZE (   chunk_size)
Value:
TEST(memiter, Empty0_##chunk_size) \
{ \
memiter_empty_test(0, chunk_size); \
} \
TEST(memiter, Empty1_##chunk_size) \
{ \
memiter_empty_test(1, chunk_size); \
} \
TEST(memiter, Empty2_##chunk_size) \
{ \
memiter_empty_test(2, chunk_size); \
} \
TEST(memiter, Empty3_##chunk_size) \
{ \
memiter_empty_test(3, chunk_size); \
} \
TEST(memiter, Empty13_##chunk_size) \
{ \
memiter_empty_test(13, chunk_size); \
} \
TEST(memiter, Empty256_##chunk_size) \
{ \
memiter_empty_test(256, chunk_size); \
}
TEST(memiter, Nop)

Definition at line 136 of file BLI_memiter_test.cc.

◆ TEST_NUMBER_AT_CHUNK_SIZE

#define TEST_NUMBER_AT_CHUNK_SIZE (   chunk_size)

Definition at line 168 of file BLI_memiter_test.cc.

◆ TEST_STRINGS_AT_CHUNK_SIZE

#define TEST_STRINGS_AT_CHUNK_SIZE (   chunk_size)
Value:
TEST(memiter, Strings_##chunk_size) \
{ \
STRINGS_TEST(chunk_size, ""); \
STRINGS_TEST(chunk_size, "test", "me"); \
STRINGS_TEST(chunk_size, "more", "test", "data", "to", "follow"); \
}

Definition at line 249 of file BLI_memiter_test.cc.

◆ TEST_WORDS10K_AT_CHUNK_SIZE

#define TEST_WORDS10K_AT_CHUNK_SIZE (   chunk_size)
Value:
TEST(memiter, Words10kSentence_##chunk_size) \
{ \
memiter_words10k_test('.', chunk_size); \
} \
TEST(memiter, Words10kWords_##chunk_size) \
{ \
memiter_words10k_test(' ', chunk_size); \
}

Definition at line 263 of file BLI_memiter_test.cc.

Function Documentation

◆ memiter_empty_test()

static void memiter_empty_test ( int  elems_num,
const int  chunk_size 
)
static

◆ memiter_string_test()

static void memiter_string_test ( const char *  strings[],
const int  chunk_size 
)
static

◆ memiter_words10k_test()

static void memiter_words10k_test ( const char  split_char,
const int  chunk_size 
)
static

◆ TEST()

TEST ( memiter  ,
Nop   
)

Definition at line 13 of file BLI_memiter_test.cc.

References BLI_memiter_create(), and BLI_memiter_destroy().