static int f_int_args_callback(int a, int b, int c, int d) { const int expected_a[] = {1, 10, 100, 1000}; const int expected_b[] = {2, 20, 200, 2000}; const int expected_c[] = {3, 30, 300, 3000}; const int expected_d[] = {4, 40, 400, 4000}; const int retval[] = {5, 50, 500, 5000}; PCU_ASSERT_EQUAL(expected_a[f_int_args_num_calls()], a); PCU_ASSERT_EQUAL(expected_b[f_int_args_num_calls()], b); PCU_ASSERT_EQUAL(expected_c[f_int_args_num_calls()], c); PCU_ASSERT_EQUAL(expected_d[f_int_args_num_calls()], d); return retval[f_int_args_num_calls()]; }
static void test_f_int_args_callback(void) { f_int_args_set_callback(f_int_args_callback); PCU_ASSERT_EQUAL(5, f_int_args(1, 2, 3, 4)); PCU_ASSERT_EQUAL(50, f_int_args(10, 20, 30, 40)); PCU_ASSERT_EQUAL(500, f_int_args(100, 200, 300, 400)); PCU_ASSERT_EQUAL(5000, f_int_args(1000, 2000, 3000, 4000)); PCU_ASSERT_EQUAL(4, f_int_args_num_calls()); }