#                                                                    -*-perl-*-
$description = "Test the abspath functions.";

$details = "";

run_make_test('
ifneq ($(realpath $(abspath .)),$(CURDIR))
  $(warning .: abs="$(abspath .)" real="$(realpath $(abspath .))" curdir="$(CURDIR)")
endif

ifneq ($(realpath $(abspath ./)),$(CURDIR))
  $(warning ./: abs="$(abspath ./)" real="$(realpath $(abspath ./))" curdir="$(CURDIR)")
endif

ifneq ($(realpath $(abspath .///)),$(CURDIR))
  $(warning .///: abs="$(abspath .///)" real="$(realpath $(abspath .///))" curdir="$(CURDIR)")
endif

ifneq ($(abspath /),/)
  $(warning /: abspath="$(abspath /)")
endif

ifneq ($(abspath ///),/)
  $(warning ///: abspath="$(abspath ///)")
endif

ifneq ($(abspath /.),/)
  $(warning /.: abspath="$(abspath /.)")
endif

ifneq ($(abspath ///.),/)
  $(warning ///.: abspath="$(abspath ///.)")
endif

ifneq ($(abspath /./),/)
  $(warning /./: abspath="$(abspath /./)")
endif

ifneq ($(abspath /.///),/)
  $(warning /.///: abspath="$(abspath /.///)")
endif

ifneq ($(abspath /..),/)
  $(warning /..: abspath="$(abspath /..)")
endif

ifneq ($(abspath ///..),/)
  $(warning ///..: abspath="$(abspath ///..)")
endif

ifneq ($(abspath /../),/)
  $(warning /../: abspath="$(abspath /../)")
endif

ifneq ($(abspath /..///),/)
  $(warning /..///: abspath="$(abspath /..///)")
endif


ifneq ($(abspath /foo/bar/..),/foo)
  $(warning /foo/bar/..: abspath="$(abspath /foo/bar/..)")
endif

ifneq ($(abspath /foo/bar/../../../baz),/baz)
  $(warning /foo/bar/../../../baz: abspath="$(abspath /foo/bar/../../../baz)")
endif

ifneq ($(abspath /foo/bar/../ /..),/foo /)
  $(warning /foo/bar/../ /..: abspath="$(abspath /foo/bar/../ /..)")
endif


.PHONY: all
all: ; @:
',
'',
'');


if ($port_type eq "DOS") {

  #
  #  Some DOS specific tests.
  #
  #  abspath translate backslash to slash.
  #  Mixed backslash and slash as directory
  #  separators are allowed.
  #

$description = "Test the abspath functions with DOS path syntax.";

$details = "";

run_make_test('
ifneq ($(realpath $(abspath .\)),$(CURDIR))
  $(warning .\: abs="$(abspath .\)" real="$(realpath $(abspath .\))" curdir="$(CURDIR)")
endif

ifneq ($(realpath $(abspath .\\\)),$(CURDIR))
  $(warning .\\\: abs="$(abspath .\\\)" real="$(realpath $(abspath .\\\))" curdir="$(CURDIR)")
endif

ifneq ($(abspath \),/)
  $(warning \: abspath="$(abspath \)")
endif

ifneq ($(abspath \\\\\\),/)
  $(warning \\\\\\: abspath="$(abspath \\\\\\)")
endif

ifneq ($(abspath \\.),/)
  $(warning \\.: abspath="$(abspath \\.)")
endif

ifneq ($(abspath ///.),/)
  $(warning ///.: abspath="$(abspath ///.)")
endif

ifneq ($(abspath \\./),/)
  $(warning \\./: abspath="$(abspath \\./)")
endif

ifneq ($(abspath \\.///),/)
  $(warning \\.///: abspath="$(abspath \\.///)")
endif

ifneq ($(abspath \\..),/)
  $(warning \\..: abspath="$(abspath \\..)")
endif

ifneq ($(abspath //\\..),/)
  $(warning //\\..: abspath="$(abspath //\\..)")
endif

ifneq ($(abspath \\../),/)
  $(warning \\../: abspath="$(abspath \\../)")
endif

ifneq ($(abspath \\..///),/)
  $(warning \\..///: abspath="$(abspath \\..///)")
endif


ifneq ($(abspath \\foo\\bar\\..),/foo)
  $(warning \\foo\\bar\\..: abspath="$(abspath \\foo\\bar\\..)")
endif

ifneq ($(abspath a:\\foo\\bar\\..),a:/foo)
  $(warning a:\\foo\\bar\\..: abspath="$(abspath a:\\foo\\bar\\..)")
endif

ifneq ($(abspath a:foo\\bar\\..),a:foo)
  $(warning a:foo\\bar\\..: abspath="$(abspath a:foo\\bar\\..)")
endif

ifneq ($(abspath \\foo\\bar\\..\\..\\..\\baz),/baz)
  $(warning \\foo\\bar\\..\\..\\..\\baz: abspath="$(abspath \\foo\\bar\\..\\..\\..\\baz)")
endif

ifneq ($(abspath a:\\foo\\bar\\..\\..\\..\\baz),a:/baz)
  $(warning a:\\foo\\bar\\..\\..\\..\\baz: abspath="$(abspath a:\\foo\\bar\\..\\..\\..\\baz)")
endif

ifneq ($(abspath a:foo\\bar\\..\\..\\..\\baz),a:baz)
  $(warning a:foo\\bar\\..\\..\\..\\baz: abspath="$(abspath a:foo\\bar\\..\\..\\..\\baz)")
endif

ifneq ($(abspath \\foo\\bar\\..\\ \\..),/foo /)
  $(warning \\foo\\bar\\..\\ \\..: abspath="$(abspath \\foo\\bar\\..\\ \\..)")
endif

ifneq ($(abspath a:\\foo\\bar\\..\\ a:\\..),a:/foo a:/)
  $(warning a:\\foo\\bar\\..\\ a:\\..: abspath="$(abspath a:\\foo\\bar\\..\\ a:\\..)")
endif

ifneq ($(abspath a:foo\\bar\\..\\ a:..),a:foo a:)
  $(warning a:foo\\bar\\..\\ a:..: abspath="$(abspath a:foo\\bar\\..\\ a:..)")
endif

.PHONY: all
all: ; @:
',
'',
'');

}

# This tells the test driver that the perl test script executed properly.
1;
