aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/ChangeLog7
-rw-r--r--test/Makefile.am6
-rw-r--r--test/Makefile.in12
-rw-r--r--test/Maketests5
-rw-r--r--test/funsmnam.ok2
-rw-r--r--test/lintwarn.awk38
-rw-r--r--test/lintwarn.ok39
-rw-r--r--test/noeffect.ok2
-rw-r--r--test/paramdup.ok4
-rw-r--r--test/paramres.ok2
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