gotest: avoid using echo inside $()
The handling of newlines is not portable between bash and ksh.
Change-Id: I31cf57c9b2bcf98e8390ab92b75565a6798872de
Reviewed-on: https://go-review.googlesource.com/c/164597
Reviewed-by: Cherry Zhang <cherryyz@google.com>
diff --git a/libgo/testsuite/gotest b/libgo/testsuite/gotest
index 06000ea..c9c1465 100755
--- a/libgo/testsuite/gotest
+++ b/libgo/testsuite/gotest
@@ -619,21 +619,25 @@
# Turn pairs of spaces into " \x20", because $() will
# drop duplicate spaces.
# 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' \
-e 's/"/\\"/g' \
-e 's/ /\\t/g' \
-e 's/ / \\x20/g' \
-e 's/[ ]*$/\\n/g' |
- tr -d '\n')"
- # Remove leading and trailing \n.
- output="$(echo "$output" | sed -e 's/^\(\\n\)*//' -e 's/\(\\n\)*$//')"
+ tr -d '\n' |
+ sed -e 's/^\(\\n\)*//' \
+ -e 's/\(\\n\)*$//' > example2.txt
hasoutput=true
rm -f example.txt
break
done
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
done
echo '}'