Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions root/core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,3 +34,7 @@ ROOTTEST_ADD_TEST(execStatusBitsCheck
OUTCNV ../html/MakeIndex_convert.sh
OUTREF execStatusBitsCheck.ref
)

ROOTTEST_ADD_TEST(CoreDynPathSetupUNIX
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/test_dynpath_setup.sh ${ROOT_root_CMD}
)
122 changes: 122 additions & 0 deletions root/core/test_dynpath_setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
#! /bin/bash

set -e

mkdir -p rootlibpath_test
cd rootlibpath_test

root="$1"
libdir="$("$root" -b -x -q -l -e 'cout << TROOT::GetLibDir();' | tail -1)"

set_rootrc() {
if [ -n "$1" ]
then
echo "Unix.*.Root.DynamicPath $1" >.rootrc
else
echo "# Unix.*.Root.DynamicPath" >.rootrc
fi
}

get_dynpath() {
cur_dynpath="$("$root" -b -x -q -l -e 'cout << gSystem->GetDynamicPath();' | tail -1)"
}

check_begin() {
case "$cur_dynpath:" in
"$1":*)
;;
*)
echo "dynamic path: ${cur_dynpath}"
echo "dynamic path should start with: $1"
exit 1
;;
esac
}
check_mid() {
case ":$cur_dynpath:" in
*:"$1":*)
;;
*)
echo "dynamic path: ${cur_dynpath}"
echo "dynamic path should contain: $1"
exit 1
;;
esac
}
check_begin_and_mid() {
check_begin "$1"
check_mid "$2"
}


mkdir -p rootlibpath
rootlibpath="$PWD/rootlibpath"
mkdir -p rootrcpath
rootrcpath="$PWD/rootrcpath"
mkdir -p ldpath
ldpath="$PWD/ldpath"


export ROOT_LIBRARY_PATH="$rootlibpath"
set_rootrc "$rootrcpath"
get_dynpath
check_begin_and_mid "$ROOT_LIBRARY_PATH" "$rootrcpath:$libdir"

export ROOT_LIBRARY_PATH="$rootlibpath"
set_rootrc "$libdir:$rootrcpath"
get_dynpath
check_begin_and_mid "$ROOT_LIBRARY_PATH" "$libdir:$rootrcpath"

export ROOT_LIBRARY_PATH="$rootlibpath"
set_rootrc ""
get_dynpath
check_begin_and_mid "$ROOT_LIBRARY_PATH" ".:$libdir"

unset ROOT_LIBRARY_PATH
set_rootrc ""
get_dynpath
check_mid ".:$libdir"


# #########################
# with LD_LIBRARY_PATH & Co

if [ -n "$LD_LIBRARY_PATH" ]
then
LD_LIBRARY_PATH="$ldpath:$LD_LIBRARY_PATH"
else
export LD_LIBRARY_PATH="$ldpath"
fi
if [ -n "$DYLD_LIBRARY_PATH" ]
then
DYLD_LIBRARY_PATH="$ldpath:$DYLD_LIBRARY_PATH"
else
export DYLD_LIBRARY_PATH="$ldpath"
fi
if [ -n "$LIBPATH" ]
then
LIBPATH="$ldpath:$LIBPATH"
else
export LIBPATH="$ldpath"
fi


export ROOT_LIBRARY_PATH="$rootlibpath"
set_rootrc "$rootrcpath"
get_dynpath
check_begin_and_mid "$ROOT_LIBRARY_PATH:$ldpath" "$rootrcpath:$libdir"

export ROOT_LIBRARY_PATH="$rootlibpath"
set_rootrc "$libdir:$rootrcpath"
get_dynpath
check_begin_and_mid "$ROOT_LIBRARY_PATH:$ldpath" "$libdir:$rootrcpath"

export ROOT_LIBRARY_PATH="$rootlibpath"
set_rootrc ""
get_dynpath
check_begin_and_mid "$ROOT_LIBRARY_PATH:$ldpath" ".:$libdir"

unset ROOT_LIBRARY_PATH
set_rootrc ""
get_dynpath
check_begin_and_mid "$ldpath" ".:$libdir"