test: split the tests into one test case each

For debugging it's more important to be able to quickly run a single test
rather than grouping them together, we don't have thousands of tests here
anyway. So let's add a macro to put every test func into its own TCase,
allowing for test selection via the environment variable CK_RUN_CASE.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2020-02-11 20:37:01 +10:00
parent 2af0b94623
commit 1014acedfc
9 changed files with 130 additions and 192 deletions

View file

@ -52,6 +52,12 @@ struct libevdev_test {
#define TEST_DEVICE_NAME "libevdev test device"
#define add_test(suite, func) do { \
TCase *tc = tcase_create(#func); \
tcase_add_test(tc, func); \
suite_add_tcase(suite, tc); \
} while(0)
#include "test-common-uinput.h"
#define assert_event(e_, t, c, v) \

View file

@ -162,16 +162,13 @@ END_TEST
TEST_SUITE(event_name_suite)
{
Suite *s = suite_create("Context manipulation");
TCase *tc;
tc = tcase_create("Device info");
tcase_add_test(tc, test_info);
tcase_add_test(tc, test_properties);
tcase_add_test(tc, test_bits);
tcase_add_test(tc, test_mt_slots_enable_disable);
tcase_add_test(tc, test_mt_slots_increase_decrease);
tcase_add_test(tc, test_mt_tracking_id);
suite_add_tcase(s, tc);
add_test(s, test_info);
add_test(s, test_properties);
add_test(s, test_bits);
add_test(s, test_mt_slots_enable_disable);
add_test(s, test_mt_slots_increase_decrease);
add_test(s, test_mt_tracking_id);
return s;
}

View file

@ -264,30 +264,22 @@ TEST_SUITE(event_code_suite)
{
Suite *s = suite_create("Event codes");
TCase *tc = tcase_create("type tests");
tcase_add_test(tc, test_type_names);
tcase_add_test(tc, test_type_names_invalid);
tcase_add_test(tc, test_type_name_lookup);
tcase_add_test(tc, test_type_name_lookup_invalid);
suite_add_tcase(s, tc);
add_test(s, test_type_names);
add_test(s, test_type_names_invalid);
add_test(s, test_type_name_lookup);
add_test(s, test_type_name_lookup_invalid);
tc = tcase_create("code tests");
tcase_add_test(tc, test_code_names);
tcase_add_test(tc, test_code_name_lookup);
tcase_add_test(tc, test_code_names_invalid);
tcase_add_test(tc, test_code_name_lookup_invalid);
tcase_add_test(tc, test_code_names_max);
suite_add_tcase(s, tc);
add_test(s, test_code_names);
add_test(s, test_code_name_lookup);
add_test(s, test_code_names_invalid);
add_test(s, test_code_name_lookup_invalid);
add_test(s, test_code_names_max);
tc = tcase_create("value tests");
tcase_add_test(tc, test_value_names);
tcase_add_test(tc, test_value_names_invalid);
suite_add_tcase(s, tc);
add_test(s, test_value_names);
add_test(s, test_value_names_invalid);
tc = tcase_create("property tests");
tcase_add_test(tc, test_properties);
tcase_add_test(tc, test_properties_invalid);
suite_add_tcase(s, tc);
add_test(s, test_properties);
add_test(s, test_properties_invalid);
return s;
}

View file

@ -304,40 +304,27 @@ TEST_SUITE(event_name_suite)
{
Suite *s = suite_create("Event names");
TCase *tc = tcase_create("type limits");
tcase_add_test(tc, test_limits);
tcase_add_test(tc, test_event_type_max);
suite_add_tcase(s, tc);
add_test(s, test_limits);
add_test(s, test_event_type_max);
tc = tcase_create("type names");
tcase_add_test(tc, test_type_name);
suite_add_tcase(s, tc);
add_test(s, test_type_name);
tc = tcase_create("code names");
tcase_add_test(tc, test_code_abs_name);
tcase_add_test(tc, test_code_rel_name);
tcase_add_test(tc, test_code_key_name);
tcase_add_test(tc, test_code_led_name);
tcase_add_test(tc, test_code_snd_name);
tcase_add_test(tc, test_code_rep_name);
tcase_add_test(tc, test_code_msc_name);
tcase_add_test(tc, test_code_sw_name);
tcase_add_test(tc, test_code_ff_name);
tcase_add_test(tc, test_code_syn_name);
suite_add_tcase(s, tc);
add_test(s, test_code_abs_name);
add_test(s, test_code_rel_name);
add_test(s, test_code_key_name);
add_test(s, test_code_led_name);
add_test(s, test_code_snd_name);
add_test(s, test_code_rep_name);
add_test(s, test_code_msc_name);
add_test(s, test_code_sw_name);
add_test(s, test_code_ff_name);
add_test(s, test_code_syn_name);
tc = tcase_create("value names");
tcase_add_test(tc, test_value_name);
suite_add_tcase(s, tc);
add_test(s, test_value_name);
add_test(s, test_prop_name);
tc = tcase_create("prop names");
tcase_add_test(tc, test_prop_name);
suite_add_tcase(s, tc);
tc = tcase_create("event values");
tcase_add_test(tc, test_event_type);
tcase_add_test(tc, test_event_code);
suite_add_tcase(s, tc);
add_test(s, test_event_type);
add_test(s, test_event_code);
return s;
}

View file

@ -169,11 +169,9 @@ TEST_SUITE_ROOT_PRIVILEGES(kernel)
{
Suite *s = suite_create("kernel");
TCase *tc = tcase_create("EVIOCREVOKE");
tcase_add_test(tc, test_revoke);
tcase_add_test(tc, test_revoke_invalid);
tcase_add_test(tc, test_revoke_fail_after);
suite_add_tcase(s, tc);
add_test(s, test_revoke);
add_test(s, test_revoke_invalid);
add_test(s, test_revoke_fail_after);
return s;
}

View file

@ -1966,53 +1966,43 @@ TEST_SUITE_ROOT_PRIVILEGES(libevdev_events)
{
Suite *s = suite_create("libevdev event tests");
TCase *tc = tcase_create("event polling");
tcase_add_test(tc, test_next_event);
tcase_add_test(tc, test_next_event_invalid_fd);
tcase_add_test(tc, test_next_event_blocking);
tcase_add_test(tc, test_syn_dropped_event);
tcase_add_test(tc, test_event_type_filtered);
tcase_add_test(tc, test_event_code_filtered);
tcase_add_test(tc, test_has_event_pending);
tcase_add_test(tc, test_has_event_pending_invalid_fd);
suite_add_tcase(s, tc);
add_test(s, test_next_event);
add_test(s, test_next_event_invalid_fd);
add_test(s, test_next_event_blocking);
add_test(s, test_syn_dropped_event);
add_test(s, test_event_type_filtered);
add_test(s, test_event_code_filtered);
add_test(s, test_has_event_pending);
add_test(s, test_has_event_pending_invalid_fd);
tc = tcase_create("SYN_DROPPED deltas");
tcase_add_test(tc, test_syn_delta_button);
tcase_add_test(tc, test_syn_delta_abs);
tcase_add_test(tc, test_syn_delta_mt);
tcase_add_test(tc, test_syn_delta_mt_reset_slot);
tcase_add_test(tc, test_syn_delta_led);
tcase_add_test(tc, test_syn_delta_sw);
tcase_add_test(tc, test_syn_delta_fake_mt);
tcase_add_test(tc, test_syn_delta_tracking_ids);
tcase_add_test(tc, test_syn_delta_late_sync);
suite_add_tcase(s, tc);
add_test(s, test_syn_delta_button);
add_test(s, test_syn_delta_abs);
add_test(s, test_syn_delta_mt);
add_test(s, test_syn_delta_mt_reset_slot);
add_test(s, test_syn_delta_led);
add_test(s, test_syn_delta_sw);
add_test(s, test_syn_delta_fake_mt);
add_test(s, test_syn_delta_late_sync);
add_test(s, test_syn_delta_tracking_ids);
tc = tcase_create("skipped syncs");
tcase_add_test(tc, test_skipped_sync);
tcase_add_test(tc, test_incomplete_sync);
tcase_add_test(tc, test_empty_sync);
suite_add_tcase(s, tc);
add_test(s, test_skipped_sync);
add_test(s, test_incomplete_sync);
add_test(s, test_empty_sync);
tc = tcase_create("event values");
tcase_add_test(tc, test_event_values);
tcase_add_test(tc, test_event_values_invalid);
tcase_add_test(tc, test_mt_event_values);
tcase_add_test(tc, test_mt_event_values_invalid);
tcase_add_test(tc, test_mt_slot_ranges_invalid);
tcase_add_test(tc, test_mt_tracking_id_discard);
tcase_add_test(tc, test_mt_tracking_id_discard_neg_1);
tcase_add_test(tc, test_ev_rep_values);
suite_add_tcase(s, tc);
add_test(s, test_event_values);
add_test(s, test_event_values_invalid);
add_test(s, test_mt_event_values);
add_test(s, test_mt_event_values_invalid);
add_test(s, test_mt_slot_ranges_invalid);
add_test(s, test_mt_tracking_id_discard);
add_test(s, test_mt_tracking_id_discard_neg_1);
add_test(s, test_ev_rep_values);
tc = tcase_create("event value setters");
tcase_add_test(tc, test_event_value_setters);
tcase_add_test(tc, test_event_value_setters_invalid);
tcase_add_test(tc, test_event_mt_value_setters);
tcase_add_test(tc, test_event_mt_value_setters_invalid);
tcase_add_test(tc, test_event_mt_value_setters_current_slot);
suite_add_tcase(s, tc);
add_test(s, test_event_value_setters);
add_test(s, test_event_value_setters_invalid);
add_test(s, test_event_mt_value_setters);
add_test(s, test_event_mt_value_setters_invalid);
add_test(s, test_event_mt_value_setters_current_slot);
return s;
}

View file

@ -1146,56 +1146,40 @@ TEST_SUITE_ROOT_PRIVILEGES(has_events)
{
Suite *s = suite_create("libevdev_has_event tests");
TCase *tc = tcase_create("event type");
tcase_add_test(tc, test_ev_bit_limits);
tcase_add_test(tc, test_has_ev_bit);
suite_add_tcase(s, tc);
add_test(s, test_ev_bit_limits);
add_test(s, test_has_ev_bit);
tc = tcase_create("event codes");
tcase_add_test(tc, test_event_codes);
tcase_add_test(tc, test_event_code_limits);
suite_add_tcase(s, tc);
add_test(s, test_event_codes);
add_test(s, test_event_code_limits);
tc = tcase_create("ev_rep");
tcase_add_test(tc, test_ev_rep);
tcase_add_test(tc, test_ev_rep_values);
suite_add_tcase(s, tc);
add_test(s, test_ev_rep);
add_test(s, test_ev_rep_values);
tc = tcase_create("input properties");
tcase_add_test(tc, test_input_props);
tcase_add_test(tc, test_set_input_props);
suite_add_tcase(s, tc);
add_test(s, test_input_props);
add_test(s, test_set_input_props);
tc = tcase_create("multitouch info");
tcase_add_test(tc, test_no_slots);
tcase_add_test(tc, test_slot_number);
tcase_add_test(tc, test_slot_init_value);
tcase_add_test(tc, test_invalid_mt_device);
suite_add_tcase(s, tc);
add_test(s, test_no_slots);
add_test(s, test_slot_number);
add_test(s, test_slot_init_value);
add_test(s, test_invalid_mt_device);
tc = tcase_create("device info");
tcase_add_test(tc, test_device_name);
tcase_add_test(tc, test_device_set_name);
tcase_add_test(tc, test_device_set_ids);
tcase_add_test(tc, test_device_get_abs_info);
suite_add_tcase(s, tc);
add_test(s, test_device_name);
add_test(s, test_device_set_name);
add_test(s, test_device_set_ids);
add_test(s, test_device_get_abs_info);
tc = tcase_create("device bit manipulation");
tcase_add_test(tc, test_device_set_abs);
tcase_add_test(tc, test_device_enable_bit);
tcase_add_test(tc, test_device_enable_bit_invalid);
tcase_add_test(tc, test_device_disable_bit);
tcase_add_test(tc, test_device_disable_bit_invalid);
tcase_add_test(tc, test_device_kernel_change_axis);
tcase_add_test(tc, test_device_kernel_change_axis_invalid);
tcase_add_test(tc, test_device_kernel_set_abs_invalid_fd);
suite_add_tcase(s, tc);
add_test(s, test_device_set_abs);
add_test(s, test_device_enable_bit);
add_test(s, test_device_enable_bit_invalid);
add_test(s, test_device_disable_bit);
add_test(s, test_device_disable_bit_invalid);
add_test(s, test_device_kernel_change_axis);
add_test(s, test_device_kernel_change_axis_invalid);
add_test(s, test_device_kernel_set_abs_invalid_fd);
tc = tcase_create("led manipulation");
tcase_add_test(tc, test_led_valid);
tcase_add_test(tc, test_led_invalid);
tcase_add_test(tc, test_led_same);
suite_add_tcase(s, tc);
add_test(s, test_led_valid);
add_test(s, test_led_invalid);
add_test(s, test_led_same);
return s;
}

View file

@ -687,38 +687,28 @@ TEST_SUITE_ROOT_PRIVILEGES(libevdev_init_test)
{
Suite *s = suite_create("libevdev init tests");
TCase *tc = tcase_create("device init");
tcase_add_test(tc, test_new_device);
tcase_add_test(tc, test_free_device);
tcase_add_test(tc, test_init_from_invalid_fd);
tcase_add_test(tc, test_init_and_change_fd);
suite_add_tcase(s, tc);
add_test(s, test_new_device);
add_test(s, test_free_device);
add_test(s, test_init_from_invalid_fd);
add_test(s, test_init_and_change_fd);
tc = tcase_create("log init");
tcase_add_test(tc, test_log_init);
tcase_add_test(tc, test_log_priority);
tcase_add_test(tc, test_log_set_get_priority);
tcase_add_test(tc, test_log_default_priority);
tcase_add_test(tc, test_log_data);
tcase_add_test(tc, test_device_log_init);
suite_add_tcase(s, tc);
add_test(s, test_log_init);
add_test(s, test_log_priority);
add_test(s, test_log_set_get_priority);
add_test(s, test_log_default_priority);
add_test(s, test_log_data);
add_test(s, test_device_log_init);
tc = tcase_create("device fd init");
tcase_add_test(tc, test_device_init);
tcase_add_test(tc, test_device_init_from_fd);
suite_add_tcase(s, tc);
add_test(s, test_device_init);
add_test(s, test_device_init_from_fd);
tc = tcase_create("device grab");
tcase_add_test(tc, test_device_grab);
tcase_add_test(tc, test_device_grab_invalid_fd);
tcase_add_test(tc, test_device_grab_change_fd);
suite_add_tcase(s, tc);
add_test(s, test_device_grab);
add_test(s, test_device_grab_invalid_fd);
add_test(s, test_device_grab_change_fd);
tc = tcase_create("clock id");
tcase_add_test(tc, test_set_clock_id);
tcase_add_test(tc, test_set_clock_id_invalid_fd);
tcase_add_test(tc, test_clock_id_events);
suite_add_tcase(s, tc);
add_test(s, test_set_clock_id);
add_test(s, test_set_clock_id_invalid_fd);
add_test(s, test_clock_id_events);
return s;
}

View file

@ -372,21 +372,15 @@ TEST_SUITE_ROOT_PRIVILEGES(uinput_suite)
{
Suite *s = suite_create("libevdev uinput device tests");
TCase *tc = tcase_create("device creation");
tcase_add_test(tc, test_uinput_create_device);
tcase_add_test(tc, test_uinput_create_device_invalid);
tcase_add_test(tc, test_uinput_create_device_from_fd);
tcase_add_test(tc, test_uinput_check_syspath_time);
tcase_add_test(tc, test_uinput_check_syspath_name);
suite_add_tcase(s, tc);
add_test(s, test_uinput_create_device);
add_test(s, test_uinput_create_device_invalid);
add_test(s, test_uinput_create_device_from_fd);
add_test(s, test_uinput_check_syspath_time);
add_test(s, test_uinput_check_syspath_name);
tc = tcase_create("device events");
tcase_add_test(tc, test_uinput_events);
suite_add_tcase(s, tc);
add_test(s, test_uinput_events);
tc = tcase_create("device properties");
tcase_add_test(tc, test_uinput_properties);
suite_add_tcase(s, tc);
add_test(s, test_uinput_properties);
return s;
}