#!/bin/bash

# Return value '0' means 'yes, module is loaded'
function module_is_loaded {
	lsmod | grep $MODULENAME > /dev/null
	return $?
}


# Can't work when module is loaded on start
if module_is_loaded; then
	echo "ERROR: Can't perform test because module $MODULENAME is loaded"
	exit 1
fi

# Load module
insmod $MODULEPATH
RET=$?

if [ $RET != 0 ]; then
	echo "ERROR: command 'insmod $MODULENAME' failed with code $RET"
	exit $RET
fi

if ! module_is_loaded; then
	echo "ERROR: module $MODULENAME was inserted, but doesn't appear in the list of loaded modules"
	exit 1
fi


# Unload module
rmmod $MODULENAME
RET=$?

if [ $RET != 0 ]; then
	echo "ERROR: command \'rmmod $MODULENAME\' failed with code $RET"
	exit $RET
fi

if module_is_loaded; then
	echo "ERROR: module $MODULENAME was removed, but still appears in the list of loaded modules"
	exit 1
fi

exit 0
