commit 66ac9466852d11e968f8fd2ad6ffc7386cee49e1

gotest: avoid using echo inside $()
    
    The handling of newlines is not portable between bash and ksh.
    
    Reviewed-on: https://go-review.googlesource.com/c/164597

From-SVN: r269298
This commit is contained in:
Ian Lance Taylor 2019-03-01 01:03:54 +00:00
parent 1e15758224
commit 5b2eaa1170
2 changed files with 10 additions and 6 deletions

View File

@ -1,4 +1,4 @@
08f1c400ec95d70a5cf5a08b1600fa5445e42361 66ac9466852d11e968f8fd2ad6ffc7386cee49e1
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.

View File

@ -619,21 +619,25 @@ symtogo() {
# Turn pairs of spaces into " \x20", because $() will # Turn pairs of spaces into " \x20", because $() will
# drop duplicate spaces. # drop duplicate spaces.
# Drop trailing spaces, and turn newlines into \n. # Drop trailing spaces, and turn newlines into \n.
output="$(sed '1 s/\([Uu]nordered \)\?[Oo]utput:[ ]*//' < example.txt | # Remove leading and trailing \n.
sed '1 s/\([Uu]nordered \)\?[Oo]utput:[ ]*//' < example.txt |
sed -e 's/\\/\\\\/g' \ sed -e 's/\\/\\\\/g' \
-e 's/"/\\"/g' \ -e 's/"/\\"/g' \
-e 's/ /\\t/g' \ -e 's/ /\\t/g' \
-e 's/ / \\x20/g' \ -e 's/ / \\x20/g' \
-e 's/[ ]*$/\\n/g' | -e 's/[ ]*$/\\n/g' |
tr -d '\n')" tr -d '\n' |
# Remove leading and trailing \n. sed -e 's/^\(\\n\)*//' \
output="$(echo "$output" | sed -e 's/^\(\\n\)*//' -e 's/\(\\n\)*$//')" -e 's/\(\\n\)*$//' > example2.txt
hasoutput=true hasoutput=true
rm -f example.txt rm -f example.txt
break break
done done
if test x$hasoutput = xtrue; then if test x$hasoutput = xtrue; then
echo ' {"'$n'", '$j', "'"$output"'", '$unordered'},' echo ' {"'$n'", '$j','
sed -e 's/^/ "/' -e 's/$/", /' < example2.txt
echo $unordered'},'
rm -f example2.txt
fi fi
done done
echo '}' echo '}'