From 61f7892edf10f81b63590653b415a286cb805219 Mon Sep 17 00:00:00 2001
From: klauwier <r.tolkacheva@g.nsu.ru>
Date: Sun, 11 Jun 2023 19:58:05 +0700
Subject: [PATCH] test/fuzz: add breaks to switch-case

Cases in two switches had no breaks, so they were falling
through. Breaks were added to solve the problem. Code
generated by the LuaJIT fuzzer became more various.

NO_CHANGELOG=internal
NO_DOC=fuzzer fix

(cherry picked from commit 4430cac9d3b9b612e8b34bf41302d737e0e057af)
---
 test/fuzz/luaL_loadbuffer/serializer.cc | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/test/fuzz/luaL_loadbuffer/serializer.cc b/test/fuzz/luaL_loadbuffer/serializer.cc
index 8a54077b9a..70dc0617e4 100644
--- a/test/fuzz/luaL_loadbuffer/serializer.cc
+++ b/test/fuzz/luaL_loadbuffer/serializer.cc
@@ -82,12 +82,15 @@ PROTO_TOSTRING(LastStatement, laststat)
 	case LastStatType::kExplist:
 		laststat_str = ReturnOptionalExpressionListToString(
 			laststat.explist());
+		break;
 	case LastStatType::kBreak:
 		laststat_str = "break";
+		break;
 	default:
 		/* Chosen as default in order to decrease number of 'break's. */
 		laststat_str = ReturnOptionalExpressionListToString(
 			laststat.explist());
+		break;
 	}
 
 	if (laststat.has_semicolon())
@@ -116,10 +119,13 @@ PROTO_TOSTRING(Statement, stat)
 	switch (stat.stat_oneof_case()) {
 	case StatType::kList:
 		stat_str = AssignmentListToString(stat.list());
+		break;
 	case StatType::kCall:
 		stat_str = FunctionCallToString(stat.call());
+		break;
 	case StatType::kBlock:
 		stat_str = DoBlockToString(stat.block());
+		break;
 	/**
 	 * TODO:
 	 * Commented due to possible generation of infinite loops.
@@ -134,22 +140,29 @@ PROTO_TOSTRING(Statement, stat)
 	 */
 	case StatType::kIfstat:
 		stat_str = IfStatementToString(stat.ifstat());
+		break;
 	case StatType::kForcyclename:
 		stat_str = ForCycleNameToString(stat.forcyclename());
+		break;
 	case StatType::kForcyclelist:
 		stat_str = ForCycleListToString(stat.forcyclelist());
+		break;
 	case StatType::kFunc:
 		stat_str = FunctionToString(stat.func());
+		break;
 	case StatType::kLocalfunc:
 		stat_str = LocalFuncToString(stat.localfunc());
+		break;
 	case StatType::kLocalnames:
 		stat_str = LocalNamesToString(stat.localnames());
+		break;
 	default:
 		/**
 		 * Chosen arbitrarily more for simplicity.
 		 * TODO: Choose "more interesting" defaults.
 		 */
 		stat_str = AssignmentListToString(stat.list());
+		break;
 	}
 
 	if (stat.has_semicolon())
-- 
GitLab