aboutsummaryrefslogtreecommitdiffstats
path: root/test/beginfile2.in
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2011-08-10 22:36:00 +0300
committerArnold D. Robbins <arnold@skeeve.com>2011-08-10 22:36:00 +0300
commitb8c993f5a867f38fa9edd343d7d90b4b36800be2 (patch)
tree75d48551001252a7b78469634d5f5dc11b2a6754 /test/beginfile2.in
parent0d1a4f152fa45eda08b5877e4989c3250beb280e (diff)
downloadegawk-b8c993f5a867f38fa9edd343d7d90b4b36800be2.tar.gz
egawk-b8c993f5a867f38fa9edd343d7d90b4b36800be2.tar.bz2
egawk-b8c993f5a867f38fa9edd343d7d90b4b36800be2.zip
BEGINFILE/ENDFILE code redone.
Diffstat (limited to 'test/beginfile2.in')
-rw-r--r--test/beginfile2.in242
1 files changed, 242 insertions, 0 deletions
diff --git a/test/beginfile2.in b/test/beginfile2.in
new file mode 100644
index 00000000..5b7cc833
--- /dev/null
+++ b/test/beginfile2.in
@@ -0,0 +1,242 @@
+#TEST1#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+}
+BEGIN {
+ count = 0
+ print "In BEGIN"
+ while (getline > 0)
+ count++;
+ print count == NR
+}
+
+#TEST2#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+ nextfile
+}
+ENDFILE{
+ print "In ENDFILE:", FILENAME
+}
+
+
+#TEST3#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+}
+END {
+ print "executing END rule"
+ ARGV[ARGC++] = "beginfile.sh";
+ count = 0
+ while (getline> 0)
+ count++;
+ print count == FNR
+ print "Done executing END rule"
+}
+ENDFILE {
+ print "In ENDFILE:", FILENAME
+}
+
+#TEST4#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+ nextfile
+}
+END {
+ print "executing END rule"
+ ARGV[ARGC++] = "beginfile.sh";
+ getline
+ print $0
+ print "Done executing END rule"
+}
+ENDFILE {
+ print "ENDFILE:", FILENAME
+}
+
+
+#TEST5#
+BEGIN {
+ getline
+ count++
+ print NR, count
+}
+{
+ count++
+}
+END {
+ print NR == count
+}
+
+#TEST6#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+ count = 0
+}
+BEGIN {
+ getline
+ count++
+ print FNR, count
+}
+{
+ count++
+}
+ENDFILE {
+ print "In ENDFILE:", FILENAME
+ print count == FNR
+}
+
+#TEST7#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+ count = 0
+ if (ARGIND == 1)
+ nextfile
+}
+BEGIN {
+ getline
+ print "In BEGIN:", FILENAME
+}
+{ count++ }
+ENDFILE {
+ print "In ENDFILE:", FILENAME
+ print (FNR - count)
+}
+
+#TEST8#
+function f(a, b) {
+ getline
+ print FILENAME
+ print a, b
+}
+function g(x, y) {
+ return x
+}
+BEGINFILE { nextfile }
+BEGIN { g(3, f(1, 2)) }
+
+#TEST9#
+function f(a, b) {
+ b = b ":" a;
+ if (skip || ERRNO != "") {
+ print "Skipping:", b
+ nextfile
+ }
+ return b
+}
+BEGINFILE { print "In BEGINFILE:", f(FILENAME, ++i)}
+FNR == 1 { print "In Rule:", FILENAME }
+ENDFILE { print "In ENDFILE:", FILENAME }
+
+#TEST10#
+function f() {
+ nextfile
+}
+function g( cnt) {
+ cnt = 0
+ while (getline > 0)
+ cnt++;
+ return cnt
+}
+BEGINFILE { if (ARGIND == 1) f(); }
+BEGIN {
+ print g(), NR
+}
+
+#TEST11#
+function f(a, b) {
+ print a
+ nextfile
+ print b
+}
+function g(x, y) {
+ print x
+ getline
+ return y
+}
+BEGINFILE { ARGIND == 1 ? g(3, f(FILENAME, 2)) : f(3, g(FILENAME, 2)) }
+
+#TEST12#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+}
+function g() {
+ nextfile
+}
+function f( cnt) {
+ print cnt + 0
+ while (getline > 0) {
+ if (++cnt == 2) {
+ g()
+ print "shouldn't see this line"
+ }
+ }
+}
+{
+ print FNR
+ f()
+}
+ENDFILE {
+ print "In ENDFILE:", FILENAME
+}
+
+#TEST13#
+# exit in BEGINFILE
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+ exit(0)
+}
+ENDFILE {
+ print "In ENDFILE:", FILENAME
+}
+END {
+ print "In END:", FILENAME
+ while (getline > 0)
+ ;
+ print "shouldn't see this line"
+}
+
+#TEST14#
+# exit in ENDFILE
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+}
+ENDFILE {
+ print "In ENDFILE:", FILENAME
+ exit(0)
+}
+END {
+ print "In END:", FILENAME
+ while (getline > 0)
+ ;
+ print "shouldn't see this line"
+}
+
+#TEST15#
+BEGINFILE {
+ print "BEGINFILE:", FILENAME
+}
+{ nextfile }
+END {
+ print NR
+}
+
+#TEST16#
+BEGINFILE {
+ print "In BEGINFILE:", FILENAME
+}
+BEGIN {
+ getline
+ print "In BEGIN:", FILENAME
+}
+{
+ if (NR == FNR) {
+ print "In Rule:", FILENAME
+ nextfile
+ }
+ exit(0)
+}
+
+ENDFILE {
+ print "In ENDFILE: ", FILENAME
+}
+