#!/usr/bin/env bash

. ../common.sh

init "unit test for filename.c"

POST_CLEAN_FILES="$POST_CLEAN_FILES $TD2"

builddir=`cd $top_builddir/src ; /bin/pwd`

TD1=/tmp
TD2=$TD1/test.$USER
TD3=$TD2/dir3
TD4=$TD3/dir4

vdo mkdir -p $TD4 || fatal "Can't mkdir $TD4"
vdo cd $TD4 || fatal "Can't cd to $TD4"

while read fn a1 a2 ; do
    if vdo $builddir/filetest $fn $a1 $a2 ; then pass ; else fail "$fn($a1) != $a2" ; fi
done << EOT
make_absolute /foo/bar /foo/bar
make_absolute /foo /foo
make_absolute / /
make_absolute foo $TD4/foo
make_absolute foo/bar $TD4/foo/bar
make_absolute . $TD4
make_absolute ./foo $TD4/foo
make_absolute ./foo/bar $TD4/foo/bar
make_absolute ./foo/./bar $TD4/foo/bar
make_absolute ./././foo/./bar  $TD4/foo/bar
make_absolute .. $TD3
make_absolute ../foo $TD3/foo
make_absolute ../foo/bar $TD3/foo/bar
make_absolute ../../foo $TD2/foo
make_absolute ../../../foo/bar $TD1/foo/bar
make_absolute ./../.././../foo/bar $TD1/foo/bar
normalise /foo/bar /foo/bar
normalise //foo////bar /foo/bar
normalise / /
normalise foo foo
normalise ./foo foo
normalise ./././foo foo
normalise ./foo/./ foo
normalise foo/bar foo/bar
normalise foo////bar foo/bar
normalise ./foo foo
normalise ./foo/bar foo/bar
normalise ./foo///bar foo/bar
normalise .//foo/bar foo/bar
normalise ././././foo/bar foo/bar
normalise . .
normalise ../foo ../foo
normalise ../foo/bar ../foo/bar
normalise ../foo//bar ../foo/bar
normalise foo/.. .
normalise foo///.. .
normalise foo/../bar/.. .
normalise foo//.././bar/.//.. .
normalise ../../../foo/bar ../../../foo/bar
normalise ./../.././../foo/bar ../../../foo/bar
EOT
