diff options
Diffstat (limited to 'tests/functional/plugins.sh')
-rw-r--r-- | tests/functional/plugins.sh | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/tests/functional/plugins.sh b/tests/functional/plugins.sh index baf71a362..491b933b7 100644 --- a/tests/functional/plugins.sh +++ b/tests/functional/plugins.sh @@ -4,6 +4,20 @@ if [[ $BUILD_SHARED_LIBS != 1 ]]; then skipTest "Plugins are not supported" fi -res=$(nix --option setting-set true --option plugin-files $PWD/plugins/libplugintest* eval --expr builtins.anotherNull) +res=$(nix --option setting-set true --option plugin-files $PWD/plugins/libplugintest.* eval --expr builtins.anotherNull) [ "$res"x = "nullx" ] + +# Plugin load failing due to missing symbols +res=$(nix --option plugin-files $PWD/plugins/libplugintestfail.* eval --expr '1234 + 5' 2>&1) +# We expect this to succeed evaluating +echo "$res" | grep 1239 >/dev/null +# On Linux, we expect this to print some failure of dlopen. +# Only on Linux do we expect for sure that -z now is set on the .so file, so it +# will definitely fail to load instead of lazy loading (and thus not hitting +# the missing symbol). +# FIXME(jade): does there exist an equivalent of -z now on macOS that eluded us +# in search? +if [[ "$(uname -s)" == Linux ]]; then + echo "$res" | grep "could not dynamically open plugin file" >/dev/null +fi |