blob: a2c47e37f0e7c621bec8e147033eb1d8603d3051 [file] [log] [blame]
#! /bin/sh
# Loop detection test.
for ENDIAN in $TEST_ENDIAN; do
for BITNESS in $TEST_BITS; do
rm -rf tests/tmp/*
# Create inputs
MODULE_DIR=tests/tmp/lib/modules/$MODTEST_UNAME
mkdir -p $MODULE_DIR
ln tests/data/$BITNESS$ENDIAN/loop/loop1-$BITNESS.ko \
tests/data/$BITNESS$ENDIAN/loop/loop2-$BITNESS.ko \
tests/data/$BITNESS$ENDIAN/loop/loop_dep-$BITNESS.ko \
$MODULE_DIR
# Expect no normal output.
[ "`depmod 2>tests/tmp/stderr`" = "" ]
# Check results: expect 0 lines (all have loops).
[ `grep -vc '^#' < $MODULE_DIR/modules.dep` = 0 ]
# Now, we should have only one error report, for loop1, and 3
# warnings.
[ `grep -vc '^#' < tests/tmp/stderr` = 4 ]
[ "`grep -w /lib/modules/$MODTEST_UNAME/loop1-$BITNESS.ko\ ignored tests/tmp/stderr`" = "WARNING: Module /lib/modules/$MODTEST_UNAME/loop1-$BITNESS.ko ignored, due to loop" ]
[ "`grep -w /lib/modules/$MODTEST_UNAME/loop2-$BITNESS.ko tests/tmp/stderr`" = "WARNING: Module /lib/modules/$MODTEST_UNAME/loop2-$BITNESS.ko ignored, due to loop" ]
[ "`grep -w /lib/modules/$MODTEST_UNAME/loop_dep-$BITNESS.ko tests/tmp/stderr`" = "WARNING: Module /lib/modules/$MODTEST_UNAME/loop_dep-$BITNESS.ko ignored, due to loop" ]
[ "`grep -w detected tests/tmp/stderr`" = "WARNING: Loop detected: /lib/modules/$MODTEST_UNAME/loop1-$BITNESS.ko needs loop2-$BITNESS.ko which needs loop1-$BITNESS.ko again!" ]
done
done