Home | History | Annotate | Download | only in tests
      1 #!/bin/bash
      2 
      3 [ -f testing.sh ] && . testing.sh
      4 
      5 #testing "name" "command" "result" "infile" "stdin"
      6 
      7 testing "seq (exit with error)" "seq 2> /dev/null || echo yes" "yes\n" "" ""
      8 testing "seq (exit with error)" "seq 1 2 3 4 2> /dev/null || echo yes" \
      9         "yes\n" "" ""
     10 testing "seq one argument" "seq 3" "1\n2\n3\n" "" ""
     11 testing "seq two arguments" "seq 5 7" "5\n6\n7\n" "" ""
     12 testing "seq two arguments reversed" "seq 7 5" "" "" ""
     13 testing "seq two arguments equal" "seq 3 3" "3\n" "" ""
     14 testing "seq two arguments equal, arbitrary negative step" "seq 1 -15 1" \
     15         "1\n" "" ""
     16 testing "seq two arguments equal, arbitrary positive step" "seq 1 +15 1" \
     17         "1\n" "" ""
     18 testing "seq count up by 2" "seq 4 2 8" "4\n6\n8\n" "" ""
     19 testing "seq count down by 2" "seq 8 -2 4" "8\n6\n4\n" "" ""
     20 testing "seq count wrong way #1" "seq 4 -2 8" "" "" ""
     21 testing "seq count wrong way #2" "seq 8 2 4" "" "" ""
     22 testing "seq count by .3" "seq 3 .3 4" "3\n3.3\n3.6\n3.9\n" "" ""
     23 testing "seq count by -.9" "seq .7 -.9 -2.2" "0.7\n-0.2\n-1.1\n-2\n" "" ""
     24 testing "seq count by zero" "seq 4 0 8 | head -n 10" "" "" ""
     25 testing "seq separator -" "seq -s - 1 3" "1-2-3\n" "" ""
     26 testing "seq format string" 'seq -f %+01g -10 5 10' "-10\n-5\n+0\n+5\n+10\n" \
     27   "" ""
     28 testing "seq separator and format string" "seq -f \%03g -s \; 5 -1 0" "005;004;003;002;001;000\n" "" ""
     29 testing "seq padding" "seq -s, -w -2 19 120" "-02,017,036,055,074,093,112\n" \
     30   "" ""
     31 testing "seq padding" "seq -s, -w -2 3 12" "-2,01,04,07,10\n" "" ""
     32 testing "seq padding" "seq -s, -w -2.2 3.3 12" "-2.2,01.1,04.4,07.7,11.0\n" \
     33   "" ""
     34 
     35 # Test -f format filtering
     36 for i in %f %e %g "boo %f yah" "% f" %-1.2f %+-f "%+ - f" %.2f %3.f "%'.2f" \
     37 	%%%f%%
     38 do
     39   testing "seq filter -f \"$i\"" "seq -f \"$i\" 1 3 > /dev/null && echo yes" \
     40     "yes\n" "" ""
     41 done
     42 # Test -f format filtering failures
     43 for i in %d %s "" "boo %f %f yah" "%*f" %-1.2.3f '%2$f' %1-f "%1 f" \
     44 	%2..2f %%%f%%%
     45 do
     46   testing "seq filter reject -f '$i'" \
     47     "seq -f '$i' 1 3 2>/dev/null || echo no" "no\n" "" ""
     48 done
     49