1*1208bc7eSAndroid Build Coastguard Worker #include "test/jemalloc_test.h" 2*1208bc7eSAndroid Build Coastguard Worker 3*1208bc7eSAndroid Build Coastguard Worker #include "jemalloc/internal/div.h" 4*1208bc7eSAndroid Build Coastguard Worker TEST_BEGIN(test_div_exhaustive)5*1208bc7eSAndroid Build Coastguard WorkerTEST_BEGIN(test_div_exhaustive) { 6*1208bc7eSAndroid Build Coastguard Worker for (size_t divisor = 2; divisor < 1000 * 1000; ++divisor) { 7*1208bc7eSAndroid Build Coastguard Worker div_info_t div_info; 8*1208bc7eSAndroid Build Coastguard Worker div_init(&div_info, divisor); 9*1208bc7eSAndroid Build Coastguard Worker size_t max = 1000 * divisor; 10*1208bc7eSAndroid Build Coastguard Worker if (max < 1000 * 1000) { 11*1208bc7eSAndroid Build Coastguard Worker max = 1000 * 1000; 12*1208bc7eSAndroid Build Coastguard Worker } 13*1208bc7eSAndroid Build Coastguard Worker for (size_t dividend = 0; dividend < 1000 * divisor; 14*1208bc7eSAndroid Build Coastguard Worker dividend += divisor) { 15*1208bc7eSAndroid Build Coastguard Worker size_t quotient = div_compute( 16*1208bc7eSAndroid Build Coastguard Worker &div_info, dividend); 17*1208bc7eSAndroid Build Coastguard Worker assert_zu_eq(dividend, quotient * divisor, 18*1208bc7eSAndroid Build Coastguard Worker "With divisor = %zu, dividend = %zu, " 19*1208bc7eSAndroid Build Coastguard Worker "got quotient %zu", divisor, dividend, quotient); 20*1208bc7eSAndroid Build Coastguard Worker } 21*1208bc7eSAndroid Build Coastguard Worker } 22*1208bc7eSAndroid Build Coastguard Worker } 23*1208bc7eSAndroid Build Coastguard Worker TEST_END 24*1208bc7eSAndroid Build Coastguard Worker 25*1208bc7eSAndroid Build Coastguard Worker int main(void)26*1208bc7eSAndroid Build Coastguard Workermain(void) { 27*1208bc7eSAndroid Build Coastguard Worker return test_no_reentrancy( 28*1208bc7eSAndroid Build Coastguard Worker test_div_exhaustive); 29*1208bc7eSAndroid Build Coastguard Worker } 30