Re: [PATCH v3 4/4] testsuite/smokey/psostests: Fix compile error seen with gcc 16
Florian Bezdeka <[email protected]> Mon, 20 Jul 2026 17:42:15 +0200
| Newsgroups | dev.linux.lists.xenomai |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 2026-07-20 at 17:04 +0200, Jan Kiszka wrote: > On 20.07.26 17:02, Florian Bezdeka wrote: > > On Mon, 2026-07-20 at 16:40 +0200, Jan Kiszka wrote: > > > On 17.07.26 09:45, Florian Bezdeka wrote: > > > > Fixes the following compile errors: > > > >=20 > > > > rn-1.c: In function =E2=80=98alloc_task=E2=80=99: > > > > rn-1.c:16:18: error: variable =E2=80=98n=E2=80=99 set but not used = [-Werror=3Dunused-but-set-variable=3D] > > > > 16 | int ret, n; > > > > | ^ > > > > rn-1.c:15:22: error: variable =E2=80=98alloc_size=E2=80=99 set but = not used [-Werror=3Dunused-but-set-variable=3D] > > > > 15 | u_long size, alloc_size =3D 0; > > > > | > > > >=20 > > > > task-2.c: In function =E2=80=98backgroundTask=E2=80=99: > > > > task-2.c:19:42: error: variable =E2=80=98count=E2=80=99 set but not= used [-Werror=3Dunused-but-set-variable=3D] > > > > 19 | unsigned int safety =3D 100000000, count =3D 0; > > > > | ^~~~~ > > > > cc1: all warnings being treated as errors > > > >=20 > > > > The counting busy loop has been replaced by an interval based busy > > > > loop. While at it: Enable this test for CI. It was previously marke= d > > > > as broken. The counting busy loop was not enough to keep the task a= live. > > > >=20 > > > > Signed-off-by: Florian Bezdeka <[email protected]> > > > > --- > > > > testsuite/smokey/psostests/psostests.c | 4 +--- > > > > testsuite/smokey/psostests/rn-1.c | 7 +++---- > > > > testsuite/smokey/psostests/task-2.c | 5 ++--- > > > > 3 files changed, 6 insertions(+), 10 deletions(-) > > > >=20 > > > > diff --git a/testsuite/smokey/psostests/psostests.c b/testsuite/smo= key/psostests/psostests.c > > > > index 289d563ac3595f0e2d21bc5f5746772fd51234b8..31347ba45ea430ac4b2= e62be4c1e437519f2fb37 100644 > > > > --- a/testsuite/smokey/psostests/psostests.c > > > > +++ b/testsuite/smokey/psostests/psostests.c > > > > @@ -15,9 +15,7 @@ static const char * const tests[] =3D { > > > > "psostests_sem1", > > > > "psostests_sem2", > > > > "psostests_task1", > > > > - // 0"014.452| BUG in __traceobj_assert_failed(): [FGND] trace ass= ertion failed: > > > > - // ../../../../../../../../../workspace/sources/xenomai/testsuit= e/smokey/psostests/task-2.c:56 =3D> "ret =3D=3D 0" > > > > - //"psostests_task2", > > > > + "psostests_task2", > > > > "psostests_task3", > > > > "psostests_task4", > > > > "psostests_task5", > > > > diff --git a/testsuite/smokey/psostests/rn-1.c b/testsuite/smokey/p= sostests/rn-1.c > > > > index 5e82d1506ca029ae2bf812ccbfbf9c3a9ab9cc7e..d2e847375212c9746de= 3e550a5d10a8be4694de5 100644 > > > > --- a/testsuite/smokey/psostests/rn-1.c > > > > +++ b/testsuite/smokey/psostests/rn-1.c > > > > @@ -12,15 +12,15 @@ static u_long tid, rnid; > > > > =20 > > > > static void alloc_task(u_long a1, u_long a2, u_long a3, u_long a4) > > > > { > > > > - u_long size, alloc_size =3D 0; > > > > - int ret, n; > > > > + u_long size; > > > > void *buf; > > > > + int ret; > > > > =20 > > > > traceobj_enter(&trobj); > > > > =20 > > > > srandom(0x11223344); > > > > =20 > > > > - for (n =3D 0;; n++) { > > > > + for (;;) { > > > > size =3D (random() % (sizeof(rn_mem) / 8)) + 4; > > > > ret =3D rn_getseg(rnid, size, RN_NOWAIT, 0, &buf); > > > > if (ret) { > > > > @@ -28,7 +28,6 @@ static void alloc_task(u_long a1, u_long a2, u_lo= ng a3, u_long a4) > > > > break; > > > > } > > > > memset(buf, 0xaa, size); > > > > - alloc_size +=3D size; > > > > } > > > > =20 > > > > traceobj_exit(&trobj); > > > > diff --git a/testsuite/smokey/psostests/task-2.c b/testsuite/smokey= /psostests/task-2.c > > > > index d24c13465367c7c2a6975dd4cbb01eb75f8fd1ad..21497433f1a35841844= 06b172c367eacd5a8b127 100644 > > > > --- a/testsuite/smokey/psostests/task-2.c > > > > +++ b/testsuite/smokey/psostests/task-2.c > > > > @@ -2,6 +2,7 @@ > > > > #include <stdio.h> > > > > #include <stdlib.h> > > > > #include <copperplate/traceobj.h> > > > > +#include <copperplate/threadobj.h> > > > > #include <psos/psos.h> > > > > =20 > > > > static struct traceobj trobj; > > > > @@ -16,7 +17,6 @@ static u_long sem_id; > > > > =20 > > > > static void backgroundTask(u_long a1, u_long a2, u_long a3, u_long= a4) > > > > { > > > > - unsigned int safety =3D 100000000, count =3D 0; > > > > int ret; > > > > =20 > > > > traceobj_enter(&trobj); > > > > @@ -28,8 +28,7 @@ static void backgroundTask(u_long a1, u_long a2, = u_long a3, u_long a4) > > > > =20 > > > > traceobj_mark(&trobj, 2); > > > > =20 > > > > - while (--safety > 0) > > > > - count++; > > > > + threadobj_spin(2000000); > > > > =20 > > >=20 > > > Here you do the right thing. > > >=20 > > > > traceobj_mark(&trobj, 3); > > > > =20 > > > >=20 > > >=20 > > > But the patch description is confusing: It only talks about fixing > > > compiler errors, but the code is actually re-enabling psostests_task2= , > > > isn't it? > >=20 > > Taken from the description above: > >=20 > > While at it: Enable this test for CI. It was previously marked > > as broken. The counting busy loop was not enough to keep the task alive= . > >=20 > > I can re-order the description a bit to make that even clearer. > >=20 >=20 > Start with the subject... v4 will factor that part out, so that the test enablement is a separate patch.