Blob Blame History Raw
### Empty
{
	type => "tfn",
	name => "normalisePath",
	input => "",
	output => "",
	ret => 0,
},

### Nothing
{
	type => "tfn",
	name => "normalisePath",
	input => "/foo/bar/baz",
	output => "/foo/bar/baz",
	ret => 0,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "/foo/bar\0/baz",
	output => "/foo/bar\0/baz",
	ret => 0,
},

### Basic
{
	type => "tfn",
	name => "normalisePath",
	input => "x",
	output => "x",
	ret => 0,
},
{
	type => "tfn",
	name => "normalisePath",
	input => ".",
	output => "",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "./",
	output => "",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "./..",
	output => "..",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "./../",
	output => "../",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "..",
	output => "..",
	ret => 0,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "../",
	output => "../",
	ret => 0,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "../.",
	output => "..",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => ".././",
	output => "../",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "../..",
	output => "../..",
	ret => 0,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "../../",
	output => "../../",
	ret => 0,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "/dir/foo//bar",
	output => "/dir/foo/bar",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/foo//bar/",
	output => "dir/foo/bar/",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/../foo",
	output => "foo",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/../../foo",
	output => "../foo",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./.././../../foo/bar",
	output => "../../foo/bar",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./.././../../foo/bar/.",
	output => "../../foo/bar",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./.././../../foo/bar/./",
	output => "../../foo/bar/",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./.././../../foo/bar/..",
	output => "../../foo",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./.././../../foo/bar/../",
	output => "../../foo/",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./.././../../foo/bar/",
	output => "../../foo/bar/",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir//.//..//.//..//..//foo//bar",
	output => "../../foo/bar",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir//.//..//.//..//..//foo//bar//",
	output => "../../foo/bar/",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/subdir/subsubdir/subsubsubdir/../../..",
	output => "dir",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./subdir/./subsubdir/./subsubsubdir/../../..",
	output => "dir",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "dir/./subdir/../subsubdir/../subsubsubdir/..",
	output => "dir",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePath",
	input => "/dir/./subdir/../subsubdir/../subsubsubdir/../",
	output => "/dir/",
	ret => 1,
},

### With NUL
{
	type => "tfn",
	name => "normalisePath",
	input => "/./.././../../../../../../../\0/../etc/./passwd",
	output => "/etc/passwd",
	ret => 1,
},