summaryrefslogtreecommitdiffstats
path: root/funtools/funtest/tfuncone
blob: 7b307c47090bcf7f962ca40e4bfa12373cdf2e34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/sh
#set -x

PLATFORM=`uname`
VERBOSE=0
OPROG=funcone
NPROG=../funcone
STDIN=/dev/null
FILE=cat.txt
LIST="cat.ls"

# avoid setting EXTNAME since we are not using 
if [ x$TEXT_EXTNAME != x ]; then
  unset TEXT_EXTNAME
fi

if [ -r /usr/ucb/echo ]; then
  ECHO=/usr/ucb/echo
else
  ECHO=echo
fi

while [ x"$1" != x ]; do
  case $1 in
  -1)
    DO1=YES
    shift
    continue;;
  -n)
    shift
    NPROG=$1
    shift
    continue;;
  -o)
    shift
    OPROG=$1
    shift
    continue;;
  -P)
    DO1=YES
    NPROG=../funcone.pure
    shift
    continue;;
  -v)
    VERBOSE=1
    shift
    continue;;
  -V)
    VERBOSE=2
    shift
    continue;;
  *)
    shift
    continue;;
  esac
done

$ECHO "OPROG="${OPROG}
$ECHO "NPROG="${NPROG}

IFS="	"
while read ARG1 ARG2 ARG3 ARG4; do
  if [ x"$ARG1" = x ]; then
    continue
  fi
  if [ x`$ECHO $ARG1 | sed 's/^#.*/YES/g'` = x"YES" ]; then
    continue
  fi
  CMD=$ARG1

  if [ x$ARG3 = x ]; then
    ARG3="$ARG2"
  fi

  case $CMD in
  EXIT)
    exit
    ;;
  EXACT)
    if [ x"$DO1" = xYES ]; then
      $ECHO "${M}DO1: $ARG3"
      eval "$NPROG $ARG3" | fundisp stdin > funcone2.out
    else
      $ECHO "${M}EXACT: $ARG2 ... $ARG3"
      CMP=yes
      XPROG=""
      eval "$OPROG $ARG2" | fundisp stdin > tfuncone1.out
      if test $? -ne 0; then
        CMP=no
        XPROG="$OPROG"
      fi

      eval "$NPROG $ARG3" | fundisp stdin > tfuncone2.out
      if test $? -ne 0; then
        CMP=no
        XPROG="${XPROG:-}${XPROG:+' '}$NPROG"
      fi
      if [ x"$CMP" = xyes ]; then
        if [ x"$ZBUG" = xtrue ]; then
          sed "/^ *$X      $Y.*$/d" < tfuncone1.out > funcone1.out
          sed "/^ *$X      $Y.*$/d" < tfuncone2.out > funcone2.out
        else
          mv tfuncone1.out funcone1.out
          mv tfuncone2.out funcone2.out
        fi
        diff funcone1.out funcone2.out
      else
        $ECHO "skipping compare due to errors in $XPROG"
      fi
    fi
    $ECHO " "
    ;;
  *)
    $ECHO "ERROR: unknown command: $CMD"
    exit 1
    ;;
  esac
  if [ $VERBOSE = 1 ]; then
    $ECHO "***** funcone1.out *****"
    cat funcone1.out
  fi
  if [ $VERBOSE = 2 ]; then
    $ECHO "***** funcone1.out *****"
    cat funcone1.out
    $ECHO "***** funcone2.out *****"
    cat funcone2.out
  fi
  rm -f err.log
done

rm -f funcone1.out funcone2.out tfuncone1.out tfuncone2.out