[rtems commit] psxtmonce01: New test written by Himanshu40 as part of GCI2018
Sebastian Huber
sebastian.huber at embedded-brains.de
Wed Nov 7 06:36:14 UTC 2018
It would be nice if GCI2018 patches are sent to devel at rtems.org for
review before they are committed.
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.
More information about the devel
mailing list