From: Lucas De Marchi Date: Wed, 6 Jun 2012 04:44:23 +0000 (-0300) Subject: testsuite: add test for install-commands loop X-Git-Tag: v9~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01d9ee642d4e592e0be7581ac52c86e78df4d88c;p=thirdparty%2Fkmod.git 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. --- 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 00000000..8014af33 --- /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 new file mode 100644 index 00000000..b149c6ac Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd-pcm.ko.gz differ 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 new file mode 100644 index 00000000..c7c671d5 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd.ko.gz differ 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 00000000..8631be64 --- /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 new file mode 100644 index 00000000..e9d26804 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias.bin differ 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 00000000..518aa599 --- /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 new file mode 100644 index 00000000..877ae7b5 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep.bin differ 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 00000000..58f6d6d6 --- /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 00000000..3cc05126 --- /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 00000000..300cdc2e --- /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 new file mode 100644 index 00000000..03366e36 Binary files /dev/null and b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols.bin differ diff --git a/testsuite/test-modprobe.c b/testsuite/test-modprobe.c index e7d61d87..1f3eb941 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, };