📄 spec.t
字号:
#!/usr/bin/perl -wuse Test;# Grab all of the plain routines from File::Specuse File::Spec @File::Spec::EXPORT_OK ;require File::Spec::Unix ;require File::Spec::Win32 ;require Cwd;eval { require VMS::Filespec ;} ;my $skip_exception = "Install VMS::Filespec (from vms/ext)" ;if ( $@ ) { # Not pretty, but it allows testing of things not implemented soley # on VMS. It might be better to change File::Spec::VMS to do this, # making it more usable when running on (say) Unix but working with # VMS paths. eval qq- sub File::Spec::VMS::vmsify { die "$skip_exception" } sub File::Spec::VMS::unixify { die "$skip_exception" } sub File::Spec::VMS::vmspath { die "$skip_exception" } - ; $INC{"VMS/Filespec.pm"} = 1 ;}require File::Spec::VMS ;require File::Spec::OS2 ;require File::Spec::Mac ;require File::Spec::Epoc ;require File::Spec::Cygwin ;# $root is only needed by Mac OS tests; these particular# tests are skipped on other OSsmy $root = '';if ($^O eq 'MacOS') { $root = File::Spec::Mac->rootdir();}# Each element in this array is a single test. Storing them this way makes# maintenance easy, and should be OK since perl should be pretty functional# before these tests are run.@tests = (# [ Function , Expected , Platform ][ "Unix->case_tolerant()", '0' ],[ "Unix->catfile('a','b','c')", 'a/b/c' ],[ "Unix->catfile('a','b','./c')", 'a/b/c' ],[ "Unix->catfile('./a','b','c')", 'a/b/c' ],[ "Unix->catfile('c')", 'c' ],[ "Unix->catfile('./c')", 'c' ],[ "Unix->splitpath('file')", ',,file' ],[ "Unix->splitpath('/d1/d2/d3/')", ',/d1/d2/d3/,' ],[ "Unix->splitpath('d1/d2/d3/')", ',d1/d2/d3/,' ],[ "Unix->splitpath('/d1/d2/d3/.')", ',/d1/d2/d3/.,' ],[ "Unix->splitpath('/d1/d2/d3/..')", ',/d1/d2/d3/..,' ],[ "Unix->splitpath('/d1/d2/d3/.file')", ',/d1/d2/d3/,.file' ],[ "Unix->splitpath('d1/d2/d3/file')", ',d1/d2/d3/,file' ],[ "Unix->splitpath('/../../d1/')", ',/../../d1/,' ],[ "Unix->splitpath('/././d1/')", ',/././d1/,' ],[ "Unix->catpath('','','file')", 'file' ],[ "Unix->catpath('','/d1/d2/d3/','')", '/d1/d2/d3/' ],[ "Unix->catpath('','d1/d2/d3/','')", 'd1/d2/d3/' ],[ "Unix->catpath('','/d1/d2/d3/.','')", '/d1/d2/d3/.' ],[ "Unix->catpath('','/d1/d2/d3/..','')", '/d1/d2/d3/..' ],[ "Unix->catpath('','/d1/d2/d3/','.file')", '/d1/d2/d3/.file' ],[ "Unix->catpath('','d1/d2/d3/','file')", 'd1/d2/d3/file' ],[ "Unix->catpath('','/../../d1/','')", '/../../d1/' ],[ "Unix->catpath('','/././d1/','')", '/././d1/' ],[ "Unix->catpath('d1','d2/d3/','')", 'd2/d3/' ],[ "Unix->catpath('d1','d2','d3/')", 'd2/d3/' ],[ "Unix->splitdir('')", '' ],[ "Unix->splitdir('/d1/d2/d3/')", ',d1,d2,d3,' ],[ "Unix->splitdir('d1/d2/d3/')", 'd1,d2,d3,' ],[ "Unix->splitdir('/d1/d2/d3')", ',d1,d2,d3' ],[ "Unix->splitdir('d1/d2/d3')", 'd1,d2,d3' ],[ "Unix->catdir()", '' ],[ "Unix->catdir('/')", '/' ],[ "Unix->catdir('','d1','d2','d3','')", '/d1/d2/d3' ],[ "Unix->catdir('d1','d2','d3','')", 'd1/d2/d3' ],[ "Unix->catdir('','d1','d2','d3')", '/d1/d2/d3' ],[ "Unix->catdir('d1','d2','d3')", 'd1/d2/d3' ],[ "Unix->catdir('/','d2/d3')", '/d2/d3' ],[ "Unix->canonpath('///../../..//./././a//b/.././c/././')", '/a/b/../c' ],[ "Unix->canonpath('')", '' ],# rt.perl.org 27052[ "Unix->canonpath('a/../../b/c')", 'a/../../b/c' ],[ "Unix->canonpath('/.')", '/' ],[ "Unix->canonpath('/./')", '/' ],[ "Unix->canonpath('/a/./')", '/a' ],[ "Unix->canonpath('/a/.')", '/a' ],[ "Unix->canonpath('/../../')", '/' ],[ "Unix->canonpath('/../..')", '/' ],[ "Unix->abs2rel('/t1/t2/t3','/t1/t2/t3')", '.' ],[ "Unix->abs2rel('/t1/t2/t4','/t1/t2/t3')", '../t4' ],[ "Unix->abs2rel('/t1/t2','/t1/t2/t3')", '..' ],[ "Unix->abs2rel('/t1/t2/t3/t4','/t1/t2/t3')", 't4' ],[ "Unix->abs2rel('/t4/t5/t6','/t1/t2/t3')", '../../../t4/t5/t6' ],#[ "Unix->abs2rel('../t4','/t1/t2/t3')", '../t4' ],[ "Unix->abs2rel('/','/t1/t2/t3')", '../../..' ],[ "Unix->abs2rel('///','/t1/t2/t3')", '../../..' ],[ "Unix->abs2rel('/.','/t1/t2/t3')", '../../..' ],[ "Unix->abs2rel('/./','/t1/t2/t3')", '../../..' ],#[ "Unix->abs2rel('../t4','/t1/t2/t3')", '../t4' ],[ "Unix->abs2rel('/t1/t2/t3', '/')", 't1/t2/t3' ],[ "Unix->abs2rel('/t1/t2/t3', '/t1')", 't2/t3' ],[ "Unix->abs2rel('t1/t2/t3', 't1')", 't2/t3' ],[ "Unix->abs2rel('t1/t2/t3', 't4')", '../t1/t2/t3' ],[ "Unix->rel2abs('t4','/t1/t2/t3')", '/t1/t2/t3/t4' ],[ "Unix->rel2abs('t4/t5','/t1/t2/t3')", '/t1/t2/t3/t4/t5' ],[ "Unix->rel2abs('.','/t1/t2/t3')", '/t1/t2/t3' ],[ "Unix->rel2abs('..','/t1/t2/t3')", '/t1/t2/t3/..' ],[ "Unix->rel2abs('../t4','/t1/t2/t3')", '/t1/t2/t3/../t4' ],[ "Unix->rel2abs('/t1','/t1/t2/t3')", '/t1' ],[ "Win32->case_tolerant()", '1' ],[ "Win32->rootdir()", '\\' ],[ "Win32->splitpath('file')", ',,file' ],[ "Win32->splitpath('\\d1/d2\\d3/')", ',\\d1/d2\\d3/,' ],[ "Win32->splitpath('d1/d2\\d3/')", ',d1/d2\\d3/,' ],[ "Win32->splitpath('\\d1/d2\\d3/.')", ',\\d1/d2\\d3/.,' ],[ "Win32->splitpath('\\d1/d2\\d3/..')", ',\\d1/d2\\d3/..,' ],[ "Win32->splitpath('\\d1/d2\\d3/.file')", ',\\d1/d2\\d3/,.file' ],[ "Win32->splitpath('\\d1/d2\\d3/file')", ',\\d1/d2\\d3/,file' ],[ "Win32->splitpath('d1/d2\\d3/file')", ',d1/d2\\d3/,file' ],[ "Win32->splitpath('C:\\d1/d2\\d3/')", 'C:,\\d1/d2\\d3/,' ],[ "Win32->splitpath('C:d1/d2\\d3/')", 'C:,d1/d2\\d3/,' ],[ "Win32->splitpath('C:\\d1/d2\\d3/file')", 'C:,\\d1/d2\\d3/,file' ],[ "Win32->splitpath('C:d1/d2\\d3/file')", 'C:,d1/d2\\d3/,file' ],[ "Win32->splitpath('C:\\../d2\\d3/file')", 'C:,\\../d2\\d3/,file' ],[ "Win32->splitpath('C:../d2\\d3/file')", 'C:,../d2\\d3/,file' ],[ "Win32->splitpath('\\../..\\d1/')", ',\\../..\\d1/,' ],[ "Win32->splitpath('\\./.\\d1/')", ',\\./.\\d1/,' ],[ "Win32->splitpath('\\\\node\\share\\d1/d2\\d3/')", '\\\\node\\share,\\d1/d2\\d3/,' ],[ "Win32->splitpath('\\\\node\\share\\d1/d2\\d3/file')", '\\\\node\\share,\\d1/d2\\d3/,file' ],[ "Win32->splitpath('\\\\node\\share\\d1/d2\\file')", '\\\\node\\share,\\d1/d2\\,file' ],[ "Win32->splitpath('file',1)", ',file,' ],[ "Win32->splitpath('\\d1/d2\\d3/',1)", ',\\d1/d2\\d3/,' ],[ "Win32->splitpath('d1/d2\\d3/',1)", ',d1/d2\\d3/,' ],[ "Win32->splitpath('\\\\node\\share\\d1/d2\\d3/',1)", '\\\\node\\share,\\d1/d2\\d3/,' ],[ "Win32->catpath('','','file')", 'file' ],[ "Win32->catpath('','\\d1/d2\\d3/','')", '\\d1/d2\\d3/' ],[ "Win32->catpath('','d1/d2\\d3/','')", 'd1/d2\\d3/' ],[ "Win32->catpath('','\\d1/d2\\d3/.','')", '\\d1/d2\\d3/.' ],[ "Win32->catpath('','\\d1/d2\\d3/..','')", '\\d1/d2\\d3/..' ],[ "Win32->catpath('','\\d1/d2\\d3/','.file')", '\\d1/d2\\d3/.file' ],[ "Win32->catpath('','\\d1/d2\\d3/','file')", '\\d1/d2\\d3/file' ],[ "Win32->catpath('','d1/d2\\d3/','file')", 'd1/d2\\d3/file' ],[ "Win32->catpath('C:','\\d1/d2\\d3/','')", 'C:\\d1/d2\\d3/' ],[ "Win32->catpath('C:','d1/d2\\d3/','')", 'C:d1/d2\\d3/' ],[ "Win32->catpath('C:','\\d1/d2\\d3/','file')", 'C:\\d1/d2\\d3/file' ],[ "Win32->catpath('C:','d1/d2\\d3/','file')", 'C:d1/d2\\d3/file' ],[ "Win32->catpath('C:','\\../d2\\d3/','file')", 'C:\\../d2\\d3/file' ],[ "Win32->catpath('C:','../d2\\d3/','file')", 'C:../d2\\d3/file' ],[ "Win32->catpath('','\\../..\\d1/','')", '\\../..\\d1/' ],[ "Win32->catpath('','\\./.\\d1/','')", '\\./.\\d1/' ],[ "Win32->catpath('\\\\node\\share','\\d1/d2\\d3/','')", '\\\\node\\share\\d1/d2\\d3/' ],[ "Win32->catpath('\\\\node\\share','\\d1/d2\\d3/','file')", '\\\\node\\share\\d1/d2\\d3/file' ],[ "Win32->catpath('\\\\node\\share','\\d1/d2\\','file')", '\\\\node\\share\\d1/d2\\file' ],[ "Win32->splitdir('')", '' ],[ "Win32->splitdir('\\d1/d2\\d3/')", ',d1,d2,d3,' ],[ "Win32->splitdir('d1/d2\\d3/')", 'd1,d2,d3,' ],[ "Win32->splitdir('\\d1/d2\\d3')", ',d1,d2,d3' ],[ "Win32->splitdir('d1/d2\\d3')", 'd1,d2,d3' ],[ "Win32->catdir()", '' ],[ "Win32->catdir('')", '\\' ],[ "Win32->catdir('/')", '\\' ],[ "Win32->catdir('/', '../')", '\\' ],[ "Win32->catdir('/', '..\\')", '\\' ],[ "Win32->catdir('\\', '../')", '\\' ],[ "Win32->catdir('\\', '..\\')", '\\' ],[ "Win32->catdir('//d1','d2')", '\\\\d1\\d2' ],[ "Win32->catdir('\\d1\\','d2')", '\\d1\\d2' ],[ "Win32->catdir('\\d1','d2')", '\\d1\\d2' ],[ "Win32->catdir('\\d1','\\d2')", '\\d1\\d2' ],[ "Win32->catdir('\\d1','\\d2\\')", '\\d1\\d2' ],[ "Win32->catdir('','/d1','d2')", '\\\\d1\\d2' ],[ "Win32->catdir('','','/d1','d2')", '\\\\\\d1\\d2' ],[ "Win32->catdir('','//d1','d2')", '\\\\\\d1\\d2' ],[ "Win32->catdir('','','//d1','d2')", '\\\\\\\\d1\\d2' ],[ "Win32->catdir('','d1','','d2','')", '\\d1\\d2' ],[ "Win32->catdir('','d1','d2','d3','')", '\\d1\\d2\\d3' ],[ "Win32->catdir('d1','d2','d3','')", 'd1\\d2\\d3' ],[ "Win32->catdir('','d1','d2','d3')", '\\d1\\d2\\d3' ],[ "Win32->catdir('d1','d2','d3')", 'd1\\d2\\d3' ],[ "Win32->catdir('A:/d1','d2','d3')", 'A:\\d1\\d2\\d3' ],[ "Win32->catdir('A:/d1','d2','d3','')", 'A:\\d1\\d2\\d3' ],#[ "Win32->catdir('A:/d1','B:/d2','d3','')", 'A:\\d1\\d2\\d3' ],[ "Win32->catdir('A:/d1','B:/d2','d3','')", 'A:\\d1\\B:\\d2\\d3' ],[ "Win32->catdir('A:/')", 'A:\\' ],[ "Win32->catdir('\\', 'foo')", '\\foo' ],[ "Win32->catfile('a','b','c')", 'a\\b\\c' ],[ "Win32->catfile('a','b','.\\c')", 'a\\b\\c' ],[ "Win32->catfile('.\\a','b','c')", 'a\\b\\c' ],[ "Win32->catfile('c')", 'c' ],[ "Win32->catfile('.\\c')", 'c' ],[ "Win32->canonpath('')", '' ],[ "Win32->canonpath('a:')", 'A:' ],[ "Win32->canonpath('A:f')", 'A:f' ],[ "Win32->canonpath('A:/')", 'A:\\' ],# rt.perl.org 27052[ "Win32->canonpath('a\\..\\..\\b\\c')", '..\\b\\c' ],[ "Win32->canonpath('//a\\b//c')", '\\\\a\\b\\c' ],[ "Win32->canonpath('/a/..../c')", '\\a\\....\\c' ],[ "Win32->canonpath('//a/b\\c')", '\\\\a\\b\\c' ],[ "Win32->canonpath('////')", '\\\\\\' ],[ "Win32->canonpath('//')", '\\' ],[ "Win32->canonpath('/.')", '\\.' ],[ "Win32->canonpath('//a/b/../../c')", '\\\\a\\b\\c' ],[ "Win32->canonpath('//a/b/c/../d')", '\\\\a\\b\\d' ],[ "Win32->canonpath('//a/b/c/../../d')",'\\\\a\\b\\d' ],[ "Win32->canonpath('//a/b/c/.../d')", '\\\\a\\b\\d' ],[ "Win32->canonpath('/a/b/c/../../d')", '\\a\\d' ],[ "Win32->canonpath('/a/b/c/.../d')", '\\a\\d' ],[ "Win32->canonpath('\\../temp\\')", '\\temp' ],[ "Win32->canonpath('\\../')", '\\' ],[ "Win32->canonpath('\\..\\')", '\\' ],[ "Win32->canonpath('/../')", '\\' ],[ "Win32->canonpath('/..\\')", '\\' ],[ "Win32->canonpath('d1/../foo')", 'foo' ],[ "Win32->can('_cwd')", '/CODE/' ],# FakeWin32 subclass (see below) just sets CWD to C:\one\two and getdcwd('D') to D:\alpha\beta[ "FakeWin32->abs2rel('/t1/t2/t3','/t1/t2/t3')", '.' ],[ "FakeWin32->abs2rel('/t1/t2/t4','/t1/t2/t3')", '..\\t4' ],[ "FakeWin32->abs2rel('/t1/t2','/t1/t2/t3')", '..' ],[ "FakeWin32->abs2rel('/t1/t2/t3/t4','/t1/t2/t3')", 't4' ],[ "FakeWin32->abs2rel('/t4/t5/t6','/t1/t2/t3')", '..\\..\\..\\t4\\t5\\t6' ],[ "FakeWin32->abs2rel('../t4','/t1/t2/t3')", '..\\..\\..\\one\\t4' ], # Uses _cwd()[ "FakeWin32->abs2rel('/','/t1/t2/t3')", '..\\..\\..' ],[ "FakeWin32->abs2rel('///','/t1/t2/t3')", '..\\..\\..' ],[ "FakeWin32->abs2rel('/.','/t1/t2/t3')", '..\\..\\..' ],[ "FakeWin32->abs2rel('/./','/t1/t2/t3')", '..\\..\\..' ],
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -