Commit Graph

844 Commits

Author SHA1 Message Date
Matt Joyce
d24da94f62 newlib01: Edit asserts to check initialization
Edit assert statements in worker thread to check initialization against the
__cleanup member of struct _reent instead of __sdidinit.  This will allow the
removal of sdidinit in a follow up Newlib patch.
2022-02-16 08:25:42 +01:00
Kinsey Moore
b539af865e cpukit: Prevent error with disabled stack checker
When the stack checker is not enabled, the stack checker reporting
function can still be called. This prevents that call from performing a
null memory access in trying to find the high water mark if the stack
checker was never initialized.

This also introduces a test to ensure this call does not cause a crash.

Closes #4588
2022-01-27 13:07:30 -06:00
Sebastian Huber
2145e0c7bf Remove obsolete rtems_gxx_*() implementation
GCC versions prior to 6.1 used a RTEMS thread model based on
rtems_gxx_*() functions. GCC version 6.1 or later uses the
self-contained synchronization objects of Newlib <sys/lock.h> for the
RTEMS thread model.

Remove the obsolete implementation.

Close #3143.
2022-01-27 11:06:46 +01:00
Sebastian Huber
93ebc9da69 libtests/dl10: Enter shell on demand
Use rtems_shell_wait_for_input() similar to other potentially
interactive test programs.
2022-01-14 08:02:38 +01:00
Sebastian Huber
671f126a3a libtests/ofw01: Fix device tree blob alignment
A device tree blob must be aligned on an 8-byte boundary.
2022-01-13 15:15:52 +01:00
Sebastian Huber
00081b30a8 Fix device tree blob alignment
A device tree blob must be aligned on an 8-byte boundary.
2022-01-11 18:01:17 +01:00
Sebastian Huber
963a26c34b libtests/ofw01: Fix wrapped in bsp_fdt_get()
Use the stack pointer to check if we have to return the real device tree
since bsp_fdt_get() may get called before the BSS is cleared to zero.
2022-01-11 16:18:11 +01:00
Christian Mauderer
ffc57e3cf3 untar: Make behavior similar to GNU or BSD tar
RTEMS untar implementation had problems with overwriting or integrating
archives into existing directory structures. This patch adapts the
behavior to mimic that of a GNU tar or BSD tar and extends the tar01
test to check for the behavior. That is:

* If a directory structure exists, the files from the archive will be
  integrated. Existing files are overwritten.

* If a file exists and the archive contains a directory with the same
  name, the file is removed and a directory is created. In the above
  example: if l1/l2 is a file it will be overwritten with a new
  directory.

* If a directory exists and the archive contains a file with the same
  name, the directory will be replaced if it is empty. If it contains
  files, the result is an error.

* An archive also can contain only a file without the parent
  directories. If in that case one of the parent directories exists as a
  file extracting the archive results in an error. In the example: if
  l1/l2 is a file and the archive doesn't contain the directories but
  only the file l1/l2/x.txt that would be an error.

* In case of an error, it is possible that the archive has been
  partially extracted.

Closes #4568
2021-12-09 08:23:47 +01:00
Sebastian Huber
d7205f0083 libc: Optimize malloc() initialization
The BSPs provide memory for the separate C Program Heap initialization
via _Memory_Get().  Most BSPs provide exactly one memory area.  Only two
BSPs provide more than one memory area (arm/altera-cyclone-v and
bsps/powerpc/mpc55xxevb).  Only if more than one memory area is
provided, there is a need to use _Heap_Extend().  Provide two
implementations to initialize the separate C Program Heap and let the
BSP select one of the implementations based on the number of provided
memory areas.  This gets rid of a dependency on _Heap_Extend().  It
also avoids dead code sections for most BSPs.

Change licence to BSD-2-Clause according to file history.

Update #3053.
2021-11-30 08:33:12 +01:00
Sebastian Huber
9b6362da71 rtems: Use RTEMS_WHO_AM_I for rtems_task_ident() 2021-11-18 19:59:14 +01:00
zack leung
19c101281a libtests/calloc.c: Fix reported memory leak
This fix came from Code Inspector, flagged by one of the analysis that
was done.

This test code is compiled only but better to address the issues so
future static analysis reports will not include it.
2021-11-03 08:39:12 -05:00
Sebastian Huber
db8f598d56 build: Remove old build system
Close #3250.
Close #4081.
2021-09-21 07:39:09 +02:00
Christian Mauderer
5bb5e01356 i2c: Add non blocking read / write
This adds the possibility to open an I2C bus with O_NONBLOCK (or set it
later via fcntl) to get non-blocking transmissions. This means that if
the bus is busy, a read, write or transfer ioctl will return with a
EAGAIN errno.
2021-06-22 13:51:17 +02:00
Vijay Kumar Banerjee
a5fd2935b7 testsuites: Remove telnetd01
telnetd01 test cannot be run without a network stack, so this test is being
moved to the rtems-net-legacy repository.
2021-05-20 17:52:37 -06:00
Sebastian Huber
2c5199bb04 Return NULL for zero size allocations
In POSIX, zero size memory allocations are implementation-defined
behaviour.  The implementation has two options:

https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html

https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html

Linux and FreeBSD return a unique pointer for zero size memory
allocations.   Return NULL on RTEMS to more likely catch the use of a
zero size memory area by erroneous applications.

Update #4390.
2021-05-06 08:03:58 +02:00
Sebastian Huber
d692c62dfb Make zero size allocation result consistent
The zero size allocations had no consistent behaviour in RTEMS.  For
example, malloc( 0 ) returned NULL and posix_memalign( &p, align, 0 )
returned in p a unique pointer (or NULL if no memory is available).  In
POSIX, zero size memory allocations are implementation-defined
behaviour.  The implementation has two options:

https://pubs.opengroup.org/onlinepubs/9699919799/functions/malloc.html

https://pubs.opengroup.org/onlinepubs/9699919799/functions/posix_memalign.html

Linux and FreeBSD return a unique pointer for zero size memory
allocations.   Use this approach for RTEMS as well throughout the memory
allocation directives

Close #4390.
2021-05-04 09:37:06 +02:00
Sebastian Huber
5b97821bc8 libtest: Fix use of flexible array member
Flexible array members must not appear in the middle of a structure.
2021-05-03 06:58:53 +02:00
Vijay Kumar Banerjee
e29d5cd01d Makefile.am: Remove legacy networking files 2021-04-26 07:59:08 -06:00
Sebastian Huber
51defd9274 Fix calloc() behaviour in case of overflow
The multiplication to calculate the length of the memory area to
allocate may overflow.  Return NULL in case of an overflow.

Close #4389.
2021-04-20 20:33:03 +02:00
Vijay Kumar Banerjee
650ac70066 Revert "cpukit: Remove telnetd"
This reverts commit 3299dda245.
2021-04-13 11:57:21 -06:00
Vijay Kumar Banerjee
df6d765c3a testsuites: Remove all legacy networking tests
Update #3850
2021-04-07 16:15:39 -06:00
Vijay Kumar Banerjee
3299dda245 cpukit: Remove telnetd
Update #3850
2021-04-07 16:15:39 -06:00
Vijay Kumar Banerjee
3dca9ed92b testsuites/libtests: Remove networking01
Update #3850
2021-04-07 16:15:38 -06:00
Sebastian Huber
b3364fc6cb libtests/block14: Fix warning
Fix warning:

testsuites/libtests/block14/init.c:198:8: warning: 'sc' may be used
  uninitialized in this function [-Wmaybe-uninitialized]

Update #3689.
2021-04-07 06:41:09 +02:00
Jiri Gaisler
4f12a1e365 Restore FDT in ofw01 to avoid test timeout on RISCV 2021-03-30 16:34:04 +02:00
Christian Mauderer
6ae79e6df6 libblock: Add rtems_bdbuf_peek()
Adds a peek function that allows (for example) a file system to suggest
the next blocks that should be used for read ahead. This can increase
the read speed of fragmented files.

Update #3689
2021-03-26 14:25:38 +01:00
Sebastian Huber
c96644e873 libtest: Print SHA256 hash in base64url 2021-02-26 09:10:09 +01:00
Sebastian Huber
74eff26c1d libtest: Report target hash
Update #4267.
2021-02-26 09:10:09 +01:00
G S Niteesh Babu
f867e7b6f4 libtests/ofw01: Added a test for RTEMS OFW
This commit adds a basic test that tests all the implemented
RTEMS OFW functions.
2020-12-27 10:05:09 +01:00
Sebastian Huber
eae22cc03e libtest: Make test case allocator configurable 2020-11-19 08:39:02 +01:00
Frank Kühndel
0007d65f72 testsuits/dl10 : Prototype missing
Fix a compiler warning about a missing prototype.

If you wonder why the function name is not `static`:
The code in the file only serves a test where the dynamic object loader
(aka dlopen()) should handle duplicated symbols in an archive.

testsuites/libtests/dl10/dl10-o6.c:14:5: warning: no previous prototype
for 'rtems_main_o5' [-Wmissing-prototypes]
       14 | int rtems_main_o5 (void)
          |     ^~~~~~~~~~~~~
2020-10-10 15:03:14 +02:00
Chris Johns
558a19d3ad testsuite/rcxx01: Add examples for use in the User manual 2020-10-09 16:45:24 +11:00
Chris Johns
cf95826089 cpukit/librcxx: Add a C++ thread interface with attributes 2020-10-08 11:01:59 +11:00
Sebastian Huber
2da7e94fe5 libtests/sha: Fix test if -O0 is used 2020-09-30 13:01:45 +02:00
Sebastian Huber
4647789820 irqs01/smpirqs01: New tests
Close #4034.
2020-09-14 07:11:40 +02:00
Sebastian Huber
c728948434 libtest: Add T_push_plan() and T_pop_plan()
Update #3199.
2020-08-18 07:08:51 +02:00
Sebastian Huber
72960bc7d4 libtest: Change T_step() and T_assert_step()
Normally, the expected test step must be a compile time constant.  Allow
variable expected test steps for the T_step() and T_assert_step().  This
can be used for parameterized test loops with individual fixtures.

Remove the ability to use custom failure messages due to some
implementation constraints.

Update #3199.
2020-08-18 07:08:51 +02:00
Sebastian Huber
5383d4db04 libtest: Add fixture steps
Support a new test plan for each nested fixture.

Update #3199.
2020-08-18 07:08:51 +02:00
Sebastian Huber
5a8114c6c5 libtest: Change fixture scope method
Return the produced character count.  There is no need for a NUL
termination.

Update #3199.
2020-08-18 07:08:51 +02:00
Aschref Ben Thabet
5d7ab6bd21 libtests/dl10: Delete unused functions 2020-08-11 09:49:02 +02:00
Sebastian Huber
c1354f0514 libtest: Add T_thread_switch_record()
Add support to record thread switch events.  This can be used to check
that a blocking operation results in the expected sequence of thread
switches.

Update #3199.
2020-08-11 08:03:47 +02:00
Sebastian Huber
32f1f747cc libtest: Fix T_interrupt_test() in SMP configs
Update #3199.
2020-08-06 19:15:57 +02:00
Sebastian Huber
cc3fd8fcf1 libtest: Add T_interrupt_test()
Update #3199.
2020-07-23 09:27:47 +02:00
Sebastian Huber
d702c9f47d libtest: Make check message optional
This macro magic is in line with C11 and C++11, but limits the maximum
count of arguments.

Update #3199.
2020-07-23 09:27:47 +02:00
Sebastian Huber
cb3c6bdc0f libtest: Add push/pop fixture support
Update #3199.
2020-07-23 09:27:47 +02:00
Sebastian Huber
6b27e3251e libtest: Support custom scope messages via fixture
Update #3199.
2020-07-23 09:27:47 +02:00
Sebastian Huber
361404e87d libtest: Move <t.h> to <rtems/test.h>
Update #3199.
2020-07-23 09:27:45 +02:00
Sebastian Huber
9de8d61a9a libtest: <rtems/test.h> to <rtems/test-info.h>
Rename this header file to later move <t.h> to <rtems/test.h>.  The main
feature provided by <rtems/test-info.h> is the output of standard test
information which is consumed by the RTEMS Tester.

Update #3199.
2020-07-23 09:27:10 +02:00
Sebastian Huber
ea2d9237fc libtests/tar01: Remove files of tar01.tar archive
Update #3968.
2020-05-08 15:12:40 +02:00
Sebastian Huber
ef9517b7d5 libtests/tar0[12]: Add tar archive
Do not generate the test tar archive on the host computer since not all
file systems support symbolic links.

Close #3968.
2020-05-07 12:31:56 +02:00