pmaports/main/ldpath/ldpath_test.sh
Robert Yang 75feba5476
New aport ldpath
Utility to add or remove paths from musl dynamic linker config file
2018-11-27 07:47:11 +01:00

73 lines
1.8 KiB
Bash

#!/bin/sh
testdir=$(mktemp -d)
ld_musl_file="${testdir}/ld-musl-test.path"
lib_path="/usr/lib/foo"
lib_path2="/usr/lib/bar"
# Create ldso config file and add a path to it.
sh ldpath.sh -f "$ld_musl_file" add "$lib_path"
if ! grep -q "$lib_path" "$ld_musl_file"; then
echo "ERROR: Did not find $lib_path in newly created config file."
exit 1
fi
# Add another path to config file.
sh ldpath.sh -f "$ld_musl_file" add "$lib_path2"
if ! grep -q "$lib_path2" "$ld_musl_file"; then
echo "ERROR: Did not find $lib_path2 in config file."
exit 1
fi
# Check that first path is still present
if ! grep -q "$lib_path" "$ld_musl_file"; then
echo "ERROR: Did not find $lib_path in config file."
exit 1
fi
# Remove the first path
sh ldpath.sh -f "$ld_musl_file" remove "$lib_path"
if grep -q "$lib_path" "$ld_musl_file"; then
echo "ERROR: $lib_path was not removed from config file."
exit 1
fi
# Check that second path is still present
if ! grep -q "$lib_path2" "$ld_musl_file"; then
echo "ERROR: $lib_path2 should not have been removed."
exit 1
fi
# Remove the second path
sh ldpath.sh -f "$ld_musl_file" remove "$lib_path2"
if grep -q "$lib_path2" "$ld_musl_file"; then
echo "ERROR: $lib_path2 was not removed from config file."
exit 1
fi
# Don't allow removal of default paths
_default_paths="/lib /usr/local/lib /usr/lib"
for _path in $_default_paths
do
sh ldpath.sh -f "$ld_musl_file" remove "$_path"
if ! grep -q "$_path" "$ld_musl_file"; then
echo "ERROR: Default path $_path should not have been removed."
exit 1
fi
done
# Don't allow duplicates
sh ldpath.sh -f "$ld_musl_file" add "$lib_path"
sh ldpath.sh -f "$ld_musl_file" add "$lib_path"
_count=$(grep -o "$lib_path" "$ld_musl_file" | wc -l)
if [ "$_count" -ne 1 ]; then
echo "ERROR: Multiple entries of $lib_path."
exit 1
fi
# Cleanup
rm -r "$testdir"
exit 0