view scripts/test/test.test @ 1189:95ae2805622f draft

Add Szabolcs Nagy's deflate/inflate code from git://git.suckless.org/flate Confirmed with him on IRC it's ok to use under toybox license, glued the files together and hammered square peg into round hole, no other changes yet.
author Rob Landley <rob@landley.net>
date Fri, 31 Jan 2014 06:01:30 -0600
parents c2663b7eca78
children
line wrap: on
line source

#!/bin/bash

[ -f testing.sh ] && . testing.sh

#testing "name" "command" "result" "infile" "stdin"

# TODO: Should also have device and socket files

mkdir d
touch f
ln -s /dev/null L
echo nonempty > s
mkfifo p

type_test()
{
  result=""
  for i in d f L s p n
  do
    if test $* $i
    then
      result=$result$i
    fi
  done
  printf "%s" $result
}

testing "test -b" "type_test -b" "" "" ""
testing "test -c" "type_test -c" "L" "" ""
testing "test -d" "type_test -d" "d" "" ""
testing "test -f" "type_test -f" "fs" "" ""
testing "test -h" "type_test -h" "L" "" ""
testing "test -L" "type_test -L" "L" "" ""
testing "test -s" "type_test -s" "ds" "" ""
testing "test -S" "type_test -S" "" "" ""
testing "test -p" "type_test -p" "p" "" ""
testing "test -e" "type_test -e" "dfLsp" "" ""
testing "test ! -e" "type_test ! -e" "n" "" ""

rm f L s p
rmdir d

# TODO: Test rwx gu t

testing "test" "test "" || test a && echo yes" "yes\n" "" ""
testing "test -n" "test -n "" || test -n a && echo yes" "yes\n" "" ""
testing "test -z" "test -n a || test -n "" && echo yes" "yes\n" "" ""
testing "test a = b" "test a = b || test "" = "" && echo yes" "yes\n" "" ""
testing "test a != b" "test "" != "" || test a = b && echo yes" "yes\n" "" ""

arith_test()
{
  test -1 $1 1 && echo l
  test 0 $1 0 && echo e
  test -3 $1 -5 && echo g
}

testing "test -eq" "arith_test -eq" "e\n" "" ""
testing "test -ne" "arith_test -ne" "l\ng\n" "" ""
testing "test -gt" "arith_test -gt" "g\n" "" ""
testing "test -ge" "arith_test -ge" "e\ng\n" "" ""
testing "test -lt" "arith_test -lt" "l\n" "" ""
testing "test -le" "arith_test -le" "l\ne\n" "" ""

# test ! = -o a
# test ! \( = -o a \)
# test \( ! = \) -o a