aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Jenkins <alan-jenkins@tuffmail.co.uk>2009-09-30 17:35:50 +0100
committerAlan Jenkins <alan-jenkins@tuffmail.co.uk>2009-10-01 10:15:40 +0100
commit5579f326d02d014bb811f77e418150df887b9c7b (patch)
tree822bab67d90bbe4abd9057760697dffccca8d84f
parent804e5b4039f808b44beb04bc0fa11f47d5f68621 (diff)
downloadmodule-init-tools-5579f326d02d014bb811f77e418150df887b9c7b.tar.gz
testsuite: fix tests for install/remove commands
install and remove commands for real modules will now refuse to run, if we don't provide a mockup of /sys/module. Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
-rwxr-xr-xtests/test-modprobe/04config.sh72
-rwxr-xr-xtests/test-modprobe/12whitespace.sh57
-rwxr-xr-xtests/test-modprobe/22recursiveinstall.sh6
-rwxr-xr-xtests/test-modprobe/27cmdline-install-remove.sh3
4 files changed, 103 insertions, 35 deletions
diff --git a/tests/test-modprobe/04config.sh b/tests/test-modprobe/04config.sh
index cb85422..342cc18 100755
--- a/tests/test-modprobe/04config.sh
+++ b/tests/test-modprobe/04config.sh
@@ -88,38 +88,29 @@ SIZE_NOEXPORT_DEP=`wc -c < tests/data/$BITNESS/normal/noexport_dep-$BITNESS.ko`
SIZE_EXPORT_DEP=`wc -c < tests/data/$BITNESS/normal/export_dep-$BITNESS.ko`
SIZE_NOEXPORT_DOUBLEDEP=`wc -c < tests/data/$BITNESS/normal/noexport_doubledep-$BITNESS.ko`
-# Test ignoring install & remove.
+# Empty /sys/module/ for install commands
+mkdir -p tests/tmp/sys/module
+# Test ignoring install commands
[ "`modprobe --ignore-install export_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_EXPORT_NODEP " ]
[ "`modprobe -i export_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_EXPORT_NODEP " ]
[ "`modprobe -i foo 2>&1`" = "FATAL: Module foo not found." ]
-[ "`modprobe -r --ignore-remove export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
-[ "`modprobe -r -i export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
-[ "`modprobe -i -r foo 2>&1`" = "FATAL: Module foo not found." ]
-# Test install & remove (fake modules)
+# Test install commands (fake modules)
[ "`modprobe foo 2>&1`" = "SYSTEM: echo Installing foo" ]
[ "`modprobe bar 2>&1`" = "SYSTEM: echo Installing bar" ]
[ "`modprobe baz 2>&1`" = "SYSTEM: echo Installing baz" ]
-[ "`modprobe -r foo 2>&1`" = "SYSTEM: echo Removing foo" ]
-[ "`modprobe -r bar 2>&1`" = "SYSTEM: echo Removing bar" ]
-[ "`modprobe -r baz 2>&1`" = "SYSTEM: echo Removing baz" ]
-# Test install & remove of a what is also a real module.
+# Test install of a what is also a real module.
[ "`modprobe export_nodep-$BITNESS 2>&1`" = "SYSTEM: echo Installing export_nodep" ]
-[ "`modprobe -r export_nodep-$BITNESS 2>&1`" = "SYSTEM: echo Removing export_nodep" ]
-# Test install & remove of what is also a real module via dependency.
+# Test install of what is also a real module via dependency.
[ "`modprobe noexport_dep-$BITNESS 2>&1`" = "SYSTEM: echo Installing export_nodep
INIT_MODULE: $SIZE_NOEXPORT_DEP I am noexport_dep" ]
-[ "`modprobe -r noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
-SYSTEM: echo Removing export_nodep" ]
-# Test ignoring install & remove: only effects commandline.
+# Test ignoring install commands: only effects commandline.
[ "`modprobe -i noexport_dep-$BITNESS 2>&1`" = "SYSTEM: echo Installing export_nodep
INIT_MODULE: $SIZE_NOEXPORT_DEP I am noexport_dep" ]
-[ "`modprobe -r -i noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
-SYSTEM: echo Removing export_nodep" ]
# Test options
[ "`modprobe noexport_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_NOEXPORT_NODEP I am noexport_nodep" ]
@@ -173,6 +164,39 @@ INIT_MODULE: $SIZE_NOEXPORT_DOUBLEDEP I am noexport_doubledep I am alias to noex
# Test tab-to-spaces conversion, and \ wrapping.
[ "`modprobe alias_to_noexport_nodep-$BITNESS_with_tabbed_options 2>&1`" = "INIT_MODULE: $SIZE_NOEXPORT_NODEP I am noexport_nodep index=0 id=\"Thinkpad\" isapnp=0 port=0x530 cport=0x538 fm_port=0x388 mpu_port=-1 mpu_irq=-1 irq=9 dma1=1 dma2=3 enable=1 isapnp=0" ]
+# Populate /sys/module/ for remove commands
+mkdir -p tests/tmp/sys/module/noexport_nodep_$BITNESS
+mkdir -p tests/tmp/sys/module/noexport_dep_$BITNESS
+mkdir -p tests/tmp/sys/module/noexport_doubledep_$BITNESS
+mkdir -p tests/tmp/sys/module/export_nodep_$BITNESS
+mkdir -p tests/tmp/sys/module/export_dep_$BITNESS
+echo live > tests/tmp/sys/module/noexport_nodep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/noexport_dep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/noexport_doubledep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/export_nodep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/export_dep_$BITNESS/initstate
+
+# Test ignoring remove commands.
+[ "`modprobe -r --ignore-remove export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
+[ "`modprobe -r -i export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
+[ "`modprobe -i -r foo 2>&1`" = "FATAL: Module foo not found." ]
+
+# Test remove commands (fake modules)
+[ "`modprobe -r foo 2>&1`" = "SYSTEM: echo Removing foo" ]
+[ "`modprobe -r bar 2>&1`" = "SYSTEM: echo Removing bar" ]
+[ "`modprobe -r baz 2>&1`" = "SYSTEM: echo Removing baz" ]
+
+# Test remove of a what is also a real module.
+[ "`modprobe -r export_nodep-$BITNESS 2>&1`" = "SYSTEM: echo Removing export_nodep" ]
+
+# Test remove of what is also a real module via dependency.
+[ "`modprobe -r noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
+SYSTEM: echo Removing export_nodep" ]
+
+# Test ignoring remove commands: only effects commandline.
+[ "`modprobe -r -i noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
+SYSTEM: echo Removing export_nodep" ]
+
# Test aliases doing removal.
[ "`modprobe -r alias_to_noexport_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_nodep_$BITNESS EXCL " ]
[ "`modprobe -r alias_to_noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
@@ -186,3 +210,19 @@ SYSTEM: echo Removing export_nodep" ]
[ "`modprobe -r alias_to_foo 2>&1`" = "SYSTEM: echo Removing foo" ]
[ "`modprobe -r alias_to_bar 2>&1`" = "SYSTEM: echo Removing bar" ]
[ "`modprobe -r alias_to_baz 2>&1`" = "SYSTEM: echo Removing baz" ]
+
+# Now test install precaution in the absence of /sys/modules
+rm -r tests/tmp/sys/module
+
+# Test install and remove commands (fake modules)
+# No caution necessary here
+[ "`modprobe foo 2>&1`" = "SYSTEM: echo Installing foo" ]
+[ "`modprobe -r foo 2>&1`" = "SYSTEM: echo Removing foo" ]
+
+# Test install and remove of a what is also a real module.
+[ "`modprobe export_nodep-$BITNESS 2>&1`" = "WARNING: /sys/module/ not present or too old, and /proc/modules does not exist.
+WARNING: Ignoring install commands for export_nodep_$BITNESS in case it is already loaded.
+INIT_MODULE: $SIZE_EXPORT_NODEP " ]
+[ "`modprobe -r export_nodep-$BITNESS 2>&1`" = "WARNING: /sys/module/ not present or too old, and /proc/modules does not exist.
+WARNING: Ignoring remove commands for export_nodep_$BITNESS in case it is not loaded.
+DELETE_MODULE: export_nodep_32 EXCL " ]
diff --git a/tests/test-modprobe/12whitespace.sh b/tests/test-modprobe/12whitespace.sh
index 159c4c2..5a1d817 100755
--- a/tests/test-modprobe/12whitespace.sh
+++ b/tests/test-modprobe/12whitespace.sh
@@ -82,38 +82,29 @@ SIZE_NOEXPORT_DEP=`wc -c < tests/data/$BITNESS/normal/noexport_dep-$BITNESS.ko`
SIZE_EXPORT_DEP=`wc -c < tests/data/$BITNESS/normal/export_dep-$BITNESS.ko`
SIZE_NOEXPORT_DOUBLEDEP=`wc -c < tests/data/$BITNESS/normal/noexport_doubledep-$BITNESS.ko`
-# Test ignoring install & remove.
+# Empty /sys/module/ for install commands
+mkdir -p tests/tmp/sys/module
+# Test ignoring install commands.
[ "`modprobe --ignore-install export_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_EXPORT_NODEP " ]
[ "`modprobe -i export_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_EXPORT_NODEP " ]
[ "`modprobe -i foo 2>&1`" = "FATAL: Module foo not found." ]
-[ "`modprobe -r --ignore-remove export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
-[ "`modprobe -r -i export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
-[ "`modprobe -i -r foo 2>&1`" = "FATAL: Module foo not found." ]
-# Test install & remove (fake modules)
+# Test install commands (fake modules)
[ "`modprobe foo 2>&1`" = "SYSTEM: echo Installing foo" ]
[ "`modprobe bar 2>&1`" = "SYSTEM: echo Installing bar" ]
[ "`modprobe baz 2>&1`" = "SYSTEM: echo Installing baz" ]
-[ "`modprobe -r foo 2>&1`" = "SYSTEM: echo Removing foo" ]
-[ "`modprobe -r bar 2>&1`" = "SYSTEM: echo Removing bar" ]
-[ "`modprobe -r baz 2>&1`" = "SYSTEM: echo Removing baz" ]
-# Test install & remove of a what is also a real module.
+# Test install of a what is also a real module.
[ "`modprobe export_nodep-$BITNESS 2>&1`" = "SYSTEM: echo Installing export_nodep" ]
-[ "`modprobe -r export_nodep-$BITNESS 2>&1`" = "SYSTEM: echo Removing export_nodep" ]
-# Test install & remove of what is also a real module via dependency.
+# Test install of what is also a real module via dependency.
[ "`modprobe noexport_dep-$BITNESS 2>&1`" = "SYSTEM: echo Installing export_nodep
INIT_MODULE: $SIZE_NOEXPORT_DEP I am noexport_dep" ]
-[ "`modprobe -r noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
-SYSTEM: echo Removing export_nodep" ]
-# Test ignoring install & remove: only effects commandline.
+# Test ignoring install commands: only effects commandline.
[ "`modprobe -i noexport_dep-$BITNESS 2>&1`" = "SYSTEM: echo Installing export_nodep
INIT_MODULE: $SIZE_NOEXPORT_DEP I am noexport_dep" ]
-[ "`modprobe -r -i noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
-SYSTEM: echo Removing export_nodep" ]
# Test options
[ "`modprobe noexport_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_NOEXPORT_NODEP I am noexport_nodep" ]
@@ -164,6 +155,40 @@ INIT_MODULE: $SIZE_NOEXPORT_DOUBLEDEP I am noexport_doubledep I am alias to noex
[ "`modprobe alias_to_bar 2>&1`" = "SYSTEM: echo Installing bar" ]
[ "`modprobe alias_to_baz 2>&1`" = "SYSTEM: echo Installing baz" ]
+# Populate /sys/module/ for remove commands
+mkdir -p tests/tmp/sys/module/noexport_nodep_$BITNESS
+mkdir -p tests/tmp/sys/module/noexport_dep_$BITNESS
+mkdir -p tests/tmp/sys/module/noexport_doubledep_$BITNESS
+mkdir -p tests/tmp/sys/module/export_nodep_$BITNESS
+mkdir -p tests/tmp/sys/module/export_dep_$BITNESS
+echo live > tests/tmp/sys/module/noexport_nodep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/noexport_dep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/noexport_doubledep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/export_nodep_$BITNESS/initstate
+echo live > tests/tmp/sys/module/export_dep_$BITNESS/initstate
+
+# Test ignoring remove commands.
+
+[ "`modprobe -r --ignore-remove export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
+[ "`modprobe -r -i export_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: export_nodep_$BITNESS EXCL " ]
+[ "`modprobe -i -r foo 2>&1`" = "FATAL: Module foo not found." ]
+
+# Test remove commands (fake modules)
+[ "`modprobe -r foo 2>&1`" = "SYSTEM: echo Removing foo" ]
+[ "`modprobe -r bar 2>&1`" = "SYSTEM: echo Removing bar" ]
+[ "`modprobe -r baz 2>&1`" = "SYSTEM: echo Removing baz" ]
+
+# Test remove of a what is also a real module.
+[ "`modprobe -r export_nodep-$BITNESS 2>&1`" = "SYSTEM: echo Removing export_nodep" ]
+
+# Test remove of what is also a real module via dependency.
+[ "`modprobe -r noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
+SYSTEM: echo Removing export_nodep" ]
+
+# Test ignoring remove commands: only effects commandline.
+[ "`modprobe -r -i noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
+SYSTEM: echo Removing export_nodep" ]
+
# Test aliases doing removal.
[ "`modprobe -r alias_to_noexport_nodep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_nodep_$BITNESS EXCL " ]
[ "`modprobe -r alias_to_noexport_dep-$BITNESS 2>&1`" = "DELETE_MODULE: noexport_dep_$BITNESS EXCL
diff --git a/tests/test-modprobe/22recursiveinstall.sh b/tests/test-modprobe/22recursiveinstall.sh
index 0c98e1a..53b0c60 100755
--- a/tests/test-modprobe/22recursiveinstall.sh
+++ b/tests/test-modprobe/22recursiveinstall.sh
@@ -28,7 +28,7 @@ mkdir -p tests/tmp/sys/module
[ "`modprobe noexport_dep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE_EXPORT_NODEP
INIT_MODULE: $SIZE_NOEXPORT_DEP " ]
-# Check it's happy if we tell it dep is already instealled
+# Check it's happy if we tell it dep is already installed
mkdir -p tests/tmp/sys/module
mkdir -p tests/tmp/sys/module/export_nodep_$BITNESS
echo "live" >tests/tmp/sys/module/export_nodep_$BITNESS/initstate
@@ -37,7 +37,7 @@ echo "live" >tests/tmp/sys/module/export_nodep_$BITNESS/initstate
# If there's an install command, it will be done.
# Clean up sysfs (so we don't think it's loaded)
-rm -rf tests/tmp/sys
+rm -rf tests/tmp/sys/module/*
mkdir -p tests/tmp/etc/modprobe.d
echo "install export_nodep-$BITNESS COMMAND" > tests/tmp/etc/modprobe.d/modprobe.conf
@@ -53,7 +53,7 @@ echo "live" >tests/tmp/sys/module/export_nodep_$BITNESS/initstate
# Do dependencies even if install command.
# clean up sysfs (so we don't think it's loaded)
-rm -rf tests/tmp/sys
+rm -rf tests/tmp/sys/module/*
echo "install noexport_dep-$BITNESS COMMAND" > tests/tmp/etc/modprobe.d/modprobe.conf
diff --git a/tests/test-modprobe/27cmdline-install-remove.sh b/tests/test-modprobe/27cmdline-install-remove.sh
index fef02ff..9411222 100755
--- a/tests/test-modprobe/27cmdline-install-remove.sh
+++ b/tests/test-modprobe/27cmdline-install-remove.sh
@@ -19,6 +19,9 @@ echo "options noexport_nodep-$BITNESS file-options" > tests/tmp/etc/modprobe.d/m
echo "install noexport_nodep-$BITNESS modprobe --ignore-install noexport_nodep-$BITNESS \$CMDLINE_OPTS" >> tests/tmp/etc/modprobe.d/modprobe.conf
echo "install othertarget echo \$CMDLINE_OPTS otheropts" >> tests/tmp/etc/modprobe.d/modprobe.conf
+# Empty /sys/module/ for install commands
+mkdir -p tests/tmp/sys/module
+
# With quoted args
[ "`modprobe noexport_nodep-$BITNESS 'foo="bar baz"' 2>&1`" = "SYSTEM: modprobe --ignore-install noexport_nodep-$BITNESS foo=\"bar baz\"" ]
# With unquoted args