1#include "test/jemalloc_test.h" 2 3TEST_BEGIN(test_ticker_tick) 4{ 5#define NREPS 2 6#define NTICKS 3 7 ticker_t ticker; 8 int32_t i, j; 9 10 ticker_init(&ticker, NTICKS); 11 for (i = 0; i < NREPS; i++) { 12 for (j = 0; j < NTICKS; j++) { 13 assert_u_eq(ticker_read(&ticker), NTICKS - j, 14 "Unexpected ticker value (i=%d, j=%d)", i, j); 15 assert_false(ticker_tick(&ticker), 16 "Unexpected ticker fire (i=%d, j=%d)", i, j); 17 } 18 assert_u32_eq(ticker_read(&ticker), 0, 19 "Expected ticker depletion"); 20 assert_true(ticker_tick(&ticker), 21 "Expected ticker fire (i=%d)", i); 22 assert_u32_eq(ticker_read(&ticker), NTICKS, 23 "Expected ticker reset"); 24 } 25#undef NTICKS 26} 27TEST_END 28 29TEST_BEGIN(test_ticker_ticks) 30{ 31#define NTICKS 3 32 ticker_t ticker; 33 34 ticker_init(&ticker, NTICKS); 35 36 assert_u_eq(ticker_read(&ticker), NTICKS, "Unexpected ticker value"); 37 assert_false(ticker_ticks(&ticker, NTICKS), "Unexpected ticker fire"); 38 assert_u_eq(ticker_read(&ticker), 0, "Unexpected ticker value"); 39 assert_true(ticker_ticks(&ticker, NTICKS), "Expected ticker fire"); 40 assert_u_eq(ticker_read(&ticker), NTICKS, "Unexpected ticker value"); 41 42 assert_true(ticker_ticks(&ticker, NTICKS + 1), "Expected ticker fire"); 43 assert_u_eq(ticker_read(&ticker), NTICKS, "Unexpected ticker value"); 44#undef NTICKS 45} 46TEST_END 47 48TEST_BEGIN(test_ticker_copy) 49{ 50#define NTICKS 3 51 ticker_t ta, tb; 52 53 ticker_init(&ta, NTICKS); 54 ticker_copy(&tb, &ta); 55 assert_u_eq(ticker_read(&tb), NTICKS, "Unexpected ticker value"); 56 assert_true(ticker_ticks(&tb, NTICKS + 1), "Expected ticker fire"); 57 assert_u_eq(ticker_read(&tb), NTICKS, "Unexpected ticker value"); 58 59 ticker_tick(&ta); 60 ticker_copy(&tb, &ta); 61 assert_u_eq(ticker_read(&tb), NTICKS - 1, "Unexpected ticker value"); 62 assert_true(ticker_ticks(&tb, NTICKS), "Expected ticker fire"); 63 assert_u_eq(ticker_read(&tb), NTICKS, "Unexpected ticker value"); 64#undef NTICKS 65} 66TEST_END 67 68int 69main(void) 70{ 71 72 return (test( 73 test_ticker_tick, 74 test_ticker_ticks, 75 test_ticker_copy)); 76} 77