mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2026-03-20 11:11:08 +01:00
Add smoke test for availability of some Unix functions
The goal isn't to do any functional testing, but to have a simple diagnostic if some Unix platform function isn't available, and to have a record of success in the outcome file. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
12
tests/suites/test_suite_platform_unix.data
Normal file
12
tests/suites/test_suite_platform_unix.data
Normal file
@@ -0,0 +1,12 @@
|
||||
<unistd.h> smoke test
|
||||
unistd_available:
|
||||
|
||||
# At the time of writing, we don't actually use CLOCK_REALTIME.
|
||||
# But it's the only clock that's guaranteed by POSIX.
|
||||
clock_gettime(CLOCK_REALTIME) smoke test
|
||||
clock_gettime_available:CLOCK_REALTIME
|
||||
|
||||
# Used for mbedtls_ms_time() on platforms where we don't think
|
||||
# CLOCK_BOOTTIME is available.
|
||||
clock_gettime(CLOCK_MONOTONIC) smoke test
|
||||
clock_gettime_available:CLOCK_MONOTONIC
|
||||
45
tests/suites/test_suite_platform_unix.function
Normal file
45
tests/suites/test_suite_platform_unix.function
Normal file
@@ -0,0 +1,45 @@
|
||||
/* BEGIN_HEADER */
|
||||
/* Test access to the Unix primitives used in platform_util.c and elsewhere.
|
||||
* We aren't testing that they work, just getting an easy-to-understand
|
||||
* diagnostic if they aren't available.
|
||||
* (There is a separate test suite for the platform_util.h interfacces.)
|
||||
*/
|
||||
|
||||
#include <mbedtls/platform_util.h>
|
||||
#include <mbedtls/platform.h>
|
||||
#include "common.h"
|
||||
|
||||
#if defined(MBEDTLS_PLATFORM_IS_UNIXLIKE)
|
||||
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#endif /* defined(MBEDTLS_PLATFORM_IS_UNIXLIKE) */
|
||||
|
||||
/* END_HEADER */
|
||||
|
||||
/* Note: we can't make the whole test suite depend on
|
||||
* MBEDTLS_PLATFORM_IS_UNIXLIKE, because file-level dependencies can only
|
||||
* come from build_info.h, platform.h or some test helper headers, not
|
||||
* from internal macros. */
|
||||
/* BEGIN_DEPENDENCIES
|
||||
* END_DEPENDENCIES */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_PLATFORM_IS_UNIXLIKE */
|
||||
void unistd_available()
|
||||
{
|
||||
pid_t pid = getpid();
|
||||
TEST_LE_S(1, pid);
|
||||
}
|
||||
/* END_CASE */
|
||||
|
||||
/* BEGIN_CASE depends_on:MBEDTLS_PLATFORM_IS_UNIXLIKE */
|
||||
void clock_gettime_available(int clockid)
|
||||
{
|
||||
struct timespec ts = { 0, 0 };
|
||||
memset(&ts, 0, sizeof(ts));
|
||||
int ret = clock_gettime(clockid, &ts);
|
||||
TEST_ASSERT_ERRNO(ret == 0);
|
||||
TEST_LE_S(1, ts.tv_sec);
|
||||
}
|
||||
/* END_CASE */
|
||||
Reference in New Issue
Block a user