#!/bin/sh
TST_CNT=9
TST_TESTFUNC=do_test
TST_NEEDS_CMDS="cat"
verify_binfmt_misc()
{
local name=$(echo "$1" | awk -F ':' '{print $2}')
local mntpoint=$(get_binfmt_misc_mntpoint)
(echo "$1" >"$mntpoint/register") 2>/dev/null
if [ $? -ne 0 -a ! -f "$mntpoint/$name" ]; then
tst_res TPASS "Failed to register a binary type"
return
fi
cat "$mntpoint/$name" >/dev/null 2>&1
tst_res TFAIL "Register a binary type successfully"
[ -f "$mntpoint/$name" ] && \
remove_binary_type "$mntpoint/$name"
}
do_test()
{
case $1 in
1) verify_binfmt_misc ".textension,E,,ltp,,$(which cat),";;
2) verify_binfmt_misc ":tnone:X::ltp::$(which cat):";;
3) verify_binfmt_misc ":textension/:E::ltp::$(which cat):";;
4) verify_binfmt_misc ":tmagic/:M::ltp::$(which cat):";;
5) verify_binfmt_misc ":textension:E::ltp/::$(which cat):";;
6) verify_binfmt_misc ":tmagic:M:-1:ltp::$(which cat):";;
7) verify_binfmt_misc ":tmagic:M:2500000000:ltp::$(which cat):";;
8) verify_binfmt_misc ":textension:E::ltp::$(which cat):A";;
9) verify_binfmt_misc ":tmagic:M::ltp::$(which cat):A";;
esac
}
. binfmt_misc_lib.sh
tst_run