aboutsummaryrefslogtreecommitdiff
path: root/testsuite/awk.tests
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/awk.tests')
-rwxr-xr-xtestsuite/awk.tests47
1 files changed, 47 insertions, 0 deletions
diff --git a/testsuite/awk.tests b/testsuite/awk.tests
index cdab93d21..c61d32947 100755
--- a/testsuite/awk.tests
+++ b/testsuite/awk.tests
@@ -552,4 +552,51 @@ testing "awk = has higher precedence than == (despite what gawk manpage claims)"
552 '0\n1\n2\n1\n3\n' \ 552 '0\n1\n2\n1\n3\n' \
553 '' '' 553 '' ''
554 554
555sq="'"
556testing 'awk gensub backslashes \' \
557 'awk '$sq'BEGIN { s="\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
558 's=\\
559\\|\\
560' \
561 '' ''
562testing 'awk gensub backslashes \\' \
563 'awk '$sq'BEGIN { s="\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
564 's=\\\\
565\\|\\
566' \
567 '' ''
568# gawk 5.1.1 handles trailing unpaired \ inconsistently.
569# If replace string is single \, it is used verbatim,
570# but if it is \\\ (three slashes), gawk uses "\<NUL>" (!!!), not "\\" as you would expect.
571testing 'awk gensub backslashes \\\' \
572 'awk '$sq'BEGIN { s="\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
573 's=\\\\\\
574\\\\|\\\\
575' \
576 '' ''
577testing 'awk gensub backslashes \\\\' \
578 'awk '$sq'BEGIN { s="\\\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
579 's=\\\\\\\\
580\\\\|\\\\
581' \
582 '' ''
583testing 'awk gensub backslashes \&' \
584 'awk '$sq'BEGIN { s="\\&"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
585 's=\\&
586&|&
587' \
588 '' ''
589testing 'awk gensub backslashes \0' \
590 'awk '$sq'BEGIN { s="\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
591 's=\\0
592a|a
593' \
594 '' ''
595testing 'awk gensub backslashes \\0' \
596 'awk '$sq'BEGIN { s="\\\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \
597 's=\\\\0
598\\0|\\0
599' \
600 '' ''
601
555exit $FAILCOUNT 602exit $FAILCOUNT