]> git.saurik.com Git - apple/configd.git/blame - common/reference_output.sh
configd-888.1.2.tar.gz
[apple/configd.git] / common / reference_output.sh
CommitLineData
9de8ab86
A
1#!/bin/sh
2
3tmpfile=/tmp/test_reference_output$$.txt
4
5cleanup()
6{
7 if [ -f "${tmpfile}" ]; then
8 echo removing "${tmpfile}"
9 rm -f "${tmpfile}"
10 fi
11 exit 1
12}
13
14trap cleanup 1 2 3 15
15
16run_program()
17{
18 program="${1}"
19 filter="${2}"
20 if [ "${filter}" = "" ]; then
21 ${program}
22 else
23 ${program} | ${filter}
24 fi
25}
26
27usage()
28{
29 echo "usage: $0 ( create | test ) <program> <reference_file> [ <filter> ]"
30 exit 1
31}
32
33command="${1}"
34program="${2}"
35ref_file="${3}"
36filter="${4}"
37
38if [ "${ref_file}" = "" ]; then
39 usage "${0}"
40fi
41
42if [ "${program}" = "" ]; then
43 usage "${0}"
44fi
45
46if [ ! -f "${program}" ]; then
47 echo "program '${program}' doesn't exit"
48 exit 1
49fi
50if [ ! -x "${program}" ]; then
51 program="sh ${program}"
52fi
53# echo "The program is ${program}"
54
55if [ ! "${filter}" = "" ]; then
56 if [ ! -f "${filter}" ]; then
57 echo "filter '${filter}' doesn't exit"
58 exit 1
59 fi
60 if [ ! -x "${filter}" ]; then
61 filter="sh ${filter}"
62 fi
63# echo "The filter is ${filter}"
64else
65 echo no filter
66fi
67
68if [ "${command}" = "create" ]; then
69 run_program "${program}" "${filter}" > "${ref_file}"
70elif [ "${command}" = "test" ]; then
71 if [ ! -f "${ref_file}" ]; then
72 echo "reference file '${ref_file}' doesn't exist"
73 exit 1
74 fi
75 run_program "${program}" "${filter}" > "${tmpfile}"
76 cmp "${tmpfile}" "${ref_file}"
77 if [ ! $? -eq 0 ]; then
78 echo FAILURE
79 diff "${tmpfile}" "${ref_file}"
80 exit 1
81 fi
82 echo SUCCESS
83else
84 usage "${0}"
85fi
86
87exit 0