#!/bin/sh
#
# mockup ldd for unit tests of App::LXC::Container:
#
# Author: Thomas Dorner
# Copyright (C) 2023-2023 by Thomas Dorner

Die() { echo "${0##*/}: $*" >&2; exit 2; }

[ $# -eq 1 ]  ||  Die 'missing or surplus parameter(s)'

case $1 in
    FIXME:delete/bin/ls)
	bad_lib="${0%mockup/ldd}tmp/usr/libbad.so.0 (0x12345678)"
	cat <<EOF
	linux-vdso.so.1 (0x00007ffc8e988000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x7f5c5f055000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5c5ee74000)
	libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x7f5c5edda000)
	libbad.so.0 => $bad_lib
	/lib64/ld-linux-x86-64.so.2 (0x00007f5c5f0d3000)
EOF
	;;
    /usr/lib/x86_64-linux-gnu/libc.so.6)
	cat <<EOF
	/lib64/ld-linux-x86-64.so.2 (0x00007f4bd6676000)
	linux-vdso.so.1 (0x00007ffeb5bb9000)
EOF
	;;
    */t/tmp/usr/bin/3ls)
	bad_lib="${0%mockup/ldd}tmp/usr/libbad.so.0 (0x12345678)"
	cat <<EOF
	libbad.so.0 => $bad_lib
EOF
	;;
    */t/tmp/home/fake-lib)
	echo '	not a dynamic executable'
	;;
    *)
	Die "unexpected file '$1'"
esac
