aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLucas De Marchi <lucas.de.marchi@gmail.com>2012-06-06 01:44:23 -0300
committerLucas De Marchi <lucas.de.marchi@gmail.com>2012-06-06 01:57:33 -0300
commit01d9ee642d4e592e0be7581ac52c86e78df4d88c (patch)
tree0695f66ad4340ca1f0e4779219edc96b04eb48ed
parent34db3f2d3e2438a2c173d051a8736083f63bd8c5 (diff)
downloadkmod-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.
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/etc/modprobe.d/dumb-instal-loop.conf1
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd-pcm.ko.gzbin0 -> 46263 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd.ko.gzbin0 -> 38351 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias2
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.alias.binbin0 -> 46 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep2
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.dep.binbin0 -> 137 bytes
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.devname1
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.softdep2
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols133
-rw-r--r--testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/modules.symbols.binbin0 -> 6131 bytes
-rw-r--r--testsuite/test-modprobe.c26
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
new 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
Binary files 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 0000000..c7c671d
--- /dev/null
+++ b/testsuite/rootfs-pristine/test-modprobe/install-cmd-loop/lib/modules/4.4.4/kernel/sound/core/snd.ko.gz
Binary files 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 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
new 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
Binary files 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 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
new 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
Binary files 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 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
new 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
Binary files differ
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,
};