[rtems commit] psxtmonce01: New test written by Himanshu40 as part of GCI2018
Joel Sherrill
joel at rtems.org
Wed Nov 7 17:03:41 UTC 2018
On Wed, Nov 7, 2018 at 12:36 AM Sebastian Huber <
sebastian.huber at embedded-brains.de> wrote:
> It would be nice if GCI2018 patches are sent to devel at rtems.org for
> review before they are committed.
>
We will do this in the future and I will fix these but it also would have
been nice to
have gotten this feedback when it was on the templates that I posted
patches to
update at least a week ago and no one said a word.
>
> On 07/11/2018 01:36, Joel Sherrill wrote:
> > Module: rtems
> > Branch: master
> > Commit: 9bb395167a1cc7d8551d217825313bffcd0d8e1b
> > Changeset:
> http://git.rtems.org/rtems/commit/?id=9bb395167a1cc7d8551d217825313bffcd0d8e1b
> >
> > Author: Himanshu40 <himanshuwindows8.1 at gmail.com>
> > Date: Wed Nov 7 00:17:10 2018 +0530
> >
> > psxtmonce01: New test written by Himanshu40 as part of GCI2018
> >
> > ---
> >
> > testsuites/psxtmtests/Makefile.am | 11 +++
> > testsuites/psxtmtests/configure.ac | 1 +
> > testsuites/psxtmtests/psxtmonce01/Makefile.am | 27 ++++++++
> > testsuites/psxtmtests/psxtmonce01/init.c | 82
> +++++++++++++++++++++++
> > testsuites/psxtmtests/psxtmonce01/psxtmonce01.doc | 18 +++++
> > 5 files changed, 139 insertions(+)
> >
> > diff --git a/testsuites/psxtmtests/Makefile.am
> b/testsuites/psxtmtests/Makefile.am
> > index 2669107..1607ac6 100644
> > --- a/testsuites/psxtmtests/Makefile.am
> > +++ b/testsuites/psxtmtests/Makefile.am
> > @@ -338,6 +338,17 @@ psxtmnanosleep02_CPPFLAGS = $(AM_CPPFLAGS) \
> > -DOPERATION_COUNT=$(OPERATION_COUNT)
> > endif
> >
> > +if TEST_psxtmonce01
> > +psxtm_tests += psxtmonce01
> > +psxtm_docs += psxtmonce01/psxtmonce01.doc
> > +psxtmonce01_SOURCES = psxtmonce01/init.c \
> > + ../tmtests/include/timesys.h
> ../support/src/tmtests_empty_function.c \
> > + ../support/src/tmtests_support.c
> > +psxtmonce01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_psxtmonce01) \
> > + $(support_includes) -I$(top_srcdir)/../tmtests/include \
> > + -DOPERATION_COUNT=$(OPERATION_COUNT)
> > +endif
> > +
> > if TEST_psxtmrwlock01
> > psxtm_tests += psxtmrwlock01
> > psxtm_docs += psxtmrwlock01/psxtmrwlock01.doc
> > diff --git a/testsuites/psxtmtests/configure.ac b/testsuites/psxtmtests/
> configure.ac
> > index 59192d0..0c3b143 100644
> > --- a/testsuites/psxtmtests/configure.ac
> > +++ b/testsuites/psxtmtests/configure.ac
> > @@ -59,6 +59,7 @@ RTEMS_TEST_CHECK([psxtmmutex06])
> > RTEMS_TEST_CHECK([psxtmmutex07])
> > RTEMS_TEST_CHECK([psxtmnanosleep01])
> > RTEMS_TEST_CHECK([psxtmnanosleep02])
> > +RTEMS_TEST_CHECK([psxtmonce01])
> > RTEMS_TEST_CHECK([psxtmrwlock01])
> > RTEMS_TEST_CHECK([psxtmrwlock02])
> > RTEMS_TEST_CHECK([psxtmrwlock03])
> > diff --git a/testsuites/psxtmtests/psxtmonce01/Makefile.am
> b/testsuites/psxtmtests/psxtmonce01/Makefile.am
> > new file mode 100644
> > index 0000000..242e393
> > --- /dev/null
> > +++ b/testsuites/psxtmtests/psxtmonce01/Makefile.am
> > @@ -0,0 +1,27 @@
> > +MANAGERS = all
> > +
> > +rtems_tests_PROGRAMS = psxtmonce01
> > +psxtmonce01_SOURCES = init.c
> > +psxtmonce01_SOURCES += ../../tmtests/include/timesys.h
> > +psxtmonce01_SOURCES += ../../support/src/tmtests_empty_function.c
> > +psxtmonce01_SOURCES += ../../support/src/tmtests_support.c
> > +
> > +dist_rtems_tests_DATA = psxtmonce01.doc
> > +
> > +include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP at .cfg
> > +include $(top_srcdir)/../automake/compile.am
> > +include $(top_srcdir)/../automake/leaf.am
> > +
> > +OPERATION_COUNT = @OPERATION_COUNT@
> > +AM_CPPFLAGS += -I$(top_srcdir)/../tmtests/include
> > +AM_CPPFLAGS += -DOPERATION_COUNT=$(OPERATION_COUNT)
> > +AM_CPPFLAGS += -I$(top_srcdir)/../support/include
> > +
> > +LINK_OBJS = $(psxtmonce01_OBJECTS) $(psxtmonce01_LDADD)
> > +LINK_LIBS = $(psxtmonce01_LDLIBS)
> > +
> > +psxtmonce01$(EXEEXT): $(psxtmonce01_OBJECTS) $(psxtmonce01_DEPENDENCIES)
> > + @rm -f psxtmonce01$(EXEEXT)
> > + $(make-exe)
> > +
> > +include $(top_srcdir)/../automake/local.am
>
> This testsuites/psxtmtests/psxtmonce01/Makefile.am is superfluous.
>
> > diff --git a/testsuites/psxtmtests/psxtmonce01/init.c
> b/testsuites/psxtmtests/psxtmonce01/init.c
> > new file mode 100644
> > index 0000000..5f8391a
> > --- /dev/null
> > +++ b/testsuites/psxtmtests/psxtmonce01/init.c
> > @@ -0,0 +1,82 @@
> > +/*
> > + * COPYRIGHT (c) 2018.
> > + * Himanshu Sekhar Nayak GCI 2018
> > + *
> > + * Permission to use, copy, modify, and/or distribute this software
> > + * for any purpose with or without fee is hereby granted.
> > + *
> > + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
> > + * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
> > + * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
> AUTHOR
> > + * BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
> DAMAGES
> > + * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
> PROFITS,
> > + * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
> ACTION,
> > + * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
> SOFTWARE.
> > + */
> > +
> > +#ifdef HAVE_CONFIG_H
> > +#include "config.h"
> > +#endif
> > +
> > +#include <pthread.h>
> > +#include <tmacros.h>
> > +#include <timesys.h>
> > +#include <rtems/btimer.h>
> > +#include "test_support.h"
> > +
> > +const char rtems_test_name[] = "PSXTMONCE01";
> > +
> > +/* forward declarations to avoid warnings */
> > +void *POSIX_Init(void *argument);
> > +void benchmark_first_time(void);
> > +void initRoutine(void);
>
> Why not use static functions?
>
> > +
> > +pthread_once_t once_control = PTHREAD_ONCE_INIT;
> > +
> > +void initRoutine(void)
> > +{
> > +}
> > +
> > +void benchmark_first_time(void)
> > +{
> > + long end_time;
> > + int status;
> > +
> > + benchmark_timer_initialize();
> > + status = pthread_once( &once_control, initRoutine );
> > + end_time = benchmark_timer_read();
> > + rtems_test_assert( status == 0 );
> > +
> > + put_time(
> > + "pthread_once: first time",
> > + end_time,
> > + 1, /* Only executed once */
> > + 0,
> > + 0
> > + );
> > +}
> > +
> > +void *POSIX_Init(
> > + void *argument
> > +)
> > +{
> > +
> > + TEST_BEGIN();
> > + benchmark_first_time();
> > + TEST_END();
> > +
> > + rtems_test_exit(0);
> > +}
> > +
> > +/* configuration information */
> > +
> > +#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
>
> Tests should use this console driver:
>
> #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
>
> This is particularly important for timing tests.
>
> > +#define CONFIGURE_APPLICATION_NEEDS_TIMER_DRIVER
>
> Could we please use the <rtems/counter.h> for new timing tests.
>
> > +
> > +#define CONFIGURE_MAXIMUM_POSIX_THREADS 1
> > +#define CONFIGURE_POSIX_INIT_THREAD_TABLE
> > +
> > +#define CONFIGURE_INIT
> > +
> > +#include <rtems/confdefs.h>
> > +/* end of file */
> > diff --git a/testsuites/psxtmtests/psxtmonce01/psxtmonce01.doc
> b/testsuites/psxtmtests/psxtmonce01/psxtmonce01.doc
> > new file mode 100644
> > index 0000000..cd7b2ea
> > --- /dev/null
> > +++ b/testsuites/psxtmtests/psxtmonce01/psxtmonce01.doc
> > @@ -0,0 +1,18 @@
> > +# COPYRIGHT (c) 2018.
> > +# Himanshu Sekhar Nayak GCI 2018
> > +#
> > +# Permission to use, copy, modify, and/or distribute this software
> > +# for any purpose with or without fee is hereby granted.
> > +#
> > +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
> > +# WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
> > +# WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
> AUTHOR
> > +# BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
> > +# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
> PROFITS,
> > +# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
> ACTION,
> > +# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
> SOFTWARE.
> > +#
> > +
> > +This test benchmarks the following operations:
> > +
> > ++ pthread_once - first time, empty initialization method
> >
> > _______________________________________________
> > vc mailing list
> > vc at rtems.org
> > http://lists.rtems.org/mailman/listinfo/vc
>
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone : +49 89 189 47 41-16
> Fax : +49 89 189 47 41-09
> E-Mail : sebastian.huber at embedded-brains.de
> PGP : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/devel/attachments/20181107/479de52c/attachment-0002.html>
More information about the devel
mailing list