2021-11-04 12:52:14 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Run the shared library dynamic loading demo program.
|
|
|
|
# This is only expected to work when Mbed TLS is built as a shared library.
|
|
|
|
|
|
|
|
# Copyright The Mbed TLS Contributors
|
2023-11-02 20:47:20 +01:00
|
|
|
# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
|
2021-11-04 12:52:14 +01:00
|
|
|
|
2023-07-25 19:53:04 +02:00
|
|
|
. "${0%/*}/../demo_common.sh"
|
2021-11-04 12:52:14 +01:00
|
|
|
|
2023-07-25 19:53:04 +02:00
|
|
|
msg "Test the dynamic loading of libmbed*"
|
2021-11-26 18:58:05 +01:00
|
|
|
|
2023-07-25 19:53:04 +02:00
|
|
|
program="$programs_dir/test/dlopen"
|
|
|
|
library_dir="$root_dir/library"
|
2021-11-04 12:52:14 +01:00
|
|
|
|
2023-07-25 20:13:53 +02:00
|
|
|
# Skip this test if we don't have a shared library build. Detect this
|
|
|
|
# through the absence of the demo program.
|
|
|
|
if [ ! -e "$program" ]; then
|
|
|
|
msg "$0: this demo requires a shared library build."
|
|
|
|
# Exit with a success status so that this counts as a pass for run_demos.py.
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
2021-11-04 12:52:14 +01:00
|
|
|
# ELF-based Unix-like (Linux, *BSD, Solaris, ...)
|
|
|
|
if [ -n "${LD_LIBRARY_PATH-}" ]; then
|
|
|
|
LD_LIBRARY_PATH="$library_dir:$LD_LIBRARY_PATH"
|
|
|
|
else
|
|
|
|
LD_LIBRARY_PATH="$library_dir"
|
|
|
|
fi
|
|
|
|
export LD_LIBRARY_PATH
|
|
|
|
|
|
|
|
# OSX/macOS
|
|
|
|
if [ -n "${DYLD_LIBRARY_PATH-}" ]; then
|
|
|
|
DYLD_LIBRARY_PATH="$library_dir:$DYLD_LIBRARY_PATH"
|
|
|
|
else
|
|
|
|
DYLD_LIBRARY_PATH="$library_dir"
|
|
|
|
fi
|
|
|
|
export DYLD_LIBRARY_PATH
|
|
|
|
|
2023-07-25 19:53:04 +02:00
|
|
|
msg "Running dynamic loading test program: $program"
|
|
|
|
msg "Loading libraries from: $library_dir"
|
2021-11-04 12:52:14 +01:00
|
|
|
"$program"
|