19998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#include "test/jemalloc_test.h" 29998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 39998000b2b77205a37ae630d5fd1ec9ee4569476Jason EvansTEST_BEGIN(test_ticker_tick) 49998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans{ 59998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#define NREPS 2 69998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#define NTICKS 3 79998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_t ticker; 89998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans int32_t i, j; 99998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 109998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_init(&ticker, NTICKS); 119998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans for (i = 0; i < NREPS; i++) { 129998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans for (j = 0; j < NTICKS; j++) { 139998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&ticker), NTICKS - j, 149998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans "Unexpected ticker value (i=%d, j=%d)", i, j); 159998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_false(ticker_tick(&ticker), 169998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans "Unexpected ticker fire (i=%d, j=%d)", i, j); 179998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans } 189998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u32_eq(ticker_read(&ticker), 0, 199998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans "Expected ticker depletion"); 209998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_true(ticker_tick(&ticker), 219998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans "Expected ticker fire (i=%d)", i); 229998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u32_eq(ticker_read(&ticker), NTICKS, 239998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans "Expected ticker reset"); 249998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans } 259998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#undef NTICKS 269998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans} 279998000b2b77205a37ae630d5fd1ec9ee4569476Jason EvansTEST_END 289998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 299998000b2b77205a37ae630d5fd1ec9ee4569476Jason EvansTEST_BEGIN(test_ticker_ticks) 309998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans{ 319998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#define NTICKS 3 329998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_t ticker; 339998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 349998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_init(&ticker, NTICKS); 359998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 369998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&ticker), NTICKS, "Unexpected ticker value"); 379998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_false(ticker_ticks(&ticker, NTICKS), "Unexpected ticker fire"); 389998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&ticker), 0, "Unexpected ticker value"); 399998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_true(ticker_ticks(&ticker, NTICKS), "Expected ticker fire"); 409998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&ticker), NTICKS, "Unexpected ticker value"); 419998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 429998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_true(ticker_ticks(&ticker, NTICKS + 1), "Expected ticker fire"); 439998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&ticker), NTICKS, "Unexpected ticker value"); 449998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#undef NTICKS 459998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans} 469998000b2b77205a37ae630d5fd1ec9ee4569476Jason EvansTEST_END 479998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 489998000b2b77205a37ae630d5fd1ec9ee4569476Jason EvansTEST_BEGIN(test_ticker_copy) 499998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans{ 509998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#define NTICKS 3 519998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_t ta, tb; 529998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 539998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_init(&ta, NTICKS); 549998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_copy(&tb, &ta); 559998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&tb), NTICKS, "Unexpected ticker value"); 569998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_true(ticker_ticks(&tb, NTICKS + 1), "Expected ticker fire"); 579998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&tb), NTICKS, "Unexpected ticker value"); 589998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 599998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_tick(&ta); 609998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans ticker_copy(&tb, &ta); 619998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&tb), NTICKS - 1, "Unexpected ticker value"); 629998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_true(ticker_ticks(&tb, NTICKS), "Expected ticker fire"); 639998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans assert_u_eq(ticker_read(&tb), NTICKS, "Unexpected ticker value"); 649998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans#undef NTICKS 659998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans} 669998000b2b77205a37ae630d5fd1ec9ee4569476Jason EvansTEST_END 679998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 689998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evansint 699998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evansmain(void) 709998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans{ 719998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans 729998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans return (test( 739998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans test_ticker_tick, 749998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans test_ticker_ticks, 759998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans test_ticker_copy)); 769998000b2b77205a37ae630d5fd1ec9ee4569476Jason Evans} 77