gitout

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

test11.c (5319B)


      1 /*
      2    This is free and unencumbered software released into the public domain.
      3 
      4    Anyone is free to copy, modify, publish, use, compile, sell, or
      5    distribute this software, either in source code form or as a compiled
      6    binary, for any purpose, commercial or non-commercial, and by any
      7    means.
      8 
      9    In jurisdictions that recognize copyright laws, the author or authors
     10    of this software dedicate any and all copyright interest in the
     11    software to the public domain. We make this dedication for the benefit
     12    of the public at large and to the detriment of our heirs and
     13    successors. We intend this dedication to be an overt act of
     14    relinquishment in perpetuity of all present and future rights to this
     15    software under copyright law.
     16 
     17    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     18    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     19    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
     20    IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
     21    OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     22    ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     23    OTHER DEALINGS IN THE SOFTWARE.
     24 
     25    For more information, please refer to <http://unlicense.org/>
     26 */
     27 
     28 #include "utest.h"
     29 
     30 #ifdef _MSC_VER
     31 /* disable 'conditional expression is constant' - our examples below use this!
     32  */
     33 #pragma warning(disable : 4127)
     34 #endif
     35 
     36 UTEST(c11, ASSERT_TRUE) { ASSERT_TRUE(1); }
     37 
     38 UTEST(c11, ASSERT_FALSE) { ASSERT_FALSE(0); }
     39 
     40 UTEST(c11, ASSERT_EQ) { ASSERT_EQ(1, 1); }
     41 
     42 UTEST(c11, ASSERT_NE) { ASSERT_NE(1, 2); }
     43 
     44 UTEST(c11, ASSERT_LT) { ASSERT_LT(1, 2); }
     45 
     46 UTEST(c11, ASSERT_LE) {
     47   ASSERT_LE(1, 1);
     48   ASSERT_LE(1, 2);
     49 }
     50 
     51 UTEST(c11, ASSERT_GT) { ASSERT_GT(2, 1); }
     52 
     53 UTEST(c11, ASSERT_GE) {
     54   ASSERT_GE(1, 1);
     55   ASSERT_GE(2, 1);
     56 }
     57 
     58 UTEST(c11, ASSERT_STREQ) { ASSERT_STREQ("foo", "foo"); }
     59 
     60 UTEST(c11, ASSERT_STRNE) { ASSERT_STRNE("foo", "bar"); }
     61 
     62 UTEST(c11, EXPECT_TRUE) { EXPECT_TRUE(1); }
     63 
     64 UTEST(c11, EXPECT_FALSE) { EXPECT_FALSE(0); }
     65 
     66 UTEST(c11, EXPECT_EQ) { EXPECT_EQ(1, 1); }
     67 
     68 UTEST(c11, EXPECT_NE) { EXPECT_NE(1, 2); }
     69 
     70 UTEST(c11, EXPECT_LT) { EXPECT_LT(1, 2); }
     71 
     72 UTEST(c11, EXPECT_LE) {
     73   EXPECT_LE(1, 1);
     74   EXPECT_LE(1, 2);
     75 }
     76 
     77 UTEST(c11, EXPECT_GT) { EXPECT_GT(2, 1); }
     78 
     79 UTEST(c11, EXPECT_GE) {
     80   EXPECT_GE(1, 1);
     81   EXPECT_GE(2, 1);
     82 }
     83 
     84 UTEST(c11, EXPECT_STREQ) { EXPECT_STREQ("foo", "foo"); }
     85 
     86 UTEST(c11, EXPECT_STRNE) { EXPECT_STRNE("foo", "bar"); }
     87 
     88 UTEST(c11, no_double_eval) {
     89   int i = 0;
     90   ASSERT_EQ(i++, 0);
     91   ASSERT_EQ(i, 1);
     92 }
     93 
     94 struct MyTestF {
     95   int foo;
     96 };
     97 
     98 UTEST_F_SETUP(MyTestF) {
     99   ASSERT_EQ(0, utest_fixture->foo);
    100   utest_fixture->foo = 42;
    101 }
    102 
    103 UTEST_F_TEARDOWN(MyTestF) { ASSERT_EQ(13, utest_fixture->foo); }
    104 
    105 UTEST_F(MyTestF, c11) {
    106   ASSERT_EQ(42, utest_fixture->foo);
    107   utest_fixture->foo = 13;
    108 }
    109 
    110 UTEST_F(MyTestF, c11_2) {
    111   ASSERT_EQ(42, utest_fixture->foo);
    112   utest_fixture->foo = 13;
    113 }
    114 
    115 struct MyTestI {
    116   size_t foo;
    117   size_t bar;
    118 };
    119 
    120 UTEST_I_SETUP(MyTestI) {
    121   ASSERT_EQ(0u, utest_fixture->foo);
    122   ASSERT_EQ(0u, utest_fixture->bar);
    123   utest_fixture->foo = 42;
    124   utest_fixture->bar = utest_index;
    125 }
    126 
    127 UTEST_I_TEARDOWN(MyTestI) {
    128   ASSERT_EQ(13u, utest_fixture->foo);
    129   ASSERT_EQ(utest_index, utest_fixture->bar);
    130 }
    131 
    132 UTEST_I(MyTestI, c11, 2) {
    133   ASSERT_GT(2u, utest_fixture->bar);
    134   utest_fixture->foo = 13;
    135 }
    136 
    137 UTEST_I(MyTestI, c11_2, 128) {
    138   ASSERT_GT(128u, utest_fixture->bar);
    139   utest_fixture->foo = 13;
    140 }
    141 
    142 UTEST(c11, Float) {
    143   float a = 1;
    144   float b = 2;
    145   EXPECT_NE(a, b);
    146   ASSERT_NE(a, b);
    147 }
    148 
    149 UTEST(c11, Double) {
    150   double a = 1;
    151   double b = 2;
    152   EXPECT_NE(a, b);
    153   ASSERT_NE(a, b);
    154 }
    155 
    156 UTEST(c11, LongDouble) {
    157   long double a = 1;
    158   long double b = 2;
    159   EXPECT_NE(a, b);
    160   ASSERT_NE(a, b);
    161 }
    162 
    163 UTEST(c11, Char) {
    164   char a = 1;
    165   char b = 2;
    166   EXPECT_NE(a, b);
    167   ASSERT_NE(a, b);
    168 }
    169 
    170 UTEST(c11, SignedChar) {
    171   signed char a = 1;
    172   signed char b = 2;
    173   EXPECT_NE(a, b);
    174   ASSERT_NE(a, b);
    175 }
    176 
    177 UTEST(c11, UChar) {
    178   unsigned char a = 1;
    179   unsigned char b = 2;
    180   EXPECT_NE(a, b);
    181   ASSERT_NE(a, b);
    182 }
    183 
    184 UTEST(c11, Short) {
    185   short a = 1;
    186   short b = 2;
    187   EXPECT_NE(a, b);
    188   ASSERT_NE(a, b);
    189 }
    190 
    191 UTEST(c11, UShort) {
    192   unsigned short a = 1;
    193   unsigned short b = 2;
    194   EXPECT_NE(a, b);
    195   ASSERT_NE(a, b);
    196 }
    197 
    198 UTEST(c11, Int) {
    199   int a = 1;
    200   int b = 2;
    201   EXPECT_NE(a, b);
    202   ASSERT_NE(a, b);
    203 }
    204 
    205 UTEST(c11, UInt) {
    206   unsigned int a = 1;
    207   unsigned int b = 2;
    208   EXPECT_NE(a, b);
    209   ASSERT_NE(a, b);
    210 }
    211 
    212 UTEST(c11, Long) {
    213   long a = 1;
    214   long b = 2;
    215   EXPECT_NE(a, b);
    216   ASSERT_NE(a, b);
    217 }
    218 
    219 UTEST(c11, ULong) {
    220   unsigned long a = 1;
    221   unsigned long b = 2;
    222   EXPECT_NE(a, b);
    223   ASSERT_NE(a, b);
    224 }
    225 
    226 #if defined(__clang__)
    227 #if __has_warning("-Wunsafe-buffer-usage")
    228 #pragma clang diagnostic push
    229 #pragma clang diagnostic ignored "-Wunsafe-buffer-usage"
    230 #endif
    231 #endif
    232 
    233 UTEST(c11, Ptr) {
    234   char foo = 42;
    235   EXPECT_NE(&foo, &foo + 1);
    236 }
    237 
    238 UTEST(c11, VoidPtr) {
    239   void *foo = 0;
    240   EXPECT_NE(foo, (char *)foo + 1);
    241 }
    242 
    243 static const int data[4] = {42, 13, 6, -53};
    244 
    245 UTEST(c11, Array) { EXPECT_NE(data, data + 1); }
    246 
    247 #if defined(__clang__)
    248 #if __has_warning("-Wunsafe-buffer-usage")
    249 #pragma clang diagnostic pop
    250 #endif
    251 #endif
    252 
    253 UTEST(c11, Near) {
    254   float a = 42.0f;
    255   float b = 42.01f;
    256   EXPECT_NEAR(a, b, 0.01f);
    257   ASSERT_NEAR(a, b, 0.01f);
    258 }
    259 
    260 UTEST(c11, Todo) { UTEST_SKIP("Not yet implemented!"); }