File: algparse.sh

package info (click to toggle)
libreswan 4.3-1%2Bdeb11u4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 62,688 kB
  • sloc: ansic: 108,293; sh: 25,973; xml: 11,756; python: 10,230; makefile: 1,580; javascript: 1,353; yacc: 825; sed: 647; perl: 584; lex: 159; awk: 156
file content (68 lines) | stat: -rwxr-xr-x 1,225 bytes parent folder | download
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
#!/bin/sh

if test $# -lt 1; then
    cat <<EOF >/dev/stderr

Usage:

    $0 <path-to-alg-parse> [ <test-files> ] [ | patch -p1 ]

Piping to patch will apply the reported differences.  For instance:

    $0 'ipsec algparse'

EOF
    exit 1
fi

export EF_DISABLE_BANNER=1

algparse=$1 ; shift
if test $# -eq 0 ; then
    dir=$(dirname $(dirname $0))

    set - ${dir}/algparse-*/algparse.*.txt
fi

set -e

rc=0
for file in "$@" ; do

    flags=
    test=
    case "${file}" in
	*-fips* ) flags="${flags} -fips" ;;
    esac

    for opt in $(basename ${file} | sed -e 's/\./ /g'); do
	case "${opt}" in
	    v1 ) flags="${flags} -v1" test="-t" ;;
	    v2 ) flags="${flags} -v2" test="-t" ;;
	    pfs ) flags="${flags} -pfs" test="-t" ;;
	    v ) test="-v" ;;
	esac
    done
    flags="${flags} ${test}"

    echo ${algparse} ${flags} \# ${file} 1>&2

    if test -r ${file} ; then
	if ${algparse} ${flags} 2>&1 \
	       | sed -e "s;^${algparse};algparse;" \
	       | diff -u ${file} - ; then
	    :
	else
	    echo "fail: ${algparse} ${flags}" 1>&2
	    rc=1
	fi
    else
	${algparse} ${flags} 2>&1 \
	    | sed -e "s;${algparse};algparse;" \
	    | tee ${file}
	echo created ${dir}/${file} 1>&2
	rc=1
    fi
done

exit ${rc}