#!/bin/bash

# This file is part of util-linux.
#
# This file is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This file is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

TS_TOPDIR="${0%/*}/../.."
TS_DESC="filter"

. $TS_TOPDIR/functions.sh
ts_init "$*"

ts_check_test_command "$TS_CMD_FINDMNT"

ts_init_subtest "types"
$TS_CMD_FINDMNT --types ext3 --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "types-multi"
$TS_CMD_FINDMNT --types ext3,ext4, --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "types-neg"
$TS_CMD_FINDMNT --types noext3,ext4, --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options"
$TS_CMD_FINDMNT --options relatime --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-name"
$TS_CMD_FINDMNT --options fd --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-nameval"
$TS_CMD_FINDMNT --options "fd=22" --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-nameval-neg"
$TS_CMD_FINDMNT --options "nofd=22" --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-nameval-multi"
$TS_CMD_FINDMNT --options "gid=5,mode=620,ptmxmode=000" --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-neg"
$TS_CMD_FINDMNT --options norelatime --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-no"
$TS_CMD_FINDMNT --options +noatime --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest

ts_init_subtest "options-no-multi"
$TS_CMD_FINDMNT --options +nosuid,+nodev,blkio --kernel --tab-file "$TS_SELF/files/mountinfo" &> $TS_OUTPUT
echo rc=$? >> $TS_OUTPUT
ts_finalize_subtest


ts_finalize
