summaryrefslogtreecommitdiffstats
path: root/mysql-test/main/mysqltest-break.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/main/mysqltest-break.test')
-rw-r--r--mysql-test/main/mysqltest-break.test87
1 files changed, 87 insertions, 0 deletions
diff --git a/mysql-test/main/mysqltest-break.test b/mysql-test/main/mysqltest-break.test
new file mode 100644
index 00000000..5ef8b70f
--- /dev/null
+++ b/mysql-test/main/mysqltest-break.test
@@ -0,0 +1,87 @@
+--source include/not_embedded.inc
+#
+# MDEV-12130 improve mysqltest language
+#
+# test "break" statement
+#
+
+# Break in a single loop
+
+let $cnt= 4;
+while($cnt > 1)
+{
+ dec $cnt;
+ break;
+ --echo $cnt
+ --echo Break did not stop a single loop
+}
+
+# Break stops inner loop
+
+let $outer= 4;
+while($outer > 1)
+{
+ let $inner= 4;
+ while($inner > 1)
+ {
+ if($outer == 2)
+ {
+ --echo OK
+ }
+ if($inner == 2)
+ {
+ break;
+ }
+ dec $inner;
+ }
+ dec $outer;
+ --echo $outer
+}
+
+# Break stops outer loop
+let $inner= 4;
+let $outer= 4;
+while($outer > 1)
+{
+ break;
+ while($inner > 1)
+ {
+ dec $inner;
+ --echo Outer loop`s break did not stop inner loop
+ }
+ dec $outer;
+ --echo $outer
+}
+
+# Break stops loop in if
+let $cnt= 4;
+if($cnt > 1)
+{
+ while($cnt)
+ {
+ break;
+ }
+ dec $cnt;
+}
+
+--echo cnt=$cnt
+
+# Break in inner if
+
+let $cnt= 4;
+while($cnt > 1)
+{
+ if($cnt == 2)
+ {
+ break;
+ --echo "if" is working after break
+ }
+ dec $cnt;
+}
+
+--echo cnt=$cnt
+
+# Stray break
+
+--error 1
+--exec echo "break;" | $MYSQL_TEST 2>&1