From 85f97b688198b697ad8c2d88645f43f853e57f4e Mon Sep 17 00:00:00 2001 From: Ekaitz Zarraga Date: Mon, 11 Sep 2023 23:43:26 +0200 Subject: [PATCH] lib/tests: 44-switch-body-fallthrough-not-default.c: Add test. This test detects if the fallthrough in a switch statement falls to the next case (good) or to the default case (bad). * lib/tests/scaffold/44-switch-body-fallthrough-not-default.c: New file. * build-aux/check-mescc.sh (mes_tests): Add it. --- build-aux/check-mescc.sh | 1 + .../44-switch-body-fallthrough-not-default.c | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 lib/tests/scaffold/44-switch-body-fallthrough-not-default.c diff --git a/build-aux/check-mescc.sh b/build-aux/check-mescc.sh index fb6557b8..4b4be83a 100755 --- a/build-aux/check-mescc.sh +++ b/build-aux/check-mescc.sh @@ -101,6 +101,7 @@ lib/tests/scaffold/43-for-do-while.c lib/tests/scaffold/44-switch.c lib/tests/scaffold/44-switch-fallthrough.c lib/tests/scaffold/44-switch-body-fallthrough.c +lib/tests/scaffold/44-switch-body-fallthrough-not-default.c lib/tests/scaffold/45-void-call.c lib/tests/scaffold/46-function-static.c lib/tests/scaffold/47-function-expression.c diff --git a/lib/tests/scaffold/44-switch-body-fallthrough-not-default.c b/lib/tests/scaffold/44-switch-body-fallthrough-not-default.c new file mode 100644 index 00000000..243cf9b9 --- /dev/null +++ b/lib/tests/scaffold/44-switch-body-fallthrough-not-default.c @@ -0,0 +1,45 @@ +/* -*-comment-start: "//";comment-end:""-*- + * GNU Mes --- Maxwell Equations of Software + * Copyright © 2018 Jan (janneke) Nieuwenhuizen + * Copyright © 2023 Ekaitz Zarraga + * + * This file is part of GNU Mes. + * + * GNU Mes is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or (at + * your option) any later version. + * + * GNU Mes is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GNU Mes. If not, see . + */ + +#include + +int +main () +{ + int r; + int i = 2; + switch (i) + { + case 2: + r = 2; + case 3: + r = 5; + break; + default: + r = 7; + break; + } + + if (r != 5) + return 1; + + return 0; +}