forked from Imagelibrary/rtems
testsuites/dl06: Add a test for RAP format.
This test loads a RAP format file that contains calls that are not in the kernel and linked from libm. It uses and test rtems-ld. Update #2769
This commit is contained in:
@@ -323,8 +323,12 @@ lib_screens += dl01/dl01.scn
|
||||
lib_docs += dl01/dl01.doc
|
||||
dl01_SOURCES = dl01/init.c dl01/dl-load.c dl01-tar.c dl01-tar.h
|
||||
dl01_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_dl01) $(support_includes)
|
||||
dl01-o1.o: dl01/dl-o1.c
|
||||
$(AM_V_GEN)$(COMPILE) -c -o $@ $<
|
||||
dl01/init.c: dl01-tar.o
|
||||
dl01.pre: $(dl01_OBJECTS) $(dl01_DEPENDENCIES)
|
||||
@rm -f dl01.pre
|
||||
$(AM_V_CCLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
dl01-o1.o: dl01/dl-o1.c Makefile
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl01.tar: dl01-o1.o
|
||||
@rm -f $@
|
||||
$(AM_V_GEN)$(PAX) -w -f $@ $<
|
||||
@@ -333,15 +337,12 @@ dl01-tar.c: dl01.tar
|
||||
dl01-tar.h: dl01.tar
|
||||
$(AM_V_GEN)$(BIN2C) -H $< $@
|
||||
dl01-tar.o: dl01-tar.c dl01-tar.h
|
||||
dl01/init.c: dl01-tar.o
|
||||
dl01.pre: $(dl01_OBJECTS) $(dl01_DEPENDENCIES)
|
||||
@rm -f dl01.pre
|
||||
$(AM_V_CLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl01-sym.o: dl01.pre
|
||||
$(AM_V_GEN)rtems-syms -e -c "$(CFLAGS)" -o $@ $<
|
||||
dl01$(EXEEXT): $(dl01_OBJECTS) $(dl01_DEPENDENCIES) dl01-sym.o
|
||||
@rm -f $@
|
||||
$(AM_V_CLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
$(AM_V_CCLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
CLEANFILES += dl01.pre dl01-sym.o dl02-o1.o dl01.tar dl01-tar.h
|
||||
endif
|
||||
endif
|
||||
@@ -353,10 +354,14 @@ lib_screens += dl02/dl02.scn
|
||||
lib_docs += dl02/dl02.doc
|
||||
dl02_SOURCES = dl02/init.c dl02/dl-load.c dl02-tar.c dl02-tar.h
|
||||
dl02_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_dl02) $(support_includes)
|
||||
dl02-o1.o: dl02/dl-o1.c
|
||||
$(AM_V_GEN)$(COMPILE) -c -o $@ $<
|
||||
dl02-o2.o: dl02/dl-o2.c
|
||||
$(AM_V_GEN)$(COMPILE) -c -o $@ $<
|
||||
dl02/init.c: dl02-tar.o
|
||||
dl02.pre: $(dl02_OBJECTS) $(dl02_DEPENDENCIES)
|
||||
@rm -f dl02.pre
|
||||
$(AM_V_CCLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
dl02-o1.o: dl02/dl-o1.c Makefile
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl02-o2.o: dl02/dl-o2.c Makefile
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl02.tar: dl02-o1.o dl02-o2.o
|
||||
@rm -f $@
|
||||
$(AM_V_GEN)$(PAX) -w -f $@ $<
|
||||
@@ -365,15 +370,12 @@ dl02-tar.c: dl02.tar
|
||||
dl02-tar.h: dl02.tar
|
||||
$(AM_V_GEN)$(BIN2C) -H $< $@
|
||||
dl02-tar.o: dl02-tar.c dl02-tar.h
|
||||
dl02/init.c: dl02-tar.o
|
||||
dl02.pre: $(dl02_OBJECTS) $(dl02_DEPENDENCIES)
|
||||
@rm -f dl02.pre
|
||||
$(AM_V_CLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl02-sym.o: dl02.pre
|
||||
$(AM_V_GEN)rtems-syms -e -c "$(CFLAGS)" -o $@ $<
|
||||
dl02$(EXEEXT): $(dl02_OBJECTS) $(dl02_DEPENDENCIES) dl02-sym.o
|
||||
@rm -f $@
|
||||
$(AM_V_CLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
$(AM_V_CCLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
CLEANFILES += dl02.pre dl02-sym.o dl02-o1.o dl02-o2.o dl02.tar dl02-tar.h
|
||||
endif
|
||||
endif
|
||||
@@ -397,7 +399,11 @@ lib_docs += dl04/dl04.doc
|
||||
dl04_SOURCES = dl04/init.c dl04/dl-load.c dl04/dl-cpp.cpp dl04-tar.c \
|
||||
dl04-tar.h
|
||||
dl04_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_dl04) $(support_includes)
|
||||
dl04-o4.o: dl04/dl-o4.cpp
|
||||
dl04/init.c: dl04-tar.o
|
||||
dl04.pre: $(dl04_OBJECTS) $(dl04_DEPENDENCIES)
|
||||
@rm -f dl04.pre
|
||||
$(AM_V_CXXLD)$(LINK.cc) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
dl04-o4.o: dl04/dl-o4.cpp Makefile
|
||||
$(AM_V_GEN)$(CXXCOMPILE) -c -o $@ $<
|
||||
dl04.tar: dl04-o4.o
|
||||
@rm -f $@
|
||||
@@ -407,10 +413,7 @@ dl04-tar.c: dl04.tar
|
||||
dl04-tar.h: dl04.tar
|
||||
$(AM_V_GEN)$(BIN2C) -H $< $@
|
||||
dl04-tar.o: dl04-tar.c dl04-tar.h
|
||||
dl04/init.c: dl04-tar.o
|
||||
dl04.pre: $(dl04_OBJECTS) $(dl04_DEPENDENCIES)
|
||||
@rm -f dl04.pre
|
||||
$(AM_V_CXXLD)$(LINK.cc) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl04-sym.o: dl04.pre
|
||||
$(AM_V_GEN)rtems-syms -e -c "$(CFLAGS)" -o $@ $<
|
||||
dl04$(EXEEXT): $(dl04_OBJECTS) $(dl04_DEPENDENCIES) dl04-sym.o
|
||||
@@ -430,6 +433,10 @@ lib_docs += dl05/dl05.doc
|
||||
dl05_SOURCES = dl05/init.c dl05/dl-load.c dl05/dl-cpp.cpp dl05-tar.c \
|
||||
dl05-tar.h
|
||||
dl05_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_dl05) $(support_includes)
|
||||
dl05/init.c: dl05-tar.o
|
||||
dl05.pre: $(dl05_OBJECTS) $(dl05_DEPENDENCIES)
|
||||
@rm -f dl05.pre
|
||||
$(AM_V_CXXLD)$(LINK.cc) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
dl05-o5.o: dl05/dl-o5.cpp
|
||||
$(AM_V_CXX)$(CXXCOMPILE) -c -o $@ $<
|
||||
dl05.tar: dl05-o5.o
|
||||
@@ -440,13 +447,10 @@ dl05-tar.c: dl05.tar
|
||||
dl05-tar.h: dl05.tar
|
||||
$(AM_V_GEN)$(BIN2C) -H $< $@
|
||||
dl05-tar.o: dl05-tar.c dl05-tar.h
|
||||
dl05/init.c: dl05-tar.o
|
||||
dl05.pre: $(dl05_OBJECTS) $(dl05_DEPENDENCIES)
|
||||
@rm -f dl05.pre
|
||||
$(AM_V_CXXLD)$(LINK.cc) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl05-sym.o: dl05.pre
|
||||
$(AM_V_GEN)rtems-syms -e -c "$(CFLAGS)" -o $@ $<
|
||||
dl05$(EXEEXT): $(dl05_OBJECTS) $(dl05_DEPENDENCIES) dl05-sym.o
|
||||
dl05$(EXEEXT): $(dl05_OBJECTS) $(dl05_DEPENDENCIES) dl05-sym.o
|
||||
@rm -f $@
|
||||
$(AM_V_CXXLD)$(LINK.cc) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
CLEANFILES += dl05.pre dl05-sym.o dl05-o5.o dl05.tar dl05-tar.h
|
||||
@@ -454,6 +458,54 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
if DLTESTS
|
||||
if TEST_dl06
|
||||
lib_tests += dl06
|
||||
lib_screens += dl06/dl06.scn
|
||||
lib_docs += dl06/dl06.doc
|
||||
dl06_SOURCES = dl06/init.c dl06/dl-load.c dl06-tar.c dl06-tar.h
|
||||
dl06_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_FLAGS_dl06) $(support_includes)
|
||||
dl06/init.c: dl06-tar.o
|
||||
dl06-pre.tar: Makefile
|
||||
$(AM_V_at)echo "Something in a file" > dl06_pre_file
|
||||
$(AM_V_GEN)$(PAX) -w -f $@ dl06_pre_file
|
||||
dl06-pre-tar.c: dl06-pre.tar
|
||||
$(AM_V_GEN)$(BIN2C) -N dl06_tar -C $< $@
|
||||
dl06-pre-tar.h: dl06-pre.tar
|
||||
$(AM_V_GEN)$(BIN2C) -N dl06_tar -H $< $@
|
||||
dl06-pre-tar.o: dl06-pre-tar.c dl06-pre-tar.h
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl06-pre-init.o: dl06-pre-tar.o
|
||||
$(AM_V_CC)$(COMPILE) $(dl06_CPPFLAGS) $(CPU_CFLAGS) $(AM_CFLAGS) \
|
||||
-DDL06_PRE -c -o $@ $(srcdir)/dl06/init.c
|
||||
dl06.pre: dl06-pre-init.o dl06/dl06-dl-load.o dl06-pre-tar.o
|
||||
@rm -f $@
|
||||
$(AM_V_CCLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
dl06-o1.o: dl06/dl06-o1.c Makefile
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl06-o2.o: dl06/dl06-o2.c Makefile
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl06.rap: dl06.pre dl06-o1.o dl06-o2.o
|
||||
$(AM_V_GEN)rtems-ld -r $(RTEMS_BUILD_ROOT) -O rap -b $< -e rtems_main -s \
|
||||
-o $@ $(filter-out dl06.pre,$+) -lm
|
||||
dl06.tar: dl06.rap
|
||||
@rm -f $@
|
||||
$(AM_V_GEN)$(PAX) -w -f $@ $<
|
||||
dl06-tar.c: dl06.tar
|
||||
$(AM_V_GEN)$(BIN2C) -C $< $@
|
||||
dl06-tar.h: dl06.tar
|
||||
$(AM_V_GEN)$(BIN2C) -H $< $@
|
||||
dl06-tar.o: dl06-tar.c dl06-tar.h
|
||||
$(AM_V_CC)$(COMPILE) -c -o $@ $<
|
||||
dl06-sym.o: dl06.pre
|
||||
$(AM_V_GEN)rtems-syms -e -c "$(CFLAGS)" -o $@ $<
|
||||
dl06$(EXEEXT): $(dl06_OBJECTS) dl06-sym.o
|
||||
@rm -f $@
|
||||
$(AM_V_CCLD)$(LINK.c) $(CPU_CFLAGS) $(AM_CFLAGS) $(AM_LDFLAGS) -o $@ $+
|
||||
CLEANFILES += dl06.pre dl06-sym.o dl06-o1.o dl06-o2.o dl06.tar dl06-tar.h
|
||||
endif
|
||||
endif
|
||||
|
||||
if TEST_dumpbuf01
|
||||
lib_tests += dumpbuf01
|
||||
lib_screens += dumpbuf01/dumpbuf01.scn
|
||||
|
||||
@@ -132,6 +132,7 @@ RTEMS_TEST_CHECK([dl02])
|
||||
RTEMS_TEST_CHECK([dl03])
|
||||
RTEMS_TEST_CHECK([dl04])
|
||||
RTEMS_TEST_CHECK([dl05])
|
||||
RTEMS_TEST_CHECK([dl06])
|
||||
RTEMS_TEST_CHECK([dumpbuf01])
|
||||
RTEMS_TEST_CHECK([dup2])
|
||||
RTEMS_TEST_CHECK([exit01])
|
||||
|
||||
95
testsuites/libtests/dl06/dl-load.c
Normal file
95
testsuites/libtests/dl06/dl-load.c
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Copyright (c) 2014 Chris Johns <chrisj@rtems.org>. All rights reserved.
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <dlfcn.h>
|
||||
|
||||
#include <rtems/rtl/rtl-trace.h>
|
||||
|
||||
#include "dl-load.h"
|
||||
|
||||
typedef int (*call_t)(int argc, const char* argv[]);
|
||||
|
||||
static const char* call_args[] = { "1", "2", "3", "4" };
|
||||
|
||||
static void* dl_load_obj(const char* name)
|
||||
{
|
||||
void* handle;
|
||||
int unresolved;
|
||||
char* message = "loaded";
|
||||
|
||||
#if DL06_DEBUG_TRACING
|
||||
rtems_rtl_trace_set_mask(RTEMS_RTL_TRACE_ALL);
|
||||
#endif
|
||||
|
||||
printf("\nload: %s\n", name);
|
||||
|
||||
handle = dlopen (name, RTLD_NOW | RTLD_GLOBAL);
|
||||
if (!handle)
|
||||
{
|
||||
printf("dlopen failed: %s\n", dlerror());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (dlinfo (handle, RTLD_DI_UNRESOLVED, &unresolved) < 0)
|
||||
message = "dlinfo error checking unresolved status";
|
||||
else if (unresolved)
|
||||
message = "has unresolved externals";
|
||||
|
||||
printf ("handle: %p %s\n", handle, message);
|
||||
|
||||
return handle;
|
||||
}
|
||||
|
||||
int dl_load_test(void)
|
||||
{
|
||||
void* r1;
|
||||
call_t call;
|
||||
int call_ret;
|
||||
int ret;
|
||||
|
||||
r1 = dl_load_obj("/dl06.rap");
|
||||
if (!r1)
|
||||
return 1;
|
||||
|
||||
#if 0
|
||||
{
|
||||
char* list[] = { "rtl", "list", NULL };
|
||||
rtems_rtl_shell_command (2, list);
|
||||
char* sym[] = { "rtl", "sym", NULL };
|
||||
rtems_rtl_shell_command (2, sym);
|
||||
}
|
||||
#endif
|
||||
|
||||
call = dlsym (r1, "rtems_main");
|
||||
if (call == NULL)
|
||||
{
|
||||
printf("dlsym failed: symbol not found\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
call_ret = call (4, call_args);
|
||||
if (call_ret != 4)
|
||||
{
|
||||
printf("dlsym call failed: ret value bad\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
if (dlclose (r1) < 0)
|
||||
{
|
||||
printf("dlclose o1 failed: %s\n", dlerror());
|
||||
ret = 1;
|
||||
}
|
||||
|
||||
printf ("handle: %p closed\n", r1);
|
||||
|
||||
return ret;
|
||||
}
|
||||
14
testsuites/libtests/dl06/dl-load.h
Normal file
14
testsuites/libtests/dl06/dl-load.h
Normal file
@@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright (c) 2014 Chris Johns <chrisj@rtems.org>. All rights reserved.
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#if !defined(_DL_LOAD_H_)
|
||||
#define _DL_LOAD_H_
|
||||
|
||||
int dl_load_test(void);
|
||||
|
||||
#endif
|
||||
53
testsuites/libtests/dl06/dl06-o1.c
Normal file
53
testsuites/libtests/dl06/dl06-o1.c
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Chris Johns <chrisj@rtems.org>. All rights reserved.
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#include "dl06-o2.h"
|
||||
|
||||
#include <dlfcn.h>
|
||||
#include <math.h>
|
||||
|
||||
#include <rtems/test.h>
|
||||
|
||||
#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
|
||||
|
||||
typedef void (*func1_t)(unsigned short s[7]);
|
||||
|
||||
static void* find_sym(const char* name)
|
||||
{
|
||||
void* sym = dlsym(RTLD_DEFAULT, name);
|
||||
if (sym == NULL)
|
||||
printf("dlsym failed: not found: %s\n", name);
|
||||
return sym;
|
||||
}
|
||||
|
||||
/*
|
||||
* Yes a decl in the source. This is a modules main and I could not find which
|
||||
* header main is defined in.
|
||||
*/
|
||||
int rtems_main (int argc, const char* argv[]);
|
||||
|
||||
int rtems_main (int argc, const char* argv[])
|
||||
{
|
||||
func1_t f1;
|
||||
int arg;
|
||||
double d;
|
||||
unsigned short s[7] = { 12, 34, 56, 78, 90, 13, 57 };
|
||||
|
||||
printf("Loaded module: argc:%d [%s]\n", argc, __FILE__);
|
||||
|
||||
f1 = find_sym ("dl_o2_func1");
|
||||
if (f1 == NULL)
|
||||
return 0;
|
||||
|
||||
f1 (s);
|
||||
|
||||
d = dl_o2_func2 (7.1, 33.0);
|
||||
d = dl_o2_func3 (0.778899);
|
||||
|
||||
return argc;
|
||||
}
|
||||
38
testsuites/libtests/dl06/dl06-o2.c
Normal file
38
testsuites/libtests/dl06/dl06-o2.c
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Chris Johns <chrisj@rtems.org>. All rights reserved.
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#include "dl06-o2.h"
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <math.h>
|
||||
|
||||
#include <rtems/test.h>
|
||||
|
||||
#define printf(...) rtems_printf(&rtems_test_printer, __VA_ARGS__);
|
||||
|
||||
/*
|
||||
* Call function that are not part of the RTEMS kernel base image.
|
||||
*/
|
||||
|
||||
void dl_o2_func1 (unsigned short s[7])
|
||||
{
|
||||
printf("libm: lcong48\n")
|
||||
lcong48 (s);
|
||||
}
|
||||
|
||||
double dl_o2_func2 (double d1, double d2)
|
||||
{
|
||||
printf("libm: atan2\n")
|
||||
return atan2 (d1, d2);
|
||||
}
|
||||
|
||||
double dl_o2_func3 (double d)
|
||||
{
|
||||
printf("libm: tan\n")
|
||||
return tan (d);
|
||||
}
|
||||
16
testsuites/libtests/dl06/dl06-o2.h
Normal file
16
testsuites/libtests/dl06/dl06-o2.h
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright (c) 2018 Chris Johns <chrisj@rtems.org>. All rights reserved.
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#if !defined(DL06_02_H)
|
||||
#define DL06_02_H
|
||||
|
||||
void dl_o2_func1 (unsigned short s[7]);
|
||||
double dl_o2_func2 (double d1, double d2);
|
||||
double dl_o2_func3 (double d);
|
||||
|
||||
#endif
|
||||
20
testsuites/libtests/dl06/dl06.doc
Normal file
20
testsuites/libtests/dl06/dl06.doc
Normal file
@@ -0,0 +1,20 @@
|
||||
# Copyright (c) 2018 Chris Johns <chrisj@rtems.org>
|
||||
#
|
||||
# The license and distribution terms for this file may be
|
||||
# found in the file LICENSE in this distribution or at
|
||||
# http://www.rtems.org/license/LICENSE.
|
||||
#
|
||||
|
||||
This file describes the directives and concepts tested by this test set.
|
||||
|
||||
test set name: dl06
|
||||
|
||||
directives:
|
||||
|
||||
n/a
|
||||
|
||||
concepts:
|
||||
|
||||
+ Create a single RAP for file with 2 object files where one references
|
||||
functions in libm that should never be part of the kernel base image.
|
||||
+ Load the RAP image and executable the math library calls.
|
||||
24
testsuites/libtests/dl06/dl06.scn
Normal file
24
testsuites/libtests/dl06/dl06.scn
Normal file
@@ -0,0 +1,24 @@
|
||||
*** BEGIN OF TEST libdl (RTL) 6 ***
|
||||
*** TEST VERSION: 5.0.0.af6168c6ef19b317c8724ca5950699414d15cf3c-modified
|
||||
*** TEST STATE: EXPECTED-PASS
|
||||
*** TEST BUILD: RTEMS_NETWORKING RTEMS_POSIX_API
|
||||
*** TEST TOOLS: 7.3.0 20180125 (RTEMS 5, RSB 4b3e0f8e3d6998b84a2503dd2e11578989b1672b, Newlib 3.0.0)
|
||||
|
||||
load: /dl06.rap
|
||||
handle: 0x2041ee0 loaded
|
||||
Loaded module: argc:4 [/opt/work/chris/rtems/kernel/rtems.git/c/src/../../testsuites/libtests/dl06/dl06-o1.c]
|
||||
libm: lcong48
|
||||
libm: atan2
|
||||
libm: tan
|
||||
handle: 0x2041ee0 closed
|
||||
|
||||
*** END OF TEST libdl (RTL) 6 ***
|
||||
|
||||
|
||||
*** FATAL ***
|
||||
fatal source: 5 (RTEMS_FATAL_SOURCE_EXIT)
|
||||
fatal code: 0 (0x00000000)
|
||||
RTEMS version: 5.0.0.af6168c6ef19b317c8724ca5950699414d15cf3c-modified
|
||||
RTEMS tools: 7.3.0 20180125 (RTEMS 5, RSB 4b3e0f8e3d6998b84a2503dd2e11578989b1672b, Newlib 3.0.0)
|
||||
executing thread ID: 0x08a010001
|
||||
executing thread name: UI1
|
||||
89
testsuites/libtests/dl06/init.c
Normal file
89
testsuites/libtests/dl06/init.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Copyright (c) 2014 Chris Johns <chrisj@rtems.org>. All rights reserved.
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
* found in the file LICENSE in this distribution or at
|
||||
* http://www.rtems.org/license/LICENSE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "tmacros.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <stdint.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include <rtems/rtl/rtl.h>
|
||||
#include <rtems/untar.h>
|
||||
|
||||
#include "dl-load.h"
|
||||
|
||||
const char rtems_test_name[] = "libdl (RTL) 6";
|
||||
|
||||
/* forward declarations to avoid warnings */
|
||||
static rtems_task Init(rtems_task_argument argument);
|
||||
|
||||
#if DL06_PRE
|
||||
#include "dl06-pre-tar.h"
|
||||
#else
|
||||
#include "dl06-tar.h"
|
||||
#endif
|
||||
|
||||
#define TARFILE_START dl06_tar
|
||||
#define TARFILE_SIZE dl06_tar_size
|
||||
|
||||
static int test(void)
|
||||
{
|
||||
int ret;
|
||||
ret = dl_load_test();
|
||||
if (ret)
|
||||
rtems_test_exit(ret);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void Init(rtems_task_argument arg)
|
||||
{
|
||||
int te;
|
||||
|
||||
TEST_BEGIN();
|
||||
|
||||
te = Untar_FromMemory((void *)TARFILE_START, (size_t)TARFILE_SIZE);
|
||||
if (te != 0)
|
||||
{
|
||||
printf("untar failed: %d\n", te);
|
||||
rtems_test_exit(1);
|
||||
exit (1);
|
||||
}
|
||||
|
||||
test();
|
||||
|
||||
TEST_END();
|
||||
|
||||
rtems_test_exit(0);
|
||||
}
|
||||
|
||||
#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
|
||||
#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
|
||||
|
||||
#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 4
|
||||
|
||||
#define CONFIGURE_MAXIMUM_TASKS 1
|
||||
|
||||
#define CONFIGURE_MINIMUM_TASK_STACK_SIZE (8U * 1024U)
|
||||
|
||||
#define CONFIGURE_EXTRA_TASK_STACKS (8 * 1024)
|
||||
|
||||
#define CONFIGURE_MAXIMUM_SEMAPHORES 1
|
||||
|
||||
#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
|
||||
|
||||
#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
|
||||
#define CONFIGURE_INIT_TASK_ATTRIBUTES (RTEMS_DEFAULT_ATTRIBUTES | RTEMS_FLOATING_POINT)
|
||||
|
||||
#define CONFIGURE_INIT
|
||||
|
||||
#include <rtems/confdefs.h>
|
||||
Reference in New Issue
Block a user