Add regression tests for m4.
authorPeter Avalos <pavalos@dragonflybsd.org>
Tue, 15 Jan 2013 06:26:10 +0000 (22:26 -0800)
committerPeter Avalos <pavalos@dragonflybsd.org>
Tue, 15 Jan 2013 06:26:10 +0000 (22:26 -0800)
Obtained-from:  FreeBSD

45 files changed:
tools/regression/usr.bin/m4/Makefile [new file with mode: 0644]
tools/regression/usr.bin/m4/args.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/args2.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/comments.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/esyscmd.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/eval.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/ff_after_dnl.m4.uu [new file with mode: 0644]
tools/regression/usr.bin/m4/gnueval.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/gnuformat.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/gnupatterns.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/gnupatterns2.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/gnuprefix.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/gnusofterror.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/includes.aux [new file with mode: 0644]
tools/regression/usr.bin/m4/includes.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/m4wrap3.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/patterns.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/quotes.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/redef.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.args.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.args2.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.comments.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.esyscmd.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.eval.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.ff_after_dnl.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnueval.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnuformat.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnupatterns.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnupatterns2.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnuprefix.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnusofterror.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.gnutranslit2.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.includes.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.m4wrap3.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.patterns.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.quotes.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.redef.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.sh [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.strangequotes.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.t [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.translit.out [new file with mode: 0644]
tools/regression/usr.bin/m4/regress.translit2.out [new file with mode: 0644]
tools/regression/usr.bin/m4/strangequotes.m4.uu [new file with mode: 0644]
tools/regression/usr.bin/m4/translit.m4 [new file with mode: 0644]
tools/regression/usr.bin/m4/translit2.m4 [new file with mode: 0644]

diff --git a/tools/regression/usr.bin/m4/Makefile b/tools/regression/usr.bin/m4/Makefile
new file mode 100644 (file)
index 0000000..f7ee946
--- /dev/null
@@ -0,0 +1,4 @@
+# $FreeBSD: src/tools/regression/usr.bin/m4/Makefile,v 1.5 2012/11/17 01:53:58 svnexp Exp $
+
+all:
+       @m4 ${.CURDIR}/../regress.m4 ${.CURDIR}/regress.sh | sh /dev/stdin ${.CURDIR}
diff --git a/tools/regression/usr.bin/m4/args.m4 b/tools/regression/usr.bin/m4/args.m4
new file mode 100644 (file)
index 0000000..906b823
--- /dev/null
@@ -0,0 +1,9 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/args.m4,v 1.2 2012/11/17 01:53:58 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/args.m4,v 1.1 2001/10/10 23:23:59 espie Exp $
+dnl Expanding all arguments
+define(`A', `first form: $@, second form $*')dnl
+define(`B', `C')dnl
+A(1,2,`B')
+dnl indirection means macro can get called with argc == 2 !
+indir(`A',1,2,`B')
+indir(`A')
diff --git a/tools/regression/usr.bin/m4/args2.m4 b/tools/regression/usr.bin/m4/args2.m4
new file mode 100644 (file)
index 0000000..0f290cc
--- /dev/null
@@ -0,0 +1,5 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/args2.m4,v 1.2 2012/11/17 01:53:58 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/args2.m4,v 1.1 2008/08/16 09:57:12 espie Exp $
+dnl Preserving spaces within nested parentheses
+define(`foo',`$1')dnl
+foo((    check for embedded spaces))
diff --git a/tools/regression/usr.bin/m4/comments.m4 b/tools/regression/usr.bin/m4/comments.m4
new file mode 100644 (file)
index 0000000..f094005
--- /dev/null
@@ -0,0 +1,59 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/comments.m4,v 1.2 2012/11/17 01:53:58 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/comments.m4,v 1.1 2005/09/06 15:33:21 espie Exp $
+dnl checking the way changecom works.
+1: normal
+define(`comment', `COMMENT')dnl
+define(`p', 'XXX')dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+2: `changecom(>>)dnl'
+changecom(>>)dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+3: `changecom dnl'
+changecom dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+4: `changecom()dnl'
+changecom()dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+5: `changecom(,)dnl'
+changecom(,)dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+6: `changecom(`p',q)dnl'
+changecom(`p',q)dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+7: `changecom(`p')dnl'
+changecom(`p')dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
+
+8: `changecom(#)dnl'
+changecom(#)dnl
+# this is a comment
+>> this is a comment
+p this is a comment
+p this is a comment q comment too
diff --git a/tools/regression/usr.bin/m4/esyscmd.m4 b/tools/regression/usr.bin/m4/esyscmd.m4
new file mode 100644 (file)
index 0000000..7c8a3e5
--- /dev/null
@@ -0,0 +1,43 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/esyscmd.m4,v 1.2 2012/11/17 01:53:58 svnexp Exp $
+changequote(`{',`}')dnl
+dnl
+esyscmd({sh -c "m4<<EOF
+define(_bp,hi there a)
+define(_comb,
+_bp($1$2)
+_bp($2$1)
+)
+define(bp,
+_comb(aaaa,foo0)
+_comb(bbbb,foo0)
+_comb(cccc,foo0)
+_comb(dddd,foo0)
+_comb(aaaa,foo0)
+_comb(bbbb,foo0)
+_comb(cccc,foo0)
+_comb(dddd,foo0)
+)
+bp(a00)
+bp(b00)
+bp(c00)
+bp(d00)
+bp(e00)
+bp(f00)
+bp(g00)
+bp(h00)
+bp(i00)
+bp(j00)
+bp(k00)
+bp(l00)
+bp(m00)
+bp(n00)
+bp(o00)
+bp(p00)
+bp(q00)
+bp(r00)
+bp(s00)
+bp(t00)
+bp(u00)
+bp(v00)
+bp(w00)
+EOF"})dnl
diff --git a/tools/regression/usr.bin/m4/eval.m4 b/tools/regression/usr.bin/m4/eval.m4
new file mode 100644 (file)
index 0000000..9a78674
--- /dev/null
@@ -0,0 +1,6 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/eval.m4,v 1.2 2012/11/17 01:53:58 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/eval.m4,v 1.1 2004/05/12 21:24:37 espie Exp $
+dnl expr parser
+eval(224&127)
+eval(224|127)
+eval(224&&127)
diff --git a/tools/regression/usr.bin/m4/ff_after_dnl.m4.uu b/tools/regression/usr.bin/m4/ff_after_dnl.m4.uu
new file mode 100644 (file)
index 0000000..657fab2
--- /dev/null
@@ -0,0 +1,11 @@
+$FreeBSD: src/tools/regression/usr.bin/m4/ff_after_dnl.m4.uu,v 1.2 2012/11/17 01:53:58 svnexp Exp $
+$OpenBSD: src/regress/usr.bin/m4/ff_after_dnl.m4.uu,v 1.1.1.1 2000/07/01 00:31:01 espie Exp $
+$NetBSD: ff_after_dnl.m4.uu,v 1.1 1997/12/30 23:30:53 cgd Exp $
+
+begin 644 ff_after_dnl.m4
+M"0E42$E3(%-(3U5,1"!32$]7(%50("A,24Y%(#$I"F1N;`D)5$A)4R!32$]5
+M3$0@3D]4(%-(3U<@55`@*$Q)3D4@,BD*9&YL_PD)5$A)4R!32$]53$0@3D]4
+M(%-(3U<@55`@*$Q)3D4@,RD*9&YL"?\)5$A)4R!32$]53$0@3D]4(%-(3U<@
+K55`@*$Q)3D4@-"D*"0E42$E3(%-(3U5,1"!32$]7(%50("A,24Y%(#4I"E<@
+`
+end
diff --git a/tools/regression/usr.bin/m4/gnueval.m4 b/tools/regression/usr.bin/m4/gnueval.m4
new file mode 100644 (file)
index 0000000..05a7863
--- /dev/null
@@ -0,0 +1,7 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/gnueval.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/gnueval.m4,v 1.1 2012/04/12 16:58:15 espie Exp $
+dnl exponentiation is right associative
+eval(`4**2**3')
+dnl priority between unary operators and *
+eval(`4**2*3')
+eval(`-4**3')
diff --git a/tools/regression/usr.bin/m4/gnuformat.m4 b/tools/regression/usr.bin/m4/gnuformat.m4
new file mode 100644 (file)
index 0000000..c8bcaa3
--- /dev/null
@@ -0,0 +1,2 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/gnuformat.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+format(`a%15sa%%b%-15sbc%3scd%-3sd', `string', `pouet', `toolong', `toolong2')
diff --git a/tools/regression/usr.bin/m4/gnupatterns.m4 b/tools/regression/usr.bin/m4/gnupatterns.m4
new file mode 100644 (file)
index 0000000..570993f
--- /dev/null
@@ -0,0 +1,4 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/gnupatterns.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+patsubst(`string with a + to replace with a minus', `+', `minus')
+patsubst(`string with aaaaa to replace with a b', `a+', `b')
+patsubst(`+string with a starting + to replace with a minus', `^+', `minus')
diff --git a/tools/regression/usr.bin/m4/gnupatterns2.m4 b/tools/regression/usr.bin/m4/gnupatterns2.m4
new file mode 100644 (file)
index 0000000..43b57b5
--- /dev/null
@@ -0,0 +1,6 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/gnupatterns2.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+define(`zoinx',dnl
+`patsubst($1,\(\w+\)\(\W*\),\1 )')dnl
+zoinx(acosl asinl atanl \
+       cosl sinl tanl \
+       coshl sinhl tanhl)
diff --git a/tools/regression/usr.bin/m4/gnuprefix.m4 b/tools/regression/usr.bin/m4/gnuprefix.m4
new file mode 100644 (file)
index 0000000..fff9784
--- /dev/null
@@ -0,0 +1,2 @@
+dumpdef()
+m4_dumpdef()
diff --git a/tools/regression/usr.bin/m4/gnusofterror.m4 b/tools/regression/usr.bin/m4/gnusofterror.m4
new file mode 100644 (file)
index 0000000..b5b9ba6
--- /dev/null
@@ -0,0 +1,4 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/gnusofterror.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/gnusofterror.m4,v 1.1 2012/04/12 16:58:15 espie Exp $
+include(`hey I do not exit')dnl
+abc
diff --git a/tools/regression/usr.bin/m4/includes.aux b/tools/regression/usr.bin/m4/includes.aux
new file mode 100644 (file)
index 0000000..8ce0ceb
--- /dev/null
@@ -0,0 +1,3 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/includes.aux,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/includes.aux,v 1.1 2008/08/16 10:02:32 espie Exp $
+hello world dnl
diff --git a/tools/regression/usr.bin/m4/includes.m4 b/tools/regression/usr.bin/m4/includes.m4
new file mode 100644 (file)
index 0000000..8b31969
--- /dev/null
@@ -0,0 +1,5 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/includes.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/includes.m4,v 1.1 2008/08/16 10:02:32 espie Exp $
+dnl Check that include can occur within parameters
+define(`foo', include(includes.aux))dnl
+foo
diff --git a/tools/regression/usr.bin/m4/m4wrap3.m4 b/tools/regression/usr.bin/m4/m4wrap3.m4
new file mode 100644 (file)
index 0000000..7f12dec
--- /dev/null
@@ -0,0 +1,12 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/m4wrap3.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/m4wrap3.m4,v 1.1 2005/03/02 10:12:41 espie Exp $
+dnl Another test, this time for multiple wrappers
+dnl Check the behavior in presence of recursive m4wraps
+dnl both for POSIX m4 and for gnu-m4 mode
+m4wrap(`this is
+')dnl
+m4wrap(`a string
+')dnl
+m4wrap(`m4wrap(`recurse
+')')dnl
+normal m4 stuff
diff --git a/tools/regression/usr.bin/m4/patterns.m4 b/tools/regression/usr.bin/m4/patterns.m4
new file mode 100644 (file)
index 0000000..321b1f4
--- /dev/null
@@ -0,0 +1,12 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/patterns.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/patterns.m4,v 1.4 2003/06/08 20:11:45 espie Exp $
+patsubst(`quote s in string', `(s)', `\\\1')
+patsubst(`check whether subst
+over several lines
+works as expected', `^', `>>>')
+patsubst(`# This is a line to zap
+# and a second line
+keep this one', `^ *#.*
+')
+dnl Special case: empty regexp
+patsubst(`empty regexp',`',`a ')
diff --git a/tools/regression/usr.bin/m4/quotes.m4 b/tools/regression/usr.bin/m4/quotes.m4
new file mode 100644 (file)
index 0000000..ce0309d
--- /dev/null
@@ -0,0 +1,58 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/quotes.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/quotes.m4,v 1.2 2005/09/06 15:33:21 espie Exp $
+dnl Checking the way changequote() is supposed to work
+define(`string',`STRING')dnl
+1: normal
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
+
+2: kill quotes
+changequote()dnl
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
+
+3: normal changed quote
+changequote([,])dnl
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
+
+4: empty quotes, kill them too
+changequote(,)dnl
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
+
+5: start quote only
+changequote(`)dnl
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
+
+6: normal quotes are back
+changequote
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
+
+7: start quote+empty end quote
+changequote([,)dnl
+`quoted string'
+[quoted string]
+normal string
+`half quoted string
+going up to that string'
diff --git a/tools/regression/usr.bin/m4/redef.m4 b/tools/regression/usr.bin/m4/redef.m4
new file mode 100644 (file)
index 0000000..e846c57
--- /dev/null
@@ -0,0 +1,17 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/redef.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/redef.m4,v 1.2 2001/09/27 22:40:58 espie Exp $
+dnl check all properties of builtin are passed on, including args behavior
+define(`mybuiltin',defn(`builtin'))dnl
+builtin mybuiltin
+define(`mydefine',defn(`define'))dnl
+mydefine(`mydefn',defn(`defn'))dnl
+mydefine(`myundefine',mydefn(`undefine'))dnl
+myundefine(`defn')dnl
+myundefine(`define')dnl
+myundefine(`undefine')dnl
+mydefine(`mydef2',mydefn(`mydefine'))dnl
+mydefine(`mydef', mydefn(`define'))dnl
+myundefine(`mydefine')dnl
+mydef2(`A',`B')dnl
+mydef(`C',`D')dnl
+A C
diff --git a/tools/regression/usr.bin/m4/regress.args.out b/tools/regression/usr.bin/m4/regress.args.out
new file mode 100644 (file)
index 0000000..aaa8900
--- /dev/null
@@ -0,0 +1,3 @@
+first form: 1,2,B, second form 1,2,C
+first form: 1,2,B, second form 1,2,C
+first form: , second form 
diff --git a/tools/regression/usr.bin/m4/regress.args2.out b/tools/regression/usr.bin/m4/regress.args2.out
new file mode 100644 (file)
index 0000000..74bdbd6
--- /dev/null
@@ -0,0 +1 @@
+(        check for embedded spaces)
diff --git a/tools/regression/usr.bin/m4/regress.comments.out b/tools/regression/usr.bin/m4/regress.comments.out
new file mode 100644 (file)
index 0000000..157f107
--- /dev/null
@@ -0,0 +1,47 @@
+1: normal
+# this is a comment
+>> this is a COMMENT
+'XXX' this is a COMMENT
+'XXX' this is a COMMENT q COMMENT too
+
+2: changecom(>>)dnl
+# this is a COMMENT
+>> this is a comment
+'XXX' this is a COMMENT
+'XXX' this is a COMMENT q COMMENT too
+
+3: changecom dnl
+ # this is a COMMENT
+>> this is a COMMENT
+'XXX' this is a COMMENT
+'XXX' this is a COMMENT q COMMENT too
+
+4: changecom()dnl
+# this is a COMMENT
+>> this is a COMMENT
+'XXX' this is a COMMENT
+'XXX' this is a COMMENT q COMMENT too
+
+5: changecom(,)dnl
+# this is a COMMENT
+>> this is a COMMENT
+'XXX' this is a COMMENT
+'XXX' this is a COMMENT q COMMENT too
+
+6: changecom(`p',q)dnl
+# this is a COMMENT
+>> this is a COMMENT
+p this is a comment
+p this is a comment q COMMENT too
+
+7: changecom(`p')dnl
+# this is a COMMENT
+>> this is a COMMENT
+p this is a comment
+p this is a comment q comment too
+
+8: changecom(#)dnl
+# this is a comment
+>> this is a COMMENT
+'XXX' this is a COMMENT
+'XXX' this is a COMMENT q COMMENT too
diff --git a/tools/regression/usr.bin/m4/regress.esyscmd.out b/tools/regression/usr.bin/m4/regress.esyscmd.out
new file mode 100644 (file)
index 0000000..89a1d06
--- /dev/null
@@ -0,0 +1,578 @@
+
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+hi there a
+hi there a
+
+
diff --git a/tools/regression/usr.bin/m4/regress.eval.out b/tools/regression/usr.bin/m4/regress.eval.out
new file mode 100644 (file)
index 0000000..7298b3f
--- /dev/null
@@ -0,0 +1,3 @@
+96
+255
+1
diff --git a/tools/regression/usr.bin/m4/regress.ff_after_dnl.out b/tools/regression/usr.bin/m4/regress.ff_after_dnl.out
new file mode 100644 (file)
index 0000000..8e51f1e
--- /dev/null
@@ -0,0 +1,2 @@
+               THIS SHOULD SHOW UP (LINE 1)
+               THIS SHOULD SHOW UP (LINE 5)
diff --git a/tools/regression/usr.bin/m4/regress.gnueval.out b/tools/regression/usr.bin/m4/regress.gnueval.out
new file mode 100644 (file)
index 0000000..6d7fd49
--- /dev/null
@@ -0,0 +1,3 @@
+65536
+48
+-64
diff --git a/tools/regression/usr.bin/m4/regress.gnuformat.out b/tools/regression/usr.bin/m4/regress.gnuformat.out
new file mode 100644 (file)
index 0000000..3f484d6
--- /dev/null
@@ -0,0 +1 @@
+a         stringa%bpouet          bctoolongcdtoolong2d
diff --git a/tools/regression/usr.bin/m4/regress.gnupatterns.out b/tools/regression/usr.bin/m4/regress.gnupatterns.out
new file mode 100644 (file)
index 0000000..8e31103
--- /dev/null
@@ -0,0 +1,3 @@
+string with a minus to replace with a minus
+string with b to replbce with b b
+minusstring with a starting + to replace with a minus
diff --git a/tools/regression/usr.bin/m4/regress.gnupatterns2.out b/tools/regression/usr.bin/m4/regress.gnupatterns2.out
new file mode 100644 (file)
index 0000000..c45944a
--- /dev/null
@@ -0,0 +1 @@
+acosl asinl atanl cosl sinl tanl coshl sinhl tanhl 
diff --git a/tools/regression/usr.bin/m4/regress.gnuprefix.out b/tools/regression/usr.bin/m4/regress.gnuprefix.out
new file mode 100644 (file)
index 0000000..186421d
--- /dev/null
@@ -0,0 +1,46 @@
+`m4_ifelse'    `m4_ifelse'
+`m4_dnl'       `m4_dnl'
+`m4_expr'      `m4_expr'
+`m4_builtin'   `m4_builtin'
+`m4_popdef'    `m4_popdef'
+`m4_eval'      `m4_eval'
+`m4_len'       `m4_len'
+`m4_indir'     `m4_indir'
+`m4_sinclude'  `m4_sinclude'
+`m4_index'     `m4_index'
+`m4_traceoff'  `m4_traceoff'
+`m4___file__'  `m4___file__'
+`m4_unix'      `m4_unix'
+`m4_mkstemp'   `m4_mkstemp'
+`m4_changecom' `m4_changecom'
+`m4_defn'      `m4_defn'
+`m4_decr'      `m4_decr'
+`m4_translit'  `m4_translit'
+`m4_patsubst'  `m4_patsubst'
+`m4_dumpdef'   `m4_dumpdef'
+`m4___line__'  `m4___line__'
+`m4_esyscmd'   `m4_esyscmd'
+`m4_traceon'   `m4_traceon'
+`m4_incr'      `m4_incr'
+`m4_shift'     `m4_shift'
+`m4_syscmd'    `m4_syscmd'
+`m4_include'   `m4_include'
+`m4_pushdef'   `m4_pushdef'
+`m4_paste'     `m4_paste'
+`m4_regexp'    `m4_regexp'
+`m4_changequote'       `m4_changequote'
+`m4_undivert'  `m4_undivert'
+`m4_m4exit'    `m4_m4exit'
+`m4_substr'    `m4_substr'
+`m4_m4wrap'    `m4_m4wrap'
+`m4_ifdef'     `m4_ifdef'
+`m4_sysval'    `m4_sysval'
+`m4_divert'    `m4_divert'
+`m4_maketemp'  `m4_maketemp'
+`m4_spaste'    `m4_spaste'
+`m4_define'    `m4_define'
+`m4_undefine'  `m4_undefine'
+`m4_divnum'    `m4_divnum'
+`m4_errprint'  `m4_errprint'
+dumpdef()
+
diff --git a/tools/regression/usr.bin/m4/regress.gnusofterror.out b/tools/regression/usr.bin/m4/regress.gnusofterror.out
new file mode 100644 (file)
index 0000000..8baef1b
--- /dev/null
@@ -0,0 +1 @@
+abc
diff --git a/tools/regression/usr.bin/m4/regress.gnutranslit2.out b/tools/regression/usr.bin/m4/regress.gnutranslit2.out
new file mode 100644 (file)
index 0000000..5c88e73
--- /dev/null
@@ -0,0 +1,6 @@
+[HAVE_abc def h/]
+[HAVE_abc~def~h/]
+ABCDEFGHIJ
+ABCDEFGHIJ
+ABC-0980-ZYX 
+ABC-0980-ZYX 
diff --git a/tools/regression/usr.bin/m4/regress.includes.out b/tools/regression/usr.bin/m4/regress.includes.out
new file mode 100644 (file)
index 0000000..4a1f475
--- /dev/null
@@ -0,0 +1 @@
+hello world 
diff --git a/tools/regression/usr.bin/m4/regress.m4wrap3.out b/tools/regression/usr.bin/m4/regress.m4wrap3.out
new file mode 100644 (file)
index 0000000..51b43f4
--- /dev/null
@@ -0,0 +1,4 @@
+normal m4 stuff
+this is
+a string
+recurse
diff --git a/tools/regression/usr.bin/m4/regress.patterns.out b/tools/regression/usr.bin/m4/regress.patterns.out
new file mode 100644 (file)
index 0000000..c273b58
--- /dev/null
@@ -0,0 +1,6 @@
+quote \s in \string
+>>>check whether subst
+>>>over several lines
+>>>works as expected
+keep this one
+a ea ma pa ta ya  a ra ea ga ea xa p
diff --git a/tools/regression/usr.bin/m4/regress.quotes.out b/tools/regression/usr.bin/m4/regress.quotes.out
new file mode 100644 (file)
index 0000000..fe5b8a4
--- /dev/null
@@ -0,0 +1,49 @@
+m4: unclosed quote:
+   quotes.m4 at line 55
+1: normal
+quoted string
+[quoted STRING]
+normal STRING
+half quoted string
+going up to that string
+
+2: kill quotes
+`quoted STRING'
+[quoted STRING]
+normal STRING
+`half quoted STRING
+going up to that STRING'
+
+3: normal changed quote
+`quoted STRING'
+quoted string
+normal STRING
+`half quoted STRING
+going up to that STRING'
+
+4: empty quotes, kill them too
+`quoted STRING'
+[quoted STRING]
+normal STRING
+`half quoted STRING
+going up to that STRING'
+
+5: start quote only
+quoted string'[quoted STRING]
+normal STRING
+half quoted stringgoing up to that STRING'
+
+6: normal quotes are back
+
+quoted string
+[quoted STRING]
+normal STRING
+half quoted string
+going up to that string
+
+7: start quote+empty end quote
+`quoted STRING'
+quoted string]
+normal string
+`half quoted string
+going up to that string'
diff --git a/tools/regression/usr.bin/m4/regress.redef.out b/tools/regression/usr.bin/m4/regress.redef.out
new file mode 100644 (file)
index 0000000..ee482f0
--- /dev/null
@@ -0,0 +1,2 @@
+builtin mybuiltin
+B C
diff --git a/tools/regression/usr.bin/m4/regress.sh b/tools/regression/usr.bin/m4/regress.sh
new file mode 100644 (file)
index 0000000..070bc2c
--- /dev/null
@@ -0,0 +1,31 @@
+# $FreeBSD: src/tools/regression/usr.bin/m4/regress.sh,v 1.6 2012/11/17 01:53:59 svnexp Exp $
+
+LC_ALL=C; export LC_ALL
+
+echo 1..22
+
+REGRESSION_START($1)
+
+REGRESSION_TEST(`args', `m4 args.m4')
+REGRESSION_TEST(`args2', `m4 args2.m4')
+REGRESSION_TEST(`comments', `m4 comments.m4')
+REGRESSION_TEST(`esyscmd', `m4 esyscmd.m4')
+REGRESSION_TEST(`eval', `m4 eval.m4')
+REGRESSION_TEST(`ff_after_dnl', `uudecode -o /dev/stdout ff_after_dnl.m4.uu | m4')
+REGRESSION_TEST(`gnueval', `m4 -g gnueval.m4')
+REGRESSION_TEST(`gnuformat', `m4 -g gnuformat.m4')
+REGRESSION_TEST(`gnupatterns', `m4 -g gnupatterns.m4')
+REGRESSION_TEST(`gnupatterns2', `m4 -g gnupatterns2.m4')
+REGRESSION_TEST(`gnuprefix', `m4 -P gnuprefix.m4 2>&1')
+REGRESSION_TEST(`gnusofterror', `m4 -g gnusofterror.m4')
+REGRESSION_TEST(`gnutranslit2', `m4 -g translit2.m4')
+REGRESSION_TEST(`includes', `m4 -I. includes.m4')
+REGRESSION_TEST(`m4wrap3', `m4 m4wrap3.m4')
+REGRESSION_TEST(`patterns', `m4 patterns.m4')
+REGRESSION_TEST(`quotes', `m4 quotes.m4 2>&1')
+REGRESSION_TEST(`strangequotes', `uudecode -o /dev/stdout strangequotes.m4.uu | m4')
+REGRESSION_TEST(`redef', `m4 redef.m4')
+REGRESSION_TEST(`translit', `m4 translit.m4')
+REGRESSION_TEST(`translit2', `m4 translit2.m4')
+
+REGRESSION_END()
diff --git a/tools/regression/usr.bin/m4/regress.strangequotes.out b/tools/regression/usr.bin/m4/regress.strangequotes.out
new file mode 100644 (file)
index 0000000..f19297b
--- /dev/null
@@ -0,0 +1 @@
+4 to 5
diff --git a/tools/regression/usr.bin/m4/regress.t b/tools/regression/usr.bin/m4/regress.t
new file mode 100644 (file)
index 0000000..c703852
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $FreeBSD: src/tools/regression/usr.bin/m4/regress.t,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+
+cd `dirname $0`
+
+sh regress.sh
diff --git a/tools/regression/usr.bin/m4/regress.translit.out b/tools/regression/usr.bin/m4/regress.translit.out
new file mode 100644 (file)
index 0000000..54abdd3
--- /dev/null
@@ -0,0 +1 @@
+onkp
diff --git a/tools/regression/usr.bin/m4/regress.translit2.out b/tools/regression/usr.bin/m4/regress.translit2.out
new file mode 100644 (file)
index 0000000..5c56177
--- /dev/null
@@ -0,0 +1,6 @@
+[HAVE_abc def h/]
+[HAVE_abc~def~h/]
+ABCDEFGHIJ
+A12345678J
+ABC-0980-ZYX 
+Abc-0980-Zyx 
diff --git a/tools/regression/usr.bin/m4/strangequotes.m4.uu b/tools/regression/usr.bin/m4/strangequotes.m4.uu
new file mode 100644 (file)
index 0000000..8cd07d1
--- /dev/null
@@ -0,0 +1,8 @@
+$FreeBSD: src/tools/regression/usr.bin/m4/strangequotes.m4.uu,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+$OpenBSD: src/regress/usr.bin/m4/strangequotes.m4.uu,v 1.2 2001/09/19 19:15:08 espie Exp $
+
+begin 644 strangequotes.m4
+M8VAA;F=E<75O=&4HJRR[*61N;`ID969I;F4HJT&[+""K)#$@=&\@)#*[*61N
+*;`I!*#0L(#4I"F4H
+`
+end
diff --git a/tools/regression/usr.bin/m4/translit.m4 b/tools/regression/usr.bin/m4/translit.m4
new file mode 100644 (file)
index 0000000..e3af79a
--- /dev/null
@@ -0,0 +1,4 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/translit.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+dnl $OpenBSD: src/regress/usr.bin/m4/translit.m4,v 1.1 2010/03/23 20:11:52 espie Exp $
+dnl first one should match, not second one
+translit(`onk*', `**', `p_')
diff --git a/tools/regression/usr.bin/m4/translit2.m4 b/tools/regression/usr.bin/m4/translit2.m4
new file mode 100644 (file)
index 0000000..fcbe428
--- /dev/null
@@ -0,0 +1,9 @@
+dnl $FreeBSD: src/tools/regression/usr.bin/m4/translit2.m4,v 1.2 2012/11/17 01:53:59 svnexp Exp $
+translit(`[HAVE_abc/def.h
+]', `
+/.', `/  ')
+translit(`[HAVE_abc/def.h=]', `=/.', `/~~')
+translit(`0123456789', `0123456789', `ABCDEFGHIJ')
+translit(`0123456789', `[0-9]', `[A-J]')
+translit(`abc-0980-zyx', `abcdefghijklmnopqrstuvwxyz', `ABCDEFGHIJKLMNOPQRSTUVWXYZ') 
+translit(`abc-0980-zyx', `[a-z]', `[A-Z]')