awk: add two tests we currently fail
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 11 Mar 2010 07:27:53 +0000 (08:27 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 11 Mar 2010 07:27:53 +0000 (08:27 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
testsuite/awk.tests

index 78f9f0b..3a7c8f4 100755 (executable)
@@ -69,10 +69,13 @@ testing "awk handles whitespace before array subscript" \
 
 prg='
 BEGIN {
-  v["q"]=1
-  v["w"]=1
+  u["a"]=1
+  u["b"]=1
+  u["c"]=1
+  v["d"]=1
   v["e"]=1
-  for (l in v) {
+  v["f"]=1
+  for (l in u) {
     print "outer1", l;
     for (l in v) {
       print " inner", l;
@@ -86,22 +89,100 @@ BEGIN {
 testing "awk nested loops with the same variable" \
        "awk '$prg'" \
        "\
-outer1 e
+outer1 a
+ inner d
  inner e
- inner q
- inner w
-outer2 w
-outer1 q
+ inner f
+outer2 f
+outer1 b
+ inner d
  inner e
- inner q
- inner w
-outer2 w
-outer1 w
+ inner f
+outer2 f
+outer1 c
+ inner d
  inner e
- inner q
- inner w
-outer2 w
-end w
+ inner f
+outer2 f
+end f
+" \
+       "" ""
+
+prg='
+BEGIN {
+  u["a"]=1
+  u["b"]=1
+  u["c"]=1
+  v["d"]=1
+  v["e"]=1
+  v["f"]=1
+  for (l in u) {
+    print "outer1", l;
+    for (l in v) {
+      print " inner", l;
+      break;
+    }
+    print "outer2", l;
+  }
+  print "end", l;
+  l="a"
+  exit;
+}'
+# It's not just buggy, it enters infinite loop. Thus disabled
+false && test x"$SKIP_KNOWN_BUGS" = x"" && testing "awk nested loops with the same variable and break" \
+       "awk '$prg'" \
+       "\
+outer1 a
+ inner d
+outer2 d
+outer1 b
+ inner d
+outer2 d
+outer1 c
+ inner d
+outer2 d
+end d
+" \
+       "" ""
+
+prg='
+function f() {
+  for (l in v) {
+    print " inner", l;
+    return;
+  }
+}
+
+BEGIN {
+  u["a"]=1
+  u["b"]=1
+  u["c"]=1
+  v["d"]=1
+  v["e"]=1
+  v["f"]=1
+  for (l in u) {
+    print "outer1", l;
+    f();
+    print "outer2", l;
+  }
+  print "end", l;
+  l="a"
+  exit;
+}'
+# It's not just buggy, it enters infinite loop. Thus disabled
+false && test x"$SKIP_KNOWN_BUGS" = x"" && testing "awk nested loops with the same variable and return" \
+       "awk '$prg'" \
+       "\
+outer1 a
+ inner d
+outer2 d
+outer1 b
+ inner d
+outer2 d
+outer1 c
+ inner d
+outer2 d
+end d
 " \
        "" ""