aboutsummaryrefslogtreecommitdiff
path: root/tests/functional/plugins.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/plugins.sh')
-rw-r--r--tests/functional/plugins.sh16
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