#!/bin/sh . ./test.sh tab() { printf " " } space() { printf " " } bar() { printf "bar" } baz() { printf "baz" } nl() { printf "\n" } test "prints error on spaces detected" ( space; bar; nl tab; bar; nl space; space; bar; nl tab; tab; bar; nl tab; space; bar; nl printf "/*"; nl printf " *"; nl printf " */"; nl ) > foo [ "$(lis foo 2>&1)" = "foo:1:1: Spaces detected foo:3:1: Spaces detected" ] test "returns error status on spaces detected" ( space; bar; nl tab; bar; nl space; space; bar; nl tab; tab; bar; nl tab; space; bar; nl printf "/*"; nl printf " *"; nl printf " */"; nl ) > foo ! lis foo 2>/dev/null test "prints usage on unknown option" [ "$(lis -k foo 2>&1)" = "usage: lis [-s tab|space] [file ...]" ] test "returns error status on unknown option" ! lis -k foo 2>/dev/null test "prints usage on unknown option value" [ "$(lis -k foo 2>&1)" = "usage: lis [-s tab|space] [file ...]" ] test "return error status on unknown option value" [ "$(lis -s foo 2>&1)" = "usage: lis [-s tab|space] [file ...]" ] test "prints error on -s style not respected" ( space; bar; nl tab; bar; nl space; space; bar; nl tab; tab; bar; nl tab; space; bar; nl printf "/*"; nl printf " *"; nl printf " */"; nl ) > foo [ "$(lis -s space foo 2>&1)" = "foo:2:1: Tabs detected foo:4:1: Tabs detected foo:5:1: Tabs detected" ] test "returns error on -s style not respected" ( space; bar; nl tab; bar; nl space; space; bar; nl tab; tab; bar; nl tab; space; bar; nl printf "/*"; nl printf " *"; nl printf " */"; nl ) > foo ! lis -s space foo 2>/dev/null