diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/ChangeLog | 7 | ||||
-rw-r--r-- | test/Makefile.am | 6 | ||||
-rw-r--r-- | test/Makefile.in | 12 | ||||
-rw-r--r-- | test/Maketests | 5 | ||||
-rw-r--r-- | test/funsmnam.ok | 2 | ||||
-rw-r--r-- | test/lintwarn.awk | 38 | ||||
-rw-r--r-- | test/lintwarn.ok | 39 | ||||
-rw-r--r-- | test/noeffect.ok | 2 | ||||
-rw-r--r-- | test/paramdup.ok | 4 | ||||
-rw-r--r-- | test/paramres.ok | 2 |
10 files changed, 110 insertions, 7 deletions
diff --git a/test/ChangeLog b/test/ChangeLog index 6ef33984..542a9d73 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,10 @@ +Wed Feb 16 21:09:50 2011 Arnold D. Robbins <arnold@skeeve.com> + + * Makefile.am (lintwarn): New test. + * lintwarn.awk, lintwarn.ok: New files from John Haque. + * funsmnam.ok, noeffect.ok, paramdup.ok, paramres.ok: Adjust + after fixes to lint warnings. + Mon Feb 14 21:31:10 2011 Arnold D. Robbins <arnold@skeeve.com> * Makefile.am (profile2): Add -v sortcmd=sort to pgawk invocation. diff --git a/test/Makefile.am b/test/Makefile.am index 92372197..b8b5016c 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -350,6 +350,8 @@ EXTRA_DIST = \ lintold.awk \ lintold.in \ lintold.ok \ + lintwarn.awk \ + lintwarn.ok \ litoct.awk \ litoct.ok \ localenl.ok \ @@ -764,6 +766,7 @@ GAWK_EXT_TESTS = \ fieldwdth fpat1 funlen fsfwfs fwtest fwtest2 gensub gensub2 getlndir \ gnuops2 gnuops3 gnureops \ icasefs icasers igncdym igncfs ignrcas2 ignrcase indirectcall lint \ + lintwarn \ lintold manyfiles match1 match2 match3 mbstr1 nondec nondec2 patsplit \ posix profile1 profile2 printfbad1 printfbad2 \ procinfs rebuf regx8bit reint reint2 rsstart1 rsstart2 rsstart3 \ @@ -779,7 +782,8 @@ LOCALE_CHARSET_TESTS = asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \ mbprintf1 mbprintf2 mbprintf3 rebt8b2 sort1 sprintfc # List of the tests which should be run with --lint option: -NEED_LINT = defref fmtspcl noeffect nofmtch shadow uninit2 uninit3 uninit4 uninit5 uninitialized +NEED_LINT = defref fmtspcl lintwarn noeffect nofmtch shadow \ + uninit2 uninit3 uninit4 uninit5 uninitialized # List of the tests which should be run with --lint-old option: NEED_LINT_OLD = lintold diff --git a/test/Makefile.in b/test/Makefile.in index 37c50e0e..c478318f 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -535,6 +535,8 @@ EXTRA_DIST = \ lintold.awk \ lintold.in \ lintold.ok \ + lintwarn.awk \ + lintwarn.ok \ litoct.awk \ litoct.ok \ localenl.ok \ @@ -948,6 +950,7 @@ GAWK_EXT_TESTS = \ fieldwdth fpat1 funlen fsfwfs fwtest fwtest2 gensub gensub2 getlndir \ gnuops2 gnuops3 gnureops \ icasefs icasers igncdym igncfs ignrcas2 ignrcase indirectcall lint \ + lintwarn \ lintold manyfiles match1 match2 match3 mbstr1 nondec nondec2 patsplit \ posix profile1 profile2 printfbad1 printfbad2 \ procinfs rebuf regx8bit reint reint2 rsstart1 rsstart2 rsstart3 \ @@ -961,7 +964,9 @@ LOCALE_CHARSET_TESTS = asort asorti fmttest fnarydel fnparydl lc_num1 mbfw1 \ # List of the tests which should be run with --lint option: -NEED_LINT = defref fmtspcl noeffect nofmtch shadow uninit2 uninit3 uninit4 uninit5 uninitialized +NEED_LINT = defref fmtspcl lintwarn noeffect nofmtch shadow \ + uninit2 uninit3 uninit4 uninit5 uninitialized + # List of the tests which should be run with --lint-old option: NEED_LINT_OLD = lintold @@ -2649,6 +2654,11 @@ lint: @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +lintwarn: + @echo lintwarn + @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + lintold: @echo lintold @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint-old < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index 4872a504..ea4b76d4 100644 --- a/test/Maketests +++ b/test/Maketests @@ -970,6 +970,11 @@ lint: @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +lintwarn: + @echo lintwarn + @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + lintold: @echo lintold @AWKPATH=$(srcdir) $(AWK) -f $@.awk --lint-old < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/funsmnam.ok b/test/funsmnam.ok index f6465258..e4f2174a 100644 --- a/test/funsmnam.ok +++ b/test/funsmnam.ok @@ -1,2 +1,2 @@ -gawk: funsmnam.awk:6: error: function `foo': can't use function name as parameter name +gawk: funsmnam.awk:1: error: function `foo': can't use function name as parameter name EXIT CODE: 1 diff --git a/test/lintwarn.awk b/test/lintwarn.awk new file mode 100644 index 00000000..cea76bbc --- /dev/null +++ b/test/lintwarn.awk @@ -0,0 +1,38 @@ +# gawk --lint -f lintwarn.awk +BEGINFILE { + getline var + getline +} + +BEGIN { + PROCINFO["sorted_in"] + print + nextfile + delete a + delete(a) + y = /a/ + y == /a/ + /b/ ~ x + length + switch(s) { + case 1: + default: + case 1: + default: + } + break + continue + next + a[] + f(/pqr/) + // + /* */ +} +END { + getline +} +function zz(aa, aa) +{ + return aa +} +@include "" diff --git a/test/lintwarn.ok b/test/lintwarn.ok new file mode 100644 index 00000000..169b0020 --- /dev/null +++ b/test/lintwarn.ok @@ -0,0 +1,39 @@ +gawk: lintwarn.awk:2: warning: `BEGINFILE' is a gawk extension +gawk: lintwarn.awk:3: error: `getline var' invalid inside `BEGINFILE' rule +gawk: lintwarn.awk:4: error: `getline' invalid inside `BEGINFILE' rule +gawk: lintwarn.awk:8: warning: statement may have no effect +gawk: lintwarn.awk:9: warning: plain `print' in BEGIN or END rule should probably be `print ""' +gawk: lintwarn.awk:10: warning: `nextfile' is a gawk extension +gawk: lintwarn.awk:10: error: `nextfile' used in BEGIN action +gawk: lintwarn.awk:11: warning: `delete array' is a gawk extension +gawk: lintwarn.awk:12: warning: `delete(array)' is a non-portable tawk extension +gawk: lintwarn.awk:13: warning: regular expression on right of assignment +gawk: lintwarn.awk:14: warning: regular expression on right of comparison +gawk: lintwarn.awk:14: warning: statement may have no effect +gawk: lintwarn.awk:15: warning: regular expression on left of `~' or `!~' operator +gawk: lintwarn.awk:15: warning: statement may have no effect +gawk: lintwarn.awk:16: warning: call of `length' without parentheses is not portable +gawk: lintwarn.awk:17: warning: `switch' is a gawk extension +gawk: lintwarn.awk:18: warning: `case' is a gawk extension +gawk: lintwarn.awk:19: warning: `default' is a gawk extension +gawk: lintwarn.awk:19: error: duplicate `default' detected in switch body +gawk: lintwarn.awk:18: error: duplicate case values in switch body: 1 +gawk: lintwarn.awk:23: error: `break' is not allowed outside a loop or switch +gawk: lintwarn.awk:24: error: `continue' is not allowed outside a loop +gawk: lintwarn.awk:25: error: `next' used in BEGIN action +gawk: lintwarn.awk:26: a[] +gawk: lintwarn.awk:26: ^ syntax error +gawk: lintwarn.awk:26: error: invalid subscript expression +gawk: lintwarn.awk:26: warning: statement may have no effect +gawk: lintwarn.awk:27: warning: regexp constant for parameter #1 yields boolean value +gawk: lintwarn.awk:28: warning: regexp constant `//' looks like a C++ comment, but is not +gawk: lintwarn.awk:28: warning: statement may have no effect +gawk: lintwarn.awk:29: warning: regexp constant `/* */' looks like a C comment, but is not +gawk: lintwarn.awk:29: warning: statement may have no effect +gawk: lintwarn.awk:32: warning: non-redirected `getline' undefined inside END action +gawk: lintwarn.awk:34: error: function `zz': parameter #2, `aa', duplicates parameter #1 +gawk: lintwarn.awk:38: warning: `include' is a gawk extension +gawk: lintwarn.awk:38: warning: empty filename after @include +gawk: warning: function `f' called but never defined +gawk: warning: function `zz' defined but never called directly +EXIT CODE: 1 diff --git a/test/noeffect.ok b/test/noeffect.ok index d2da47a2..e9bed995 100644 --- a/test/noeffect.ok +++ b/test/noeffect.ok @@ -1,4 +1,4 @@ +gawk: noeffect.awk:2: warning: statement may have no effect gawk: noeffect.awk:3: warning: statement may have no effect -gawk: noeffect.awk:4: warning: statement may have no effect gawk: noeffect.awk:2: warning: reference to uninitialized variable `s' gawk: noeffect.awk:3: warning: reference to uninitialized variable `s' diff --git a/test/paramdup.ok b/test/paramdup.ok index 9a9df807..cd71822a 100644 --- a/test/paramdup.ok +++ b/test/paramdup.ok @@ -1,3 +1,3 @@ -gawk: paramdup.awk:4: error: function `foo': parameter #4, `b', duplicates parameter #2 -gawk: paramdup.awk:4: error: function `foo': parameter #5, `a', duplicates parameter #1 +gawk: paramdup.awk:3: error: function `foo': parameter #4, `b', duplicates parameter #2 +gawk: paramdup.awk:3: error: function `foo': parameter #5, `a', duplicates parameter #1 EXIT CODE: 1 diff --git a/test/paramres.ok b/test/paramres.ok index fdd7483c..0687f92d 100644 --- a/test/paramres.ok +++ b/test/paramres.ok @@ -1,2 +1,2 @@ -gawk: paramres.awk:6: error: function `foo': can't use special variable `FS' as a function parameter +gawk: paramres.awk:3: error: function `foo': can't use special variable `FS' as a function parameter EXIT CODE: 1 |