gout

A static git page generator
git clone https://git.bracken.jp/gout.git
Log | Files | Refs | README | LICENSE

test_utils.h (1406B)


      1 #ifndef GOUT_TEST_UTILS_H_
      2 #define GOUT_TEST_UTILS_H_
      3 
      4 #include <string.h>
      5 #include "utest.h"
      6 
      7 #define EXPECT_STR_SEQUENCE(buf, ...)                                \
      8   do {                                                               \
      9     const char* _seq[] = {__VA_ARGS__};                              \
     10     const char* _p = (buf);                                          \
     11     for (size_t _i = 0; _i < sizeof(_seq) / sizeof(_seq[0]); _i++) { \
     12       _p = strstr(_p, _seq[_i]);                                     \
     13       if (_p == NULL) {                                              \
     14         EXPECT_NE(NULL, _p);                                         \
     15         break;                                                       \
     16       }                                                              \
     17     }                                                                \
     18   } while (0)
     19 
     20 #define EXPECT_STR_COUNT(buf, str, expected) \
     21   do {                                       \
     22     int _count = 0;                          \
     23     const char* _p = (buf);                  \
     24     size_t _len = strlen(str);               \
     25     while ((_p = strstr(_p, str)) != NULL) { \
     26       _count++;                              \
     27       _p += _len;                            \
     28     }                                        \
     29     EXPECT_EQ((int)(expected), _count);      \
     30   } while (0)
     31 
     32 #endif  // GOUT_TEST_UTILS_H_