forked from Imagelibrary/rtems
2010-09-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
* psx15/.cvsignore, psx15/Makefile.am, psx15/init.c, psx15/psx15.scn: New files. * Makefile.am, configure.ac: Reflect changes above.
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
2010-09-28 Sebastian Huber <Sebastian.Huber@embedded-brains.de>
|
||||
|
||||
* psx15/.cvsignore, psx15/Makefile.am, psx15/init.c, psx15/psx15.scn:
|
||||
New files.
|
||||
* Makefile.am, configure.ac: Reflect changes above.
|
||||
|
||||
2010-08-30 Ralf Corsépius <ralf.corsepius@rtems.org>
|
||||
|
||||
* configure.ac: AC_CHECK_DECLS([seteuid]).
|
||||
|
||||
@@ -7,7 +7,7 @@ ACLOCAL_AMFLAGS = -I ../aclocal
|
||||
SUBDIRS = psxclock
|
||||
if HAS_POSIX
|
||||
SUBDIRS += psxhdrs psx01 psx02 psx03 psx04 psx05 psx06 psx07 psx08 psx09 \
|
||||
psx10 psx11 psx12 psx13 psx14 psxaio01 psxaio02 psxalarm01 \
|
||||
psx10 psx11 psx12 psx13 psx14 psx15 psxaio01 psxaio02 psxalarm01 \
|
||||
psxautoinit01 psxautoinit02 psxbarrier01 \
|
||||
psxcancel psxcancel01 psxcleanup psxcleanup01 \
|
||||
psxcond01 psxenosys psxkey01 psxkey02 psxkey03 \
|
||||
|
||||
@@ -76,6 +76,7 @@ psx11/Makefile
|
||||
psx12/Makefile
|
||||
psx13/Makefile
|
||||
psx14/Makefile
|
||||
psx15/Makefile
|
||||
psxaio01/Makefile
|
||||
psxaio02/Makefile
|
||||
psxalarm01/Makefile
|
||||
|
||||
14
testsuites/psxtests/psx15/.cvsignore
Normal file
14
testsuites/psxtests/psx15/.cvsignore
Normal file
@@ -0,0 +1,14 @@
|
||||
aclocal.m4
|
||||
autom4te*.cache
|
||||
config.cache
|
||||
config.guess
|
||||
config.log
|
||||
config.status
|
||||
config.sub
|
||||
configure
|
||||
depcomp
|
||||
install-sh
|
||||
Makefile
|
||||
Makefile.in
|
||||
missing
|
||||
mkinstalldirs
|
||||
28
testsuites/psxtests/psx15/Makefile.am
Normal file
28
testsuites/psxtests/psx15/Makefile.am
Normal file
@@ -0,0 +1,28 @@
|
||||
##
|
||||
## $Id$
|
||||
##
|
||||
|
||||
MANAGERS = all
|
||||
|
||||
rtems_tests_PROGRAMS = psx15
|
||||
psx15_SOURCES = init.c ../include/pmacros.h
|
||||
|
||||
dist_rtems_tests_DATA = psx15.scn
|
||||
|
||||
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
||||
include $(top_srcdir)/../automake/compile.am
|
||||
include $(top_srcdir)/../automake/leaf.am
|
||||
|
||||
psx15_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
|
||||
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
||||
|
||||
LINK_OBJS = $(psx15_OBJECTS) $(psx15_LDADD)
|
||||
LINK_LIBS = $(psx15_LDLIBS)
|
||||
|
||||
psx15$(EXEEXT): $(psx15_OBJECTS) $(psx15_DEPENDENCIES)
|
||||
@rm -f psx15$(EXEEXT)
|
||||
$(make-exe)
|
||||
|
||||
include $(top_srcdir)/../automake/local.am
|
||||
111
testsuites/psxtests/psx15/init.c
Normal file
111
testsuites/psxtests/psx15/init.c
Normal file
@@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Copyright (c) 2010 embedded brains GmbH. All rights reserved.
|
||||
*
|
||||
* embedded brains GmbH
|
||||
* Obere Lagerstr. 30
|
||||
* 82178 Puchheim
|
||||
* Germany
|
||||
* <rtems@embedded-brains.de>
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.com/license/LICENSE.
|
||||
*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
#include <rtems.h>
|
||||
|
||||
#include "tmacros.h"
|
||||
|
||||
/*
|
||||
* This test case shows that post switch extension handlers must cope with
|
||||
* already deleted resources (e.g. _POSIX_signals_Post_switch_extension()).
|
||||
* The thread delete extensions run with thread dispatching enabled. Only the
|
||||
* allocation mutex is locked.
|
||||
*/
|
||||
|
||||
static rtems_id task_0 = RTEMS_ID_NONE;
|
||||
|
||||
static rtems_id task_1 = RTEMS_ID_NONE;
|
||||
|
||||
static void thread_delete_hook(
|
||||
Thread_Control *executing,
|
||||
Thread_Control *deleted
|
||||
)
|
||||
{
|
||||
rtems_status_code sc = RTEMS_SUCCESSFUL;
|
||||
|
||||
if (deleted->Object.id == task_0) {
|
||||
rtems_task_priority old = 0;
|
||||
|
||||
sc = rtems_task_set_priority(task_1, 2, &old);
|
||||
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
|
||||
}
|
||||
}
|
||||
|
||||
static void suicide_task(rtems_task_argument arg)
|
||||
{
|
||||
printf("suicide task %" PRIuPTR "\n", arg);
|
||||
|
||||
rtems_task_delete(RTEMS_SELF);
|
||||
rtems_test_assert(false);
|
||||
}
|
||||
|
||||
void Init(rtems_task_argument arg)
|
||||
{
|
||||
rtems_status_code sc = RTEMS_SUCCESSFUL;
|
||||
|
||||
puts("\n\n*** POSIX TEST 15 ***");
|
||||
|
||||
sc = rtems_task_create(
|
||||
rtems_build_name('T', 'S', 'K', '1'),
|
||||
5,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&task_1
|
||||
);
|
||||
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
|
||||
|
||||
sc = rtems_task_start(task_1, suicide_task, 1);
|
||||
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
|
||||
|
||||
sc = rtems_task_create(
|
||||
rtems_build_name('T', 'S', 'K', '0'),
|
||||
3,
|
||||
RTEMS_MINIMUM_STACK_SIZE,
|
||||
RTEMS_DEFAULT_MODES,
|
||||
RTEMS_DEFAULT_ATTRIBUTES,
|
||||
&task_0
|
||||
);
|
||||
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
|
||||
|
||||
sc = rtems_task_start(task_0, suicide_task, 0);
|
||||
rtems_test_assert(sc == RTEMS_SUCCESSFUL);
|
||||
|
||||
puts("*** END OF POSIX TEST 15 ***");
|
||||
|
||||
rtems_test_exit(0);
|
||||
rtems_test_assert(false);
|
||||
}
|
||||
|
||||
#define CONFIGURE_INIT
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
|
||||
#define CONFIGURE_MAXIMUM_TASKS 3
|
||||
#define CONFIGURE_MAXIMUM_USER_EXTENSIONS 1
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
|
||||
#define CONFIGURE_INIT_TASK_INITIAL_MODES RTEMS_PREEMPT
|
||||
#define CONFIGURE_INIT_TASK_PRIORITY 4
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS { .thread_delete = thread_delete_hook }
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
4
testsuites/psxtests/psx15/psx15.scn
Normal file
4
testsuites/psxtests/psx15/psx15.scn
Normal file
@@ -0,0 +1,4 @@
|
||||
*** POSIX TEST 15 ***
|
||||
suicide task 0
|
||||
suicide task 1
|
||||
*** END OF POSIX TEST 15 ***
|
||||
Reference in New Issue
Block a user