diff options
author | Lucas De Marchi <lucas.de.marchi@gmail.com> | 2012-06-06 01:44:23 -0300 |
---|---|---|
committer | Lucas De Marchi <lucas.de.marchi@gmail.com> | 2012-06-06 01:57:33 -0300 |
commit | 01d9ee642d4e592e0be7581ac52c86e78df4d88c (patch) | |
tree | 0695f66ad4340ca1f0e4779219edc96b04eb48ed | |
parent | 34db3f2d3e2438a2c173d051a8736083f63bd8c5 (diff) | |
download | kmod-01d9ee642d4e592e0be7581ac52c86e78df4d88c.tar.gz |
testsuite: add test for install-commands loop
This loop is similar to the one that comes with install rules of
alsa-utils package. It can be easily verified by reverting commit
abd5557 and running the testsuite.
12 files changed, 167 insertions, 0 deletions
diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/etc/modprobe.d/dumb-instal-loop.conf b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/etc/modprobe.d/dumb-instal-loop.conf new file mode 100644 index 0000000..8014af3 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/etc/modprobe.d/dumb-instal-loop.conf @@ -0,0 +1 @@ +install snd $MODPROBE --ignore-install snd && { $MODPROBE --quiet snd-ioctl32 ; $MODPROBE --quiet snd-pcm ; } diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd-pcm.ko.gz b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd-pcm.ko.gz Binary files differnew file mode 100644 index 0000000..b149c6a --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd-pcm.ko.gz diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd.ko.gz b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd.ko.gz Binary files differnew file mode 100644 index 0000000..c7c671d --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd.ko.gz diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias new file mode 100644 index 0000000..8631be6 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias @@ -0,0 +1,2 @@ +# Aliases extracted from modules themselves. +alias char-major-116-* snd diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias.bin b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias.bin Binary files differnew file mode 100644 index 0000000..e9d2680 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias.bin diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep new file mode 100644 index 0000000..518aa59 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep @@ -0,0 +1,2 @@ +kernel/sound/core/snd.ko.gz: +kernel/sound/core/snd-pcm.ko.gz: kernel/sound/core/snd.ko.gz diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep.bin b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep.bin Binary files differnew file mode 100644 index 0000000..877ae7b --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep.bin diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.devname b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.devname new file mode 100644 index 0000000..58f6d6d --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.devname @@ -0,0 +1 @@ +# Device nodes to trigger on-demand module loading. diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.softdep b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.softdep new file mode 100644 index 0000000..3cc0512 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.softdep @@ -0,0 +1,2 @@ +# Soft dependencies extracted from modules themselves. +# Copy, with a .conf extension, to /etc/modprobe.d to use it with modprobe. diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols new file mode 100644 index 0000000..300cdc2 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols @@ -0,0 +1,133 @@ +# Aliases for symbols, used by symbol_request(). +alias symbol:copy_from_user_toio snd +alias symbol:snd_kctl_jack_new snd +alias symbol:snd_pcm_hw_constraint_minmax snd_pcm +alias symbol:snd_ctl_register_ioctl_compat snd +alias symbol:snd_pcm_period_elapsed snd_pcm +alias symbol:snd_pcm_format_linear snd_pcm +alias symbol:snd_pcm_format_big_endian snd_pcm +alias symbol:snd_request_card snd +alias symbol:snd_pcm_lib_ioctl snd_pcm +alias symbol:snd_add_device_sysfs_file snd +alias symbol:snd_card_proc_new snd +alias symbol:snd_ctl_boolean_stereo_info snd +alias symbol:snd_unregister_oss_device snd +alias symbol:snd_card_free snd +alias symbol:snd_pcm_sgbuf_ops_page snd_pcm +alias symbol:snd_pcm_new_stream snd_pcm +alias symbol:snd_card_create snd +alias symbol:snd_card_register snd +alias symbol:snd_ctl_free_one snd +alias symbol:snd_register_device_for_dev snd +alias symbol:snd_lookup_oss_minor_data snd +alias symbol:snd_pcm_hw_constraint_step snd_pcm +alias symbol:snd_seq_root snd +alias symbol:snd_pcm_new snd_pcm +alias symbol:snd_card_set_id snd +alias symbol:snd_info_register snd +alias symbol:snd_pcm_lib_preallocate_pages snd_pcm +alias symbol:snd_pcm_hw_rule_noresample snd_pcm +alias symbol:snd_ctl_remove snd +alias symbol:snd_pcm_lib_read snd_pcm +alias symbol:snd_pcm_mmap_data snd_pcm +alias symbol:snd_pcm_hw_constraint_list snd_pcm +alias symbol:snd_oss_info_register snd +alias symbol:snd_dma_pointer snd +alias symbol:snd_ctl_new1 snd +alias symbol:snd_interval_ratnum snd_pcm +alias symbol:snd_pcm_release_substream snd_pcm +alias symbol:snd_pcm_suspend_all snd_pcm +alias symbol:snd_ctl_register_ioctl snd +alias symbol:snd_ctl_rename_id snd +alias symbol:snd_card_file_add snd +alias symbol:snd_pcm_limit_hw_rates snd_pcm +alias symbol:snd_jack_set_parent snd +alias symbol:snd_pcm_format_width snd_pcm +alias symbol:snd_jack_new snd +alias symbol:snd_ctl_make_virtual_master snd +alias symbol:snd_jack_report snd +alias symbol:snd_pcm_format_little_endian snd_pcm +alias symbol:snd_ctl_notify snd +alias symbol:snd_pcm_set_sync snd_pcm +alias symbol:snd_component_add snd +alias symbol:_snd_ctl_add_slave snd +alias symbol:snd_device_register snd +alias symbol:snd_iprintf snd +alias symbol:snd_pcm_lib_default_mmap snd_pcm +alias symbol:_snd_pcm_hw_params_any snd_pcm +alias symbol:snd_card_file_remove snd +alias symbol:snd_ctl_replace snd +alias symbol:snd_pcm_link_rwlock snd_pcm +alias symbol:snd_info_get_line snd +alias symbol:snd_ctl_activate_id snd +alias symbol:snd_pcm_format_signed snd_pcm +alias symbol:snd_pcm_open_substream snd_pcm +alias symbol:snd_dma_disable snd +alias symbol:snd_pcm_set_ops snd_pcm +alias symbol:release_and_free_resource snd +alias symbol:snd_ecards_limit snd +alias symbol:snd_pcm_hw_param_value snd_pcm +alias symbol:snd_cards snd +alias symbol:snd_device_free snd +alias symbol:snd_dma_program snd +alias symbol:snd_interval_refine snd_pcm +alias symbol:snd_pcm_lib_preallocate_free_for_all snd_pcm +alias symbol:snd_pcm_hw_constraint_msbits snd_pcm +alias symbol:snd_pcm_lib_mmap_iomem snd_pcm +alias symbol:snd_pcm_lib_get_vmalloc_page snd_pcm +alias symbol:snd_pcm_suspend snd_pcm +alias symbol:snd_pcm_format_unsigned snd_pcm +alias symbol:snd_card_free_when_closed snd +alias symbol:snd_ctl_unregister_ioctl_compat snd +alias symbol:snd_interval_list snd_pcm +alias symbol:snd_pcm_lib_malloc_pages snd_pcm +alias symbol:snd_unregister_device snd +alias symbol:snd_pcm_lib_readv snd_pcm +alias symbol:snd_pcm_hw_constraint_ratnums snd_pcm +alias symbol:snd_pcm_hw_constraint_ratdens snd_pcm +alias symbol:snd_major snd +alias symbol:copy_to_user_fromio snd +alias symbol:snd_pcm_format_name snd_pcm +alias symbol:snd_pcm_lib_preallocate_pages_for_all snd_pcm +alias symbol:snd_ctl_add snd +alias symbol:snd_info_create_card_entry snd +alias symbol:snd_pcm_hw_rule_add snd_pcm +alias symbol:snd_pcm_lib_writev snd_pcm +alias symbol:snd_pcm_format_set_silence snd_pcm +alias symbol:snd_pcm_hw_param_last snd_pcm +alias symbol:snd_card_disconnect snd +alias symbol:snd_info_get_str snd +alias symbol:snd_lookup_minor_data snd +alias symbol:snd_pci_quirk_lookup_id snd +alias symbol:snd_pcm_rate_to_rate_bit snd_pcm +alias symbol:snd_pcm_lib_free_vmalloc_buffer snd_pcm +alias symbol:snd_pcm_format_silence_64 snd_pcm +alias symbol:snd_pcm_sgbuf_get_chunk_size snd_pcm +alias symbol:snd_pci_quirk_lookup snd +alias symbol:snd_pcm_notify snd_pcm +alias symbol:_snd_pcm_hw_param_setempty snd_pcm +alias symbol:snd_power_wait snd +alias symbol:snd_pcm_hw_constraint_pow2 snd_pcm +alias symbol:snd_register_oss_device snd +alias symbol:snd_ctl_find_numid snd +alias symbol:snd_pcm_kernel_ioctl snd_pcm +alias symbol:snd_pcm_hw_constraint_integer snd_pcm +alias symbol:snd_pcm_lib_write snd_pcm +alias symbol:snd_kctl_jack_report snd +alias symbol:snd_pcm_lib_free_pages snd_pcm +alias symbol:snd_pcm_hw_param_first snd_pcm +alias symbol:snd_ctl_enum_info snd +alias symbol:snd_jack_set_key snd +alias symbol:snd_device_new snd +alias symbol:snd_ctl_find_id snd +alias symbol:snd_pcm_hw_refine snd_pcm +alias symbol:snd_ctl_boolean_mono_info snd +alias symbol:snd_mixer_oss_notify_callback snd +alias symbol:snd_pcm_format_size snd_pcm +alias symbol:snd_pcm_format_physical_width snd_pcm +alias symbol:snd_info_free_entry snd +alias symbol:snd_ctl_remove_id snd +alias symbol:_snd_pcm_lib_alloc_vmalloc_buffer snd_pcm +alias symbol:snd_pcm_stop snd_pcm +alias symbol:snd_ctl_unregister_ioctl snd +alias symbol:snd_info_create_module_entry snd diff --git a/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols.bin b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols.bin Binary files differnew file mode 100644 index 0000000..03366e3 --- /dev/null +++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols.bin diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c index e7d61d8..1f3eb94 100644 --- a/testsuite/test-modprobe.c +++ b/testsuite/test-modprobe.c @@ -108,11 +108,37 @@ static DEFINE_TEST(modprobe_softdep_loop, [TC_INIT_MODULE_RETCODES] = "", }); +static __noreturn int modprobe_install_cmd_loop(const struct test *t) +{ + const char *progname = ABS_TOP_BUILDDIR "/tools/modprobe"; + const char *const args[] = { + progname, + "snd-pcm", + NULL, + }; + + test_spawn_prog(progname, args); + exit(EXIT_FAILURE); +} +static DEFINE_TEST(modprobe_install_cmd_loop, + .description = "check if modprobe breaks softdep loop", + .config = { + [TC_UNAME_R] = "4.4.4", + [TC_ROOTFS] = TESTSUITE_ROOTFS "test-modprobe/install-cmd-loop", + [TC_INIT_MODULE_RETCODES] = "", + }, + .env_vars = (const struct keyval[]) { + { "MODPROBE", ABS_TOP_BUILDDIR "/tools/modprobe" }, + { } + }, + ); + static const struct test *tests[] = { &smodprobe_show_depends, &smodprobe_show_depends2, &smodprobe_builtin, &smodprobe_softdep_loop, + &smodprobe_install_cmd_loop, NULL, }; |