mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-02-24 23:14:14 +00:00
The regression test suite used 'mktemp -dt' to create temporary directories, but that is not portable, e.g. it does not work on macOS, FreebSD or NetBSD. Installing a compatible 'mktemp' in another location in $PATH did not work either, as the regression test suite resets $PATH. src/cmd/ksh93/tests/*: - Replace many uses of 'mktemp -dt' by a portable and reasonably safe way to create a temporary directory. (cherry picked from commit 71f4c43703e3eff034009b4c8f4110bd32f4e209)
76 lines
2.7 KiB
Bash
Executable file
76 lines
2.7 KiB
Bash
Executable file
########################################################################
|
|
# #
|
|
# This software is part of the ast package #
|
|
# Copyright (c) 1982-2012 AT&T Intellectual Property #
|
|
# and is licensed under the #
|
|
# Eclipse Public License, Version 1.0 #
|
|
# by AT&T Intellectual Property #
|
|
# #
|
|
# A copy of the License is available at #
|
|
# http://www.eclipse.org/org/documents/epl-v10.html #
|
|
# (with md5 checksum b35adb5213ca9657e911e9befb180842) #
|
|
# #
|
|
# Information and Software Systems Research #
|
|
# AT&T Research #
|
|
# Florham Park NJ #
|
|
# #
|
|
# David Korn <dgk@research.att.com> #
|
|
# #
|
|
########################################################################
|
|
function err_exit
|
|
{
|
|
print -u2 -n "\t"
|
|
print -u2 -r ${Command}[$1]: "${@:2}"
|
|
let Errors+=1
|
|
}
|
|
alias err_exit='err_exit $LINENO'
|
|
|
|
Command=${0##*/}
|
|
integer Errors=0
|
|
|
|
tmp=$(
|
|
d=${TMPDIR:-/tmp}/ksh93.readcsv.$$.${RANDOM:-0}
|
|
mkdir -m700 -- "$d" && CDPATH= cd -P -- "$d" && pwd
|
|
) || {
|
|
err_exit 'mkdir failed'
|
|
exit 1
|
|
}
|
|
trap 'cd / && rm -rf "$tmp"' EXIT
|
|
|
|
tmp1=$tmp/tmp1.csv
|
|
tmp2=$tmp/tmp2.csv
|
|
cat > $tmp1 <<- \EOF
|
|
CAT,"CVE CCODE","NECA OCN",ST,LATA,AP,"New InterState
|
|
Orig","New Inter""""State
|
|
Term","New IntraState
|
|
Orig","New IntraState
|
|
Term"
|
|
CLEC,XXXX,AAAA,RB,ABC,comp," 0.2 "," 0.4 "," 0.6 "," 0.8 "
|
|
CLEC,YYYY,QQQQ,SX,123,mmmm," 0.3 "," 0.5 "," 0.7 "," 0.9 "
|
|
EOF
|
|
integer count=0 nfields
|
|
IFS=${2-,}
|
|
for j in 1 2
|
|
do typeset -a arr
|
|
while read -A -S arr
|
|
do ((nfields=${#arr[@]}))
|
|
if ((++count==1))
|
|
then ((nfields==10)) || err_exit 'first record should contain 10 fields'
|
|
[[ ${arr[7]} == $'New Inter""State\nTerm' ]] || err_exit $'7th field of record 1 should contain New Inter""State\nTerm'
|
|
fi
|
|
for ((i=0; i < nfields;i++))
|
|
do delim=$IFS
|
|
if ((i == nfields-1))
|
|
then delim=$'\r\n'
|
|
fi
|
|
if ((i==1))
|
|
then printf "%#q%s" "${arr[i]}" "$delim"
|
|
else printf "%(csv)q%s" "${arr[i]}" "$delim"
|
|
fi
|
|
done
|
|
done < $tmp1 > $tmp2
|
|
done
|
|
diff "$tmp1" "$tmp2" >/dev/null 2>&1 || err_exit "files $tmp1 and $tmp2 differ"
|
|
|
|
exit $((Errors<125?Errors:125))
|
|
|