diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 3 | ||||
-rw-r--r-- | test/Makefile.in | 3 | ||||
-rw-r--r-- | test/Maketests | 30 | ||||
-rw-r--r-- | test/let1.awk | 39 | ||||
-rw-r--r-- | test/let1.ok | 5 | ||||
-rw-r--r-- | test/let2.awk | 3 | ||||
-rw-r--r-- | test/let2.ok | 2 | ||||
-rw-r--r-- | test/let3.awk | 3 | ||||
-rw-r--r-- | test/let3.ok | 2 | ||||
-rw-r--r-- | test/let4.awk | 3 | ||||
-rw-r--r-- | test/let4.ok | 2 | ||||
-rw-r--r-- | test/let5.awk | 3 | ||||
-rw-r--r-- | test/let5.ok | 2 | ||||
-rw-r--r-- | test/let6.awk | 3 | ||||
-rw-r--r-- | test/let6.ok | 2 |
15 files changed, 103 insertions, 2 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index e6652965..6fc0b281 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1422,7 +1422,8 @@ BASIC_TESTS = \ getline4 getline5 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 gsubtst8 \ hex hex2 hsprint inpref inputred intest intprec iobug1 leaddig \ - leadnl litoct longsub longwrds manglprm math membug1 memleak \ + leadnl litoct let1 let2 let3 let4 let5 let6 \ + longsub longwrds manglprm math membug1 memleak \ messages minusstr mmap8k nasty nasty2 negexp negrange nested \ nfldstr nfloop nfneg nfset nlfldsep nlinstr nlstrina noeffect \ nofile nofmtch noloop1 noloop2 nonl noparms nors nulinsrc \ diff --git a/test/Makefile.in b/test/Makefile.in index ed60771d..87921f1b 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -1688,7 +1688,8 @@ BASIC_TESTS = \ getline4 getline5 getlnbuf getnr2tb getnr2tm gsubasgn gsubtest \ gsubtst2 gsubtst3 gsubtst4 gsubtst5 gsubtst6 gsubtst7 gsubtst8 \ hex hex2 hsprint inpref inputred intest intprec iobug1 leaddig \ - leadnl litoct longsub longwrds manglprm math membug1 memleak \ + leadnl litoct let1 let2 let3 let4 let5 let6 \ + longsub longwrds manglprm math membug1 memleak \ messages minusstr mmap8k nasty nasty2 negexp negrange nested \ nfldstr nfloop nfneg nfset nlfldsep nlinstr nlstrina noeffect \ nofile nofmtch noloop1 noloop2 nonl noparms nors nulinsrc \ diff --git a/test/Maketests b/test/Maketests index d21d4c6c..8d698604 100644 --- a/test/Maketests +++ b/test/Maketests @@ -548,6 +548,36 @@ litoct: @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk --traditional < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ +let1: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +let2: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +let3: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +let4: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +let5: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + +let6: + @echo $@ + @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) "$(srcdir)"/$@.ok _$@ && rm -f _$@ + longsub: @echo $@ @-AWKPATH="$(srcdir)" $(AWK) -f $@.awk < "$(srcdir)"/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/let1.awk b/test/let1.awk new file mode 100644 index 00000000..c7e98468 --- /dev/null +++ b/test/let1.awk @@ -0,0 +1,39 @@ +function f0() +{ + @let (l0) + return l0 +} + +BEGIN { + l0 = "abc" + r0 = f0(42); + print r0 == 0 && r0 == "" +} + +function f1(l1) +{ + @let (l1 = 42) + ; + return l1; +} + +BEGIN { + print "f1", f1(3) +} + +function f2(l2) +{ + @let (x = l2 + 1, x = x + 1, x = x + 1) + @let (x = x + 1, x = x + 1) + return l2 "-" x +} + +BEGIN { + print "f2", f2(3) +} + +BEGIN { + @let (l3 = 3, x = l3 + 1, x = x + 1, x = x + 1) + @let (x = x + 1, x = x + 1) + print "b3", l3 "-" x +} diff --git a/test/let1.ok b/test/let1.ok new file mode 100644 index 00000000..153d9d96 --- /dev/null +++ b/test/let1.ok @@ -0,0 +1,5 @@ +gawk: let1.awk:9: warning: function `f0' called with more arguments than declared +1 +f1 3 +f2 3-8 +b3 3-8 diff --git a/test/let2.awk b/test/let2.awk new file mode 100644 index 00000000..da041c57 --- /dev/null +++ b/test/let2.awk @@ -0,0 +1,3 @@ +BEGIN { + @let (NR); +} diff --git a/test/let2.ok b/test/let2.ok new file mode 100644 index 00000000..a97a22a4 --- /dev/null +++ b/test/let2.ok @@ -0,0 +1,2 @@ +gawk: let2.awk:2: error: cannot use special variable `NR' as a local variable +EXIT CODE: 1 diff --git a/test/let3.awk b/test/let3.awk new file mode 100644 index 00000000..5ecd0df8 --- /dev/null +++ b/test/let3.awk @@ -0,0 +1,3 @@ +BEGIN { + @let (awk::foo = 3); +} diff --git a/test/let3.ok b/test/let3.ok new file mode 100644 index 00000000..bbad587c --- /dev/null +++ b/test/let3.ok @@ -0,0 +1,2 @@ +gawk: let3.awk:2: error: local variable `awk::foo' cannot contain a namespace +EXIT CODE: 1 diff --git a/test/let4.awk b/test/let4.awk new file mode 100644 index 00000000..46c400a3 --- /dev/null +++ b/test/let4.awk @@ -0,0 +1,3 @@ +function fun() { + @let (fun = 42); +} diff --git a/test/let4.ok b/test/let4.ok new file mode 100644 index 00000000..2a60aae6 --- /dev/null +++ b/test/let4.ok @@ -0,0 +1,2 @@ +gawk: let4.awk:2: error: function `fun': cannot use function name as local variable name +EXIT CODE: 1 diff --git a/test/let5.awk b/test/let5.awk new file mode 100644 index 00000000..a90f2e39 --- /dev/null +++ b/test/let5.awk @@ -0,0 +1,3 @@ +function fun() { + @let (awk::foo = 42); +} diff --git a/test/let5.ok b/test/let5.ok new file mode 100644 index 00000000..e86742e8 --- /dev/null +++ b/test/let5.ok @@ -0,0 +1,2 @@ +gawk: let5.awk:2: error: local variable `awk::foo' cannot contain a namespace +EXIT CODE: 1 diff --git a/test/let6.awk b/test/let6.awk new file mode 100644 index 00000000..990c9647 --- /dev/null +++ b/test/let6.awk @@ -0,0 +1,3 @@ +function fun() { + @let (NR = 42); +} diff --git a/test/let6.ok b/test/let6.ok new file mode 100644 index 00000000..c7fade5e --- /dev/null +++ b/test/let6.ok @@ -0,0 +1,2 @@ +gawk: let6.awk:2: error: cannot use special variable `NR' as a local variable +EXIT CODE: 1 |