74 lines
1.8 KiB
Bash
74 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
|