blob: 5e898dc0009332b34e16cf64b3f61e62ad2c38fd [file] [log] [blame]
#! /bin/sh
# Test old-style module crap.
BITNESS=32
rm -rf tests/tmp/*
# Create inputs
MODULE_DIR=tests/tmp/lib/modules/$MODTEST_UNAME
mkdir -p $MODULE_DIR/drivers/type
ln tests/data/$BITNESS/normal/noexport_nodep-$BITNESS.ko \
$MODULE_DIR/drivers/type
mkdir -p $MODULE_DIR/other/type
ln tests/data/$BITNESS/normal/export_nodep-$BITNESS.ko \
$MODULE_DIR/other/type
# Set up modules.dep file.
echo "# A comment" > $MODULE_DIR/modules.dep
echo "/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko:" >> $MODULE_DIR/modules.dep
echo "/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko:" >> $MODULE_DIR/modules.dep
SIZE1=`wc -c < tests/data/$BITNESS/normal/noexport_nodep-$BITNESS.ko`
SIZE2=`wc -c < tests/data/$BITNESS/normal/export_nodep-$BITNESS.ko`
# -l lists all of them (either order)
[ "`modprobe -l 2>&1`" = "/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko
/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko" ] ||
[ "`modprobe -l 2>&1`" = "/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko
/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko" ]
# -l -t foo lists none of them.
[ "`modprobe -l -t foo 2>&1`" = "" ]
# -l -t type lists all of them (either order)
[ "`modprobe -l -t type 2>&1`" = "/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko
/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko" ] ||
[ "`modprobe -l -t type 2>&1`" = "/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko
/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko" ]
# -l -t drivers lists one.
[ "`modprobe -l -t drivers 2>&1`" = "/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko" ]
# -l -t drivers/type lists one.
[ "`modprobe -l -t drivers/type 2>&1`" = "/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko" ]
# -l -t other lists one.
[ "`modprobe -l -t other 2>&1`" = "/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko" ]
# -l -t other/type lists one.
[ "`modprobe -l -t other/type 2>&1`" = "/lib/modules/$MODTEST_UNAME/other/type/export_nodep-$BITNESS.ko" ]
# Wildcard works.
[ "`modprobe -l -t type 'noexport-nodep*' 2>&1`" = "/lib/modules/$MODTEST_UNAME/drivers/type/noexport_nodep-$BITNESS.ko" ]
# -t type without -l not supported
modprobe -t type 2>&1 | grep -q Usage
modprobe -a -t type 2>&1 | grep -q Usage
# -a with one arg succeeds.
[ "`modprobe -a noexport_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE1 " ]
# ... even with - and _ confused.
[ "`modprobe -a noexport-nodep_$BITNESS 2>&1`" = "INIT_MODULE: $SIZE1 " ]
# With two args succeeds.
[ "`modprobe -a noexport_nodep-$BITNESS export_nodep-$BITNESS 2>&1`" = "INIT_MODULE: $SIZE1
INIT_MODULE: $SIZE2 " ]
# Does second even if first screws up.
[ "`modprobe -a crap export_nodep-$BITNESS 2>&1`" = "WARNING: Module crap not found.
INIT_MODULE: $SIZE2 " ]