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