diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 5 | ||||
-rw-r--r-- | test/Makefile.am | 6 | ||||
-rw-r--r-- | test/Makefile.in | 11 | ||||
-rw-r--r-- | test/Maketests | 5 | ||||
-rw-r--r-- | test/regrange.awk | 30 | ||||
-rw-r--r-- | test/regrange.ok | 6 |
6 files changed, 59 insertions, 4 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index f28153ab..764fd90d 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,8 @@ +Tue May 31 22:50:28 2011 Arnold D. Robbins <arnold@skeeve.com> + + * regrange.awk, regrange.ok: New files. + * Makefile.am (regrange): New test. + Thu May 26 22:08:27 2011 Arnold D. Robbins <arnold@skeeve.com> * fpat2.awk, fpat2.ok: New files. Thanks to Pat Rankin for the cases. diff --git a/test/Makefile.am b/test/Makefile.am index 065bff1d..e3dbce04 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -579,6 +579,8 @@ EXTRA_DIST = \ regeq.awk \ regeq.in \ regeq.ok \ + regrange.awk \ + regrange.ok \ regtest.sh \ regx8bit.awk \ regx8bit.ok \ @@ -771,8 +773,8 @@ BASIC_TESTS = \ ofmta ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup \ paramres paramtyp parse1 parsefld parseme pcntplus posix2008sub \ prdupval prec printf0 printf1 prmarscl prmreuse prt1eval prtoeval \ - rand range1 rebt8b1 redfilnm regeq reindops reparse resplit rs \ - rsnul1nl rsnulbig rsnulbig2 rstest1 rstest2 rstest3 rstest4 \ + rand range1 rebt8b1 redfilnm regeq regrange reindops reparse resplit \ + rs rsnul1nl rsnulbig rsnulbig2 rstest1 rstest2 rstest3 rstest4 \ rstest5 rswhite scalar sclforin sclifin sortempty splitargv \ splitarr splitdef splitvar splitwht strcat1 strnum1 strtod subamp \ subi18n subsepnm subslash substr swaplns synerr1 synerr2 tradanch \ diff --git a/test/Makefile.in b/test/Makefile.in index 1fa42e36..3de264e3 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -764,6 +764,8 @@ EXTRA_DIST = \ regeq.awk \ regeq.in \ regeq.ok \ + regrange.awk \ + regrange.ok \ regtest.sh \ regx8bit.awk \ regx8bit.ok \ @@ -956,8 +958,8 @@ BASIC_TESTS = \ ofmta ofmtbig ofmtfidl ofmts onlynl opasnidx opasnslf paramdup \ paramres paramtyp parse1 parsefld parseme pcntplus posix2008sub \ prdupval prec printf0 printf1 prmarscl prmreuse prt1eval prtoeval \ - rand range1 rebt8b1 redfilnm regeq reindops reparse resplit rs \ - rsnul1nl rsnulbig rsnulbig2 rstest1 rstest2 rstest3 rstest4 \ + rand range1 rebt8b1 redfilnm regeq regrange reindops reparse resplit \ + rs rsnul1nl rsnulbig rsnulbig2 rstest1 rstest2 rstest3 rstest4 \ rstest5 rswhite scalar sclforin sclifin sortempty splitargv \ splitarr splitdef splitvar splitwht strcat1 strnum1 strtod subamp \ subi18n subsepnm subslash substr swaplns synerr1 synerr2 tradanch \ @@ -2367,6 +2369,11 @@ regeq: @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +regrange: + @echo regrange + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + reindops: @echo reindops @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 7577b893..243d07b7 100644 --- a/test/Maketests +++ b/test/Maketests @@ -645,6 +645,11 @@ regeq: @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +regrange: + @echo regrange + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + reindops: @echo reindops @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/regrange.awk b/test/regrange.awk new file mode 100644 index 00000000..71879316 --- /dev/null +++ b/test/regrange.awk @@ -0,0 +1,30 @@ +# Tests due to John Haque, May 2011 +# +# The following should be fatal; can't catch them inside awk, though +# $> echo 'a' | ./gawk '/[z-a]/ { print }' +# $> echo 'A' | ./gawk '/[+-[:digit:]]/' + +BEGIN { + char[1] = "." + pat[1] = "[--\\/]" + + char[2] = "a" + pat[2] = "[]-c]" + + char[3] = "c" + pat[3] = "[[a-d]" + + char[4] = "\\" + pat[4] = "[\\[-\\]]" + + char[5] = "[.c.]" + pat[5] = "[a-[.e.]]" + + char[6] = "[.d.]" + pat[6] = "[[.c.]-[.z.]]" + + for (i = 1; i in char; i++) { + printf("\"%s\" ~ /%s/ --> %d\n", char[i], pat[i], + char[i] ~ pat[i]) + } +} diff --git a/test/regrange.ok b/test/regrange.ok new file mode 100644 index 00000000..1fa00c70 --- /dev/null +++ b/test/regrange.ok @@ -0,0 +1,6 @@ +"." ~ /[--\/]/ --> 1 +"a" ~ /[]-c]/ --> 1 +"c" ~ /[[a-d]/ --> 1 +"\" ~ /[\[-\]]/ --> 1 +"[.c.]" ~ /[a-[.e.]]/ --> 1 +"[.d.]" ~ /[[.c.]-[.z.]]/ --> 0 |