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

### Nothing but switch slashes
{
	type => "tfn",
	name => "normalisePathWin",
	input => "\\foo\\bar\\baz",
	output => "/foo/bar/baz",
	ret => 1,
},
{
	type => "tfn",
	name => "normalisePathWin",
	input => "\\foo\\bar\0\\baz",
	output => "/foo/bar\0/baz",
	ret => 1,
},

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

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