diff options
Diffstat (limited to 'testsuite/awk.tests')
-rwxr-xr-x | testsuite/awk.tests | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/testsuite/awk.tests b/testsuite/awk.tests index c61d32947..5a792c241 100755 --- a/testsuite/awk.tests +++ b/testsuite/awk.tests | |||
@@ -557,14 +557,12 @@ testing 'awk gensub backslashes \' \ | |||
557 | 'awk '$sq'BEGIN { s="\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 557 | 'awk '$sq'BEGIN { s="\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
558 | 's=\\ | 558 | 's=\\ |
559 | \\|\\ | 559 | \\|\\ |
560 | ' \ | 560 | ' '' '' |
561 | '' '' | ||
562 | testing 'awk gensub backslashes \\' \ | 561 | testing 'awk gensub backslashes \\' \ |
563 | 'awk '$sq'BEGIN { s="\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 562 | 'awk '$sq'BEGIN { s="\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
564 | 's=\\\\ | 563 | 's=\\\\ |
565 | \\|\\ | 564 | \\|\\ |
566 | ' \ | 565 | ' '' '' |
567 | '' '' | ||
568 | # gawk 5.1.1 handles trailing unpaired \ inconsistently. | 566 | # gawk 5.1.1 handles trailing unpaired \ inconsistently. |
569 | # If replace string is single \, it is used verbatim, | 567 | # If replace string is single \, it is used verbatim, |
570 | # but if it is \\\ (three slashes), gawk uses "\<NUL>" (!!!), not "\\" as you would expect. | 568 | # but if it is \\\ (three slashes), gawk uses "\<NUL>" (!!!), not "\\" as you would expect. |
@@ -572,31 +570,35 @@ testing 'awk gensub backslashes \\\' \ | |||
572 | 'awk '$sq'BEGIN { s="\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 570 | 'awk '$sq'BEGIN { s="\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
573 | 's=\\\\\\ | 571 | 's=\\\\\\ |
574 | \\\\|\\\\ | 572 | \\\\|\\\\ |
575 | ' \ | 573 | ' '' '' |
576 | '' '' | ||
577 | testing 'awk gensub backslashes \\\\' \ | 574 | testing 'awk gensub backslashes \\\\' \ |
578 | 'awk '$sq'BEGIN { s="\\\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 575 | 'awk '$sq'BEGIN { s="\\\\\\\\"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
579 | 's=\\\\\\\\ | 576 | 's=\\\\\\\\ |
580 | \\\\|\\\\ | 577 | \\\\|\\\\ |
581 | ' \ | 578 | ' '' '' |
582 | '' '' | ||
583 | testing 'awk gensub backslashes \&' \ | 579 | testing 'awk gensub backslashes \&' \ |
584 | 'awk '$sq'BEGIN { s="\\&"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 580 | 'awk '$sq'BEGIN { s="\\&"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
585 | 's=\\& | 581 | 's=\\& |
586 | &|& | 582 | &|& |
587 | ' \ | 583 | ' '' '' |
588 | '' '' | ||
589 | testing 'awk gensub backslashes \0' \ | 584 | testing 'awk gensub backslashes \0' \ |
590 | 'awk '$sq'BEGIN { s="\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 585 | 'awk '$sq'BEGIN { s="\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
591 | 's=\\0 | 586 | 's=\\0 |
592 | a|a | 587 | a|a |
593 | ' \ | 588 | ' '' '' |
594 | '' '' | ||
595 | testing 'awk gensub backslashes \\0' \ | 589 | testing 'awk gensub backslashes \\0' \ |
596 | 'awk '$sq'BEGIN { s="\\\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ | 590 | 'awk '$sq'BEGIN { s="\\\\0"; print "s=" s; print gensub("a", s, "g", "a|a") }'$sq \ |
597 | 's=\\\\0 | 591 | 's=\\\\0 |
598 | \\0|\\0 | 592 | \\0|\\0 |
599 | ' \ | 593 | ' '' '' |
594 | |||
595 | # The "b" in "abc" should not match <b* pattern. | ||
596 | # Currently we use REG_STARTEND ("This flag is a BSD extension, not present in POSIX") | ||
597 | # to implement the code to handle this correctly, but if your libc has no REG_STARTEND, | ||
598 | # the alternative code mishandles this case. | ||
599 | testing 'awk gsub erroneous word start match' \ | ||
600 | "awk 'BEGIN { a=\"abc\"; gsub(/\<b*/,\"\",a); print a }'" \ | ||
601 | 'abc\n' \ | ||
600 | '' '' | 602 | '' '' |
601 | 603 | ||
602 | exit $FAILCOUNT | 604 | exit $FAILCOUNT |