Re: [PATCH rtems 1/2] Add support for CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR

2022-08-05 Thread Sebastian Huber

On 05/08/2022 00:08, Joel Sherrill wrote:

This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
which allows the application to choose whether to have the POSIX
timer_create() function follow the behavior defined by POSIX or
the FACE Technical Standard.

Updates #4691.


It would be nice if you could add items for the new option to 
rtems-central so that we can use it for the Doxygen documentation and 
the manual.



---
  cpukit/include/rtems/confdefs.h|  1 +
  cpukit/include/rtems/confdefs/face.h   | 71 +
  cpukit/include/rtems/posix/timerimpl.h | 11 +++
  cpukit/posix/src/psxtimercreate.c  | 19 -
  spec/build/testsuites/psxtests/grp.yml |  2 +
  spec/build/testsuites/psxtests/psxtimer_face01.yml | 20 +
  testsuites/psxtests/psxtimer_face01/psxtimer.c | 89 ++
  .../psxtests/psxtimer_face01/psxtimer_face01.doc   | 39 ++
  .../psxtests/psxtimer_face01/psxtimer_face01.scn   |  4 +
  9 files changed, 255 insertions(+), 1 deletion(-)
  create mode 100644 cpukit/include/rtems/confdefs/face.h
  create mode 100644 spec/build/testsuites/psxtests/psxtimer_face01.yml
  create mode 100644 testsuites/psxtests/psxtimer_face01/psxtimer.c
  create mode 100644 testsuites/psxtests/psxtimer_face01/psxtimer_face01.doc
  create mode 100644 testsuites/psxtests/psxtimer_face01/psxtimer_face01.scn

diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h
index e6dd3d7..3927d26 100644
--- a/cpukit/include/rtems/confdefs.h
+++ b/cpukit/include/rtems/confdefs.h
@@ -64,6 +64,7 @@
  #include 
  #include 
  #include 
+#include 
  #include 
  #include 
  #include 
diff --git a/cpukit/include/rtems/confdefs/face.h 
b/cpukit/include/rtems/confdefs/face.h
new file mode 100644
index 000..07ab62e
--- /dev/null
+++ b/cpukit/include/rtems/confdefs/face.h
@@ -0,0 +1,71 @@
+/* SPDX-License-Identifier: BSD-2-Clause */
+
+/**
+ * @file
+ *
+ * @ingroup RTEMSImplApplConfig
+ *
+ * @brief This header file evaluates configuration options related to
+ *   the FACE Technical Standard.
+ *
+ * The FACE Technical Standard (https://opengroup.org/face) is an
+ * open standard designed for safety critical embedded systems. It
+ * includes POSIX profiles and requirements that promote safety
+ * and portability. As a general rules, the profiles place a minimum
+ * on the services which an operating system must provide. Those
+ * same profile definitions represent the maximum services which
+ * an application may use.
+ */
+
+/*
+ * Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *notice, this list of conditions and the following disclaimer in the
+ *documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _RTEMS_CONFDEFS_FACE_H
+#define _RTEMS_CONFDEFS_FACE_H
+
+#ifndef __CONFIGURATION_TEMPLATE_h
+#error "Do not include this file directly, use  instead"
+#endif
+
+#ifdef CONFIGURE_INIT
+
+#include 
+
+#ifndef CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
+  bool _POSIX_Timer_Is_allowed_on_CLOCK_REALTIME( void )
+  {
+/*
+ * Per the FACE Technical Standard, POSIX timers should not be
+ * allowed on CLOCK_REALTIME for safety reasons. If the application
+ * wants the FACE behavior, then this method is instantiated.
+ */
+return false;
+  }


I would change this to:

int _POSIX_Timer_Is_clock_valid( clockid_t clock_id )

It returns an error number or zero.


+
+#endif /* CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR */
+
+#endif /* CONFIGURE_INIT */
+
+#endif /* _RTEMS_CONFDEFS_FACE_H */
diff --git a/cpukit/include/rtems/posix/timerimpl.h 
b/cpukit/include/rtems/posix/timerimpl.h
index 8f92186..c6e3b64 100644
--- a/cpukit/include/rtems/posix/timerimpl.h
+++ b/cpukit/include/rtems/p

Re: [PATCH rtems 1/2] Add support for CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR

2022-08-05 Thread Joel Sherrill
On Fri, Aug 5, 2022 at 5:45 AM Sebastian Huber <
sebastian.hu...@embedded-brains.de> wrote:

> On 05/08/2022 00:08, Joel Sherrill wrote:
> > This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
> > which allows the application to choose whether to have the POSIX
> > timer_create() function follow the behavior defined by POSIX or
> > the FACE Technical Standard.
> >
> > Updates #4691.
>
> It would be nice if you could add items for the new option to
> rtems-central so that we can use it for the Doxygen documentation and
> the manual.
>

I'll give it a try. Is there a readme or really good example?


> > ---
> >   cpukit/include/rtems/confdefs.h|  1 +
> >   cpukit/include/rtems/confdefs/face.h   | 71
> +
> >   cpukit/include/rtems/posix/timerimpl.h | 11 +++
> >   cpukit/posix/src/psxtimercreate.c  | 19 -
> >   spec/build/testsuites/psxtests/grp.yml |  2 +
> >   spec/build/testsuites/psxtests/psxtimer_face01.yml | 20 +
> >   testsuites/psxtests/psxtimer_face01/psxtimer.c | 89
> ++
> >   .../psxtests/psxtimer_face01/psxtimer_face01.doc   | 39 ++
> >   .../psxtests/psxtimer_face01/psxtimer_face01.scn   |  4 +
> >   9 files changed, 255 insertions(+), 1 deletion(-)
> >   create mode 100644 cpukit/include/rtems/confdefs/face.h
> >   create mode 100644 spec/build/testsuites/psxtests/psxtimer_face01.yml
> >   create mode 100644 testsuites/psxtests/psxtimer_face01/psxtimer.c
> >   create mode 100644
> testsuites/psxtests/psxtimer_face01/psxtimer_face01.doc
> >   create mode 100644
> testsuites/psxtests/psxtimer_face01/psxtimer_face01.scn
> >
> > diff --git a/cpukit/include/rtems/confdefs.h
> b/cpukit/include/rtems/confdefs.h
> > index e6dd3d7..3927d26 100644
> > --- a/cpukit/include/rtems/confdefs.h
> > +++ b/cpukit/include/rtems/confdefs.h
> > @@ -64,6 +64,7 @@
> >   #include 
> >   #include 
> >   #include 
> > +#include 
> >   #include 
> >   #include 
> >   #include 
> > diff --git a/cpukit/include/rtems/confdefs/face.h
> b/cpukit/include/rtems/confdefs/face.h
> > new file mode 100644
> > index 000..07ab62e
> > --- /dev/null
> > +++ b/cpukit/include/rtems/confdefs/face.h
> > @@ -0,0 +1,71 @@
> > +/* SPDX-License-Identifier: BSD-2-Clause */
> > +
> > +/**
> > + * @file
> > + *
> > + * @ingroup RTEMSImplApplConfig
> > + *
> > + * @brief This header file evaluates configuration options related to
> > + *   the FACE Technical Standard.
> > + *
> > + * The FACE Technical Standard (https://opengroup.org/face) is an
> > + * open standard designed for safety critical embedded systems. It
> > + * includes POSIX profiles and requirements that promote safety
> > + * and portability. As a general rules, the profiles place a minimum
> > + * on the services which an operating system must provide. Those
> > + * same profile definitions represent the maximum services which
> > + * an application may use.
> > + */
> > +
> > +/*
> > + * Copyright (C) 2022 On-Line Applications Research Corporation (OAR)
> > + *
> > + * Redistribution and use in source and binary forms, with or without
> > + * modification, are permitted provided that the following conditions
> > + * are met:
> > + * 1. Redistributions of source code must retain the above copyright
> > + *notice, this list of conditions and the following disclaimer.
> > + * 2. Redistributions in binary form must reproduce the above copyright
> > + *notice, this list of conditions and the following disclaimer in
> the
> > + *documentation and/or other materials provided with the
> distribution.
> > + *
> > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> "AS IS"
> > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
> TO, THE
> > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
> PURPOSE
> > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
> CONTRIBUTORS BE
> > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
> > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
> > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
> BUSINESS
> > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
> IN
> > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
> OTHERWISE)
> > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
> OF THE
> > + * POSSIBILITY OF SUCH DAMAGE.
> > + */
> > +
> > +#ifndef _RTEMS_CONFDEFS_FACE_H
> > +#define _RTEMS_CONFDEFS_FACE_H
> > +
> > +#ifndef __CONFIGURATION_TEMPLATE_h
> > +#error "Do not include this file directly, use 
> instead"
> > +#endif
> > +
> > +#ifdef CONFIGURE_INIT
> > +
> > +#include 
> > +
> > +#ifndef CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
> > +  bool _POSIX_Timer_Is_allowed_on_CLOCK_REALTIME( void )
> > +  {
> > +/*
> > + * Per the FACE Technical Standard, POSIX timers should not be
> > + * allow

Re: [PATCH rtems 1/2] Add support for CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR

2022-08-05 Thread Sebastian Huber

On 05/08/2022 16:14, Joel Sherrill wrote:



On Fri, Aug 5, 2022 at 5:45 AM Sebastian Huber 
> wrote:


On 05/08/2022 00:08, Joel Sherrill wrote:
 > This adds the configure option CONFIGURE_POSIX_TIMERS_FACE_BEHAVIOR
 > which allows the application to choose whether to have the POSIX
 > timer_create() function follow the behavior defined by POSIX or
 > the FACE Technical Standard.
 >
 > Updates #4691.

It would be nice if you could add items for the new option to
rtems-central so that we can use it for the Doxygen documentation and
the manual.


I'll give it a try. Is there a readme or really good example?


There is this:

https://docs.rtems.org/branches/master/eng/req/howto.html#




 > ---
 >   cpukit/include/rtems/confdefs.h                    |  1 +
 >   cpukit/include/rtems/confdefs/face.h               | 71
+
 >   cpukit/include/rtems/posix/timerimpl.h             | 11 +++
 >   cpukit/posix/src/psxtimercreate.c                  | 19 -
 >   spec/build/testsuites/psxtests/grp.yml             |  2 +
 >   spec/build/testsuites/psxtests/psxtimer_face01.yml | 20 +
 >   testsuites/psxtests/psxtimer_face01/psxtimer.c     | 89
++
 >   .../psxtests/psxtimer_face01/psxtimer_face01.doc   | 39 ++
 >   .../psxtests/psxtimer_face01/psxtimer_face01.scn   |  4 +
 >   9 files changed, 255 insertions(+), 1 deletion(-)
 >   create mode 100644 cpukit/include/rtems/confdefs/face.h
 >   create mode 100644
spec/build/testsuites/psxtests/psxtimer_face01.yml
 >   create mode 100644 testsuites/psxtests/psxtimer_face01/psxtimer.c
 >   create mode 100644
testsuites/psxtests/psxtimer_face01/psxtimer_face01.doc
 >   create mode 100644
testsuites/psxtests/psxtimer_face01/psxtimer_face01.scn
 >
 > diff --git a/cpukit/include/rtems/confdefs.h
b/cpukit/include/rtems/confdefs.h
 > index e6dd3d7..3927d26 100644
 > --- a/cpukit/include/rtems/confdefs.h
 > +++ b/cpukit/include/rtems/confdefs.h
 > @@ -64,6 +64,7 @@
 >   #include 
 >   #include 
 >   #include 
 > +#include 
 >   #include 
 >   #include 
 >   #include 
 > diff --git a/cpukit/include/rtems/confdefs/face.h
b/cpukit/include/rtems/confdefs/face.h
 > new file mode 100644
 > index 000..07ab62e
 > --- /dev/null
 > +++ b/cpukit/include/rtems/confdefs/face.h
 > @@ -0,0 +1,71 @@
 > +/* SPDX-License-Identifier: BSD-2-Clause */
 > +
 > +/**
 > + * @file
 > + *
 > + * @ingroup RTEMSImplApplConfig
 > + *
 > + * @brief This header file evaluates configuration options
related to
 > + *   the FACE Technical Standard.
 > + *
 > + * The FACE Technical Standard (https://opengroup.org/face
) is an
 > + * open standard designed for safety critical embedded systems. It
 > + * includes POSIX profiles and requirements that promote safety
 > + * and portability. As a general rules, the profiles place a minimum
 > + * on the services which an operating system must provide. Those
 > + * same profile definitions represent the maximum services which
 > + * an application may use.
 > + */
 > +
 > +/*
 > + * Copyright (C) 2022 On-Line Applications Research Corporation
(OAR)
 > + *
 > + * Redistribution and use in source and binary forms, with or
without
 > + * modification, are permitted provided that the following
conditions
 > + * are met:
 > + * 1. Redistributions of source code must retain the above copyright
 > + *    notice, this list of conditions and the following disclaimer.
 > + * 2. Redistributions in binary form must reproduce the above
copyright
 > + *    notice, this list of conditions and the following
disclaimer in the
 > + *    documentation and/or other materials provided with the
distribution.
 > + *
 > + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS "AS IS"
 > + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE
 > + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE
 > + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE
 > + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR
 > + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF
 > + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS
 > + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN
 > + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE)
 > + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE
 > + * POSSIBILITY OF SUCH DAMAGE.
 

[tools] tester: Sort test reports for JSON/YAML

2022-08-05 Thread Sebastian Huber
This makes the reports more git friendly.

Update 4671.
---
 tester/rt/test.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tester/rt/test.py b/tester/rt/test.py
index 9549765..2b5ad85 100644
--- a/tester/rt/test.py
+++ b/tester/rt/test.py
@@ -248,7 +248,7 @@ def results_to_data(args, reports, start_time, end_time):
 run_data['arch'] = run['bsp_arch']
 reports_data.append(run_data)
 
-data['reports'] = reports_data
+data['reports'] = sorted(reports_data, key=lambda x: x["executable"])
 return data
 
 
-- 
2.35.3

___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel