+#!/bin/bash
+# FS QA Test No. 288
+#
+# This check the FITRIM argument handling in the corner case where length is
+# smaller than block size of zero.
+#
+#-----------------------------------------------------------------------
+# Copyright 2012 (C) Red Hat, Inc., Lukas Czerner <lczerner@redhat.com>
+#
+# This program 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.
+#
+# This program is distributed in the hope that it would 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#-----------------------------------------------------------------------
+
+owner=lczerner@redhat.com
+
+seq=`basename $0`
+echo "QA output created by $seq"
+
+status=0
+trap "exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common.rc
+. ./common.filter
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+
+_require_fstrim
+_require_scratch
+
+_scratch_mkfs >/dev/null 2>&1
+_scratch_mount
+_test_batched_discard $SCRATCH_MNT || _notrun "FITRIM not supported on $SCRATCH_DEV"
+
+echo "[+] Length is zero (should fail)"
+out=$("$FSTRIM_PROG" -v -o0 -l0 $SCRATCH_MNT 2>&1)
+[ $? -eq 0 ] && status=1
+echo $out | _filter_scratch
+
+echo "[+] Length is smaller than block size (should fail)"
+out=$("$FSTRIM_PROG" -v -o0 -l100 $SCRATCH_MNT 2>&1)
+[ $? -eq 0 ] && status=1
+echo $out | _filter_scratch
+
+echo "Test done"
+exit