xref: /illumos-gate/usr/src/cmd/tail/tests/tailtests.sh (revision 209e49b2)
1*209e49b2SChris Love#!/bin/bash
2*209e49b2SChris Love#
3*209e49b2SChris Love#
4*209e49b2SChris Love# This file and its contents are supplied under the terms of the
5*209e49b2SChris Love# Common Development and Distribution License ("CDDL"), version 1.0.
6*209e49b2SChris Love# You may only use this file in accordance with the terms of version
7*209e49b2SChris Love# 1.0 of the CDDL.
8*209e49b2SChris Love#
9*209e49b2SChris Love# A full copy of the text of the CDDL should have accompanied this
10*209e49b2SChris Love# source.  A copy is of the CDDL is also available via the Internet
11*209e49b2SChris Love# at http://www.illumos.org/license/CDDL.
12*209e49b2SChris Love#
13*209e49b2SChris Love
14*209e49b2SChris Love#
15*209e49b2SChris Love# Copyright 2010 Chris Love.  All rights reserved.
16*209e49b2SChris Love#
17*209e49b2SChris Love
18*209e49b2SChris Love
19*209e49b2SChris Love#
20*209e49b2SChris Love# Test cases for 'tail', some based on CoreUtils test cases (validated
21*209e49b2SChris Love# with legacy Solaris 'tail' and/or xpg4 'tail')
22*209e49b2SChris Love#
23*209e49b2SChris LovePROG=/usr/bin/tail
24*209e49b2SChris Love
25*209e49b2SChris Lovecase $1 in
26*209e49b2SChris Love    -x)
27*209e49b2SChris Love    	PROG=/usr/xpg4/bin/tail
28*209e49b2SChris Love	;;
29*209e49b2SChris Love    -o)
30*209e49b2SChris Love    	PROG=$2
31*209e49b2SChris Love	;;
32*209e49b2SChris Love    -?)
33*209e49b2SChris Love    	echo "Usage: tailtests.sh [-x][-o <override tail executable>]"
34*209e49b2SChris Love	exit 1
35*209e49b2SChris Love	;;
36*209e49b2SChris Loveesac
37*209e49b2SChris Love
38*209e49b2SChris Loveecho "Using $PROG"
39*209e49b2SChris Love
40*209e49b2SChris Loveo=`echo -e "bcd"`
41*209e49b2SChris Lovea=`echo -e "abcd" | $PROG +2c`
42*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 1 - $a"
43*209e49b2SChris Love
44*209e49b2SChris Loveo=`echo -e ""`
45*209e49b2SChris Lovea=`echo "abcd" | $PROG +8c`
46*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 2 - $a"
47*209e49b2SChris Love
48*209e49b2SChris Loveo=`echo -e "abcd"`
49*209e49b2SChris Lovea=`echo "abcd" | $PROG -9c`
50*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 3 - $a"
51*209e49b2SChris Love
52*209e49b2SChris Loveo=`echo -e "x"`
53*209e49b2SChris Lovea=`echo -e "x" | $PROG -1l`
54*209e49b2SChris Love[[ "$a" != "x" ]] && echo "Fail test 4 - $a"
55*209e49b2SChris Love
56*209e49b2SChris Loveo=`echo -e "\n"`
57*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG -1l`
58*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 5 - $a"
59*209e49b2SChris Love
60*209e49b2SChris Loveo=`echo -e "y\n"`
61*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG -2l`
62*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 6 - $a"
63*209e49b2SChris Love
64*209e49b2SChris Loveo=`echo -e "y"`
65*209e49b2SChris Lovea=`echo -e "x\ny" | $PROG -1l`
66*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 7 - $a"
67*209e49b2SChris Love
68*209e49b2SChris Loveo=`echo -e "x\ny\n"`
69*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG +1l`
70*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 8 - $a"
71*209e49b2SChris Love
72*209e49b2SChris Loveo=`echo -e "y\n"`
73*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG +2l`
74*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 9 - $a"
75*209e49b2SChris Love
76*209e49b2SChris Loveo=`echo -e "x"`
77*209e49b2SChris Lovea=`echo -e "x" | $PROG -1`
78*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 10 - $a"
79*209e49b2SChris Love
80*209e49b2SChris Loveo=`echo -e "\n"`
81*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG -1`
82*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 11 - $a"
83*209e49b2SChris Love
84*209e49b2SChris Loveo=`echo -e "y\n"`
85*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG -2`
86*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 12 - $a"
87*209e49b2SChris Love
88*209e49b2SChris Loveo=`echo -e "y"`
89*209e49b2SChris Lovea=`echo -e "x\ny" | $PROG -1`
90*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 13 - $a"
91*209e49b2SChris Love
92*209e49b2SChris Loveo=`echo -e "x\ny\n"`
93*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG +1`
94*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 14 - $a"
95*209e49b2SChris Love
96*209e49b2SChris Loveo=`echo -e "y\n"`
97*209e49b2SChris Lovea=`echo -e "x\ny\n" | $PROG +2`
98*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 15 - $a"
99*209e49b2SChris Love
100*209e49b2SChris Love# For compatibility with Legacy Solaris tail this should also work as '+c'
101*209e49b2SChris Loveo=`echo -e "yyz"`
102*209e49b2SChris Lovea=`echo -e "xyyyyyyyyyyz" | $PROG +10c`
103*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 16 - $a"
104*209e49b2SChris Love
105*209e49b2SChris Loveo=`echo -e "yyz"`
106*209e49b2SChris Lovea=`echo -e "xyyyyyyyyyyz" | $PROG +c`
107*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 16a - $a"
108*209e49b2SChris Love
109*209e49b2SChris Love
110*209e49b2SChris Love# For compatibility with Legacy Solaris tail this should also work as '+l'
111*209e49b2SChris Loveo=`echo -e "y\ny\nz"`
112*209e49b2SChris Lovea=`echo -e "x\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\nz" | $PROG +10l`
113*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 17 - $a"
114*209e49b2SChris Love
115*209e49b2SChris Loveo=`echo -e "y\ny\nz"`
116*209e49b2SChris Lovea=`echo -e "x\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\nz" | $PROG +l`
117*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 17a - $a"
118*209e49b2SChris Love
119*209e49b2SChris Love
120*209e49b2SChris Love# For compatibility with Legacy Solaris tail this should also work as '-l'
121*209e49b2SChris Loveo=`echo -e "y\ny\ny\ny\ny\ny\ny\ny\ny\nz"`
122*209e49b2SChris Lovea=`echo -e "x\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\nz" | $PROG -10l`
123*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 18 - $a"
124*209e49b2SChris Love
125*209e49b2SChris Loveo=`echo -e "y\ny\ny\ny\ny\ny\ny\ny\ny\nz"`
126*209e49b2SChris Lovea=`echo -e "x\ny\ny\ny\ny\ny\ny\ny\ny\ny\ny\nz" | $PROG -l`
127*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 18a - $a"
128*209e49b2SChris Love
129*209e49b2SChris Loveo=`echo -e "c\nb\na"`
130*209e49b2SChris Lovea=`echo -e "a\nb\nc" | $PROG -r`
131*209e49b2SChris Love[[ "$a" != "$o" ]] && echo "Fail test 19 - $a"
132*209e49b2SChris Love
133*209e49b2SChris Love
134*209e49b2SChris Loveecho "Completed"
135*209e49b2SChris Love
136*209e49b2SChris Loveexit 0
137*209e49b2SChris Love
138*209e49b2SChris Love# Template for additional test cases
139*209e49b2SChris Love#o=`echo -e ""`
140*209e49b2SChris Love#a=`echo -e "" | $PROG `
141*209e49b2SChris Love#[[ "$a" != "$o" ]] && echo "Fail test  - $a"
142