#!/bin/sh
set -eu
export LC_ALL=C.UTF-8
mkfifo /tmp/myfifo
mkdir /tmp/root
ln -s /real /tmp/root/link
mkdir /tmp/root/real
run_testA() {
  echo content >/tmp/foo
  # shellcheck disable=SC2094
  {
    {
      {
        {{ CMD }} --hook-helper /tmp/root root setup '' 1 upload /tmp/foo "$1" </tmp/myfifo 3>&-
        echo $? >&3
        printf '\000\000adios'
      } | {{ CMD }} --hook-listener 1 3>&- >/tmp/myfifo
      echo $?
    } 3>&1
  } | {
    read -r xs1
    [ "$xs1" -eq 0 ]
    read -r xs2
    [ "$xs2" -eq 0 ]
  }
  echo content | diff -u - /tmp/root/real/foo
  rm /tmp/foo
  rm /tmp/root/real/foo
}
run_testA link/foo
run_testA /link/foo
run_testA ///link///foo///
run_testA /././link/././foo/././
run_testA /link/../link/foo
run_testA /link/../../link/foo
run_testA /../../link/foo
rmdir /tmp/root/real
rm /tmp/root/link
rmdir /tmp/root
rm /tmp/myfifo