summaryrefslogtreecommitdiffstats
path: root/funtools/funtest/tfunmerge
blob: 674381cd601178c8c7ad7d7aa60f036ec48ad8cf (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
#!/bin/sh
#set -x

PLATFORM=`uname`
VERBOSE=0
OPROG=funmerge
NPROG=../funmerge
STDIN=/dev/null
DIR=../txt/
FILES="mif1.fits mif2.fits mif3.fits mif4.fits"
LIST="@mif.lst"

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=../funmerge.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

  eval "ARG3=\"$ARG3\""
  eval "ARG4=\"$ARG4\""

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

      eval "$NPROG $ARG2 $ARG4 stdout" | fundisp stdin > tfunmerge2.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" < tfunmerge1.out > funmerge1.out
          sed "/^ *$X      $Y.*$/d" < tfunmerge2.out > funmerge2.out
        else
          mv tfunmerge1.out funmerge1.out
          mv tfunmerge2.out funmerge2.out
        fi
        diff funmerge1.out funmerge2.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 "***** funmerge1.out *****"
    cat funmerge1.out
  fi
  if [ $VERBOSE = 2 ]; then
    $ECHO "***** funmerge1.out *****"
    cat funmerge1.out
    $ECHO "***** funmerge2.out *****"
    cat funmerge2.out
  fi
  rm -f err.log
done

rm -f funmerge1.out funmerge2.out tfunmerge1.out tfunmerge2.out