bc: fixes for multi-line if/while/for
[oweals/busybox.git] / testsuite / bc.tests
index 4f0d50f73d0b1befdc9eb8cf76075cbc638a8918..95cc28dad147d6277efcbf5104d9ec6b423d8c01 100755 (executable)
@@ -16,6 +16,56 @@ testing "bc comment 2: /*/ is not a closed comment" \
        "4\n" \
        "" "1 /*/ + 2 */ + 3"
 
+testing "bc backslash 1" \
+       "bc" \
+       "3\n" \
+       "" "1 \\\\\n + 2"
+
+testing "bc string 1" \
+       "bc" \
+       "STR\n" \
+       "" "\"STR\n\""
+
+testing "bc if 0 else" \
+       "bc" \
+       "2\n9\n" \
+       "" "if (0) 1 else 2; 9"
+
+testing "bc if 1 else" \
+       "bc" \
+       "1\n9\n" \
+       "" "if (1) 1 else 2; 9"
+
+testing "bc if 1 if 1 else else" \
+       "bc" \
+       "1\n9\n" \
+       "" "if (1) if (1) 1 else 2 else 3; 9"
+
+testing "bc if 0 else if 1" \
+       "bc" \
+       "2\n9\n" \
+       "" "if (0) 1 else if (1) 2; 9"
+
+testing "bc define auto" \
+       "bc" \
+       "8\n9\n" \
+       "" "define w() { auto z; return 8; }; w(); 9"
+
+testing "bc define with body on next line" \
+       "bc" \
+       "8\n9\n" \
+       "" "define w()\n{ auto z; return 8; }\nw()\n9"
+
+testing "bc if(cond)<NL>" \
+       "bc" \
+       "9\n" \
+       "" "if(0)\n3\n9"
+
+testing "bc while(cond)<NL>" \
+       "bc" \
+       "8\n7\n6\n5\n4\n3\n2\n1\n9\n" \
+       "" "i=9;while(--i)\ni\n9"
+
 tar xJf bc_large.tar.xz
 
 for f in bc*.bc; do