aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2013-06-27 11:54:01 +0300
committerArnold D. Robbins <arnold@skeeve.com>2013-06-27 11:54:01 +0300
commit8e9e1dfbc6c34a6d502d9738b651ae4c70806b1b (patch)
tree5ed23a17305b92af5d2716154437051c779a65a5
parent70a3f6aad2edee778ce8bf1d8de0d19618af46bf (diff)
downloadegawk-8e9e1dfbc6c34a6d502d9738b651ae4c70806b1b.tar.gz
egawk-8e9e1dfbc6c34a6d502d9738b651ae4c70806b1b.tar.bz2
egawk-8e9e1dfbc6c34a6d502d9738b651ae4c70806b1b.zip
New test case for dfa problem fixed earlier.
-rw-r--r--test/ChangeLog6
-rw-r--r--test/Makefile.am11
-rw-r--r--test/Makefile.in11
-rw-r--r--test/dfamb1.awk4
-rw-r--r--test/dfamb1.in1
-rw-r--r--test/dfamb1.ok2
6 files changed, 33 insertions, 2 deletions
diff --git a/test/ChangeLog b/test/ChangeLog
index 2eada5aa..fcd922c1 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2013-06-27 Arnold D. Robbins <arnold@skeeve.com>
+
+ * Makefile.am (dfamb1): New test.
+ * dfamb1.awk, dfamb1.in, dfamb1.ok: New files.
+ Test case from Steven Daniels <stevendaniels88@gmail.com>.
+
2013-06-24 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (clos1way): Move to here since Maketests gets
diff --git a/test/Makefile.am b/test/Makefile.am
index fb73a76f..fe6d3a59 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -177,6 +177,9 @@ EXTRA_DIST = \
devfd1.awk \
devfd1.ok \
devfd2.ok \
+ dfamb1.awk \
+ dfamb1.in \
+ dfamb1.ok \
dfastress.awk \
dfastress.ok \
double1.awk \
@@ -925,7 +928,7 @@ BASIC_TESTS = \
back89 backgsub \
childin clobber closebad clsflnam compare compare2 concat1 concat2 \
concat3 concat4 convfmt \
- datanonl defref delargv delarpm2 delarprm delfunc dfastress dynlj \
+ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \
eofsplit exit2 exitval1 exitval2 \
fcall_exit fcall_exit2 fldchg fldchgnf fnamedat fnarray fnarray2 \
fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsrs fsspcoln \
@@ -1838,6 +1841,12 @@ clos1way:
@AWKPATH=$(srcdir) LC_ALL=C $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+dfamb1:
+ @echo $@
+ @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
+ AWKPATH=$(srcdir) $(AWK) -f $@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
# Targets generated for other tests:
include Maketests
diff --git a/test/Makefile.in b/test/Makefile.in
index 5bb3e201..06946c0c 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -395,6 +395,9 @@ EXTRA_DIST = \
devfd1.awk \
devfd1.ok \
devfd2.ok \
+ dfamb1.awk \
+ dfamb1.in \
+ dfamb1.ok \
dfastress.awk \
dfastress.ok \
double1.awk \
@@ -1142,7 +1145,7 @@ BASIC_TESTS = \
back89 backgsub \
childin clobber closebad clsflnam compare compare2 concat1 concat2 \
concat3 concat4 convfmt \
- datanonl defref delargv delarpm2 delarprm delfunc dfastress dynlj \
+ datanonl defref delargv delarpm2 delarprm delfunc dfamb1 dfastress dynlj \
eofsplit exit2 exitval1 exitval2 \
fcall_exit fcall_exit2 fldchg fldchgnf fnamedat fnarray fnarray2 \
fnaryscl fnasgnm fnmisc fordel forref forsimp fsbs fsrs fsspcoln \
@@ -2231,6 +2234,12 @@ clos1way:
@echo $@
@AWKPATH=$(srcdir) LC_ALL=C $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
@-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
+
+dfamb1:
+ @echo $@
+ @[ -z "$$GAWKLOCALE" ] && GAWKLOCALE=en_US.UTF-8; \
+ AWKPATH=$(srcdir) $(AWK) -f $@.awk $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@
+ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@
Gt-dummy:
# file Maketests, generated from Makefile.am by the Gentests program
addcomma:
diff --git a/test/dfamb1.awk b/test/dfamb1.awk
new file mode 100644
index 00000000..7647adf5
--- /dev/null
+++ b/test/dfamb1.awk
@@ -0,0 +1,4 @@
+# The first of these used to core dump gawk. As of 7/2013 it's fixed.
+# This file is to make sure that remains true.
+{match($0, /(([^ \?.]*\?pos=ad |([^ \?.]*\?pos=(jj|va) )地\?pos=dev ){0,2})/ , arr)} { if(arr[0]) print arr[1], arr[4], $6}
+{match($0, /(([^ \?.]*\?pos=ad |([^ \?.]*\?pos=(jj|va) )[地]\?pos=dev ){0,2})/ , arr)} { if(arr[0]) print arr[1], arr[4], $6}
diff --git a/test/dfamb1.in b/test/dfamb1.in
new file mode 100644
index 00000000..8347590f
--- /dev/null
+++ b/test/dfamb1.in
@@ -0,0 +1 @@
+很?pos=ad 宽广?pos=va , 更?pos=ad 是?pos=vc1
diff --git a/test/dfamb1.ok b/test/dfamb1.ok
new file mode 100644
index 00000000..ad443a23
--- /dev/null
+++ b/test/dfamb1.ok
@@ -0,0 +1,2 @@
+很?pos=ad
+很?pos=ad