@@ -596,6 +596,7 @@ fn test_is_executable_writable_readable() {
596596}
597597
598598fn test_file_ext () {
599+ assert os.file_ext ('' ) == ''
599600 assert os.file_ext ('file.v' ) == '.v'
600601 assert os.file_ext ('file.js.v' ) == '.v'
601602 assert os.file_ext ('file.ext1.ext2.ext3' ) == '.ext3'
@@ -640,50 +641,112 @@ fn test_rmdir_not_exist() ! {
640641}
641642
642643fn test_dir () {
643- $if windows {
644- assert os.dir ('C:\\ a\\ b\\ c' ) == 'C:\\ a\\ b'
645- assert os.dir ('C:\\ a\\ b\\ ' ) == 'C:\\ a\\ b'
646- assert os.dir ('C:/a/b/c' ) == 'C:\\ a\\ b'
647- assert os.dir ('C:/a/b/' ) == 'C:\\ a\\ b'
648- } $else {
649- assert os.dir ('/' ) == '/'
650- assert os.dir ('/abc' ) == '/'
651- assert os.dir ('/var/tmp/foo' ) == '/var/tmp'
652- assert os.dir ('/var/tmp/' ) == '/var/tmp'
653- assert os.dir ('C:\\ a\\ b\\ c' ) == 'C:/a/b'
654- assert os.dir ('C:\\ a\\ b\\ ' ) == 'C:/a/b'
655- }
644+ assert os.dir ('' ) == '.'
645+ assert os.dir ('\\ ' ) == '\\ '
646+ assert os.dir ('C:\\ a\\ b\\ c' ) == 'C:\\ a\\ b'
647+ assert os.dir ('C:\\ a\\ b\\ ' ) == 'C:\\ a\\ b'
648+ assert os.dir ('C:/a/b/c' ) == 'C:/a/b'
649+ assert os.dir ('C:/a/b/' ) == 'C:/a/b'
650+ assert os.dir ('/' ) == '/'
651+ assert os.dir ('/abc' ) == '/'
652+ assert os.dir ('/var/tmp/foo' ) == '/var/tmp'
653+ assert os.dir ('/var/tmp/' ) == '/var/tmp'
656654 assert os.dir ('os' ) == '.'
657655}
658656
659657fn test_base () {
660- $if windows {
661- assert os.base ('v\\ vlib\\ os' ) == 'os'
662- assert os.base ('v\\ vlib\\ os\\ ' ) == 'os'
663- assert os.base ('v/vlib/os' ) == 'os'
664- assert os.base ('v/vlib/os/' ) == 'os'
665- } $else {
666- assert os.base ('v/vlib/os' ) == 'os'
667- assert os.base ('v/vlib/os/' ) == 'os'
668- assert os.base ('v\\ vlib\\ os' ) == 'os'
669- assert os.base ('v\\ vlib\\ os\\ ' ) == 'os'
670- }
658+ assert os.base ('' ) == '.'
659+ assert os.base ('v\\ vlib\\ os' ) == 'os'
660+ assert os.base ('v\\ vlib\\ os\\ ' ) == 'os'
661+ assert os.base ('v/vlib/os' ) == 'os'
662+ assert os.base ('v/vlib/os/' ) == 'os'
663+ assert os.base ('v/vlib/os' ) == 'os'
664+ assert os.base ('v/vlib/os/' ) == 'os'
665+ assert os.base ('v\\ vlib\\ os' ) == 'os'
666+ assert os.base ('v\\ vlib\\ os\\ ' ) == 'os'
671667 assert os.base ('filename' ) == 'filename'
672668}
673669
674670fn test_file_name () {
675- $if windows {
676- assert os.file_name ('v\\ vlib\\ os\\ os.v' ) == 'os.v'
677- assert os.file_name ('v\\ vlib\\ os\\ ' ) == ''
678- assert os.file_name ('v\\ vlib\\ os' ) == 'os'
679- } $else {
680- assert os.file_name ('v/vlib/os/os.v' ) == 'os.v'
681- assert os.file_name ('v/vlib/os/' ) == ''
682- assert os.file_name ('v/vlib/os' ) == 'os'
683- }
671+ assert os.file_name ('' ) == ''
672+ assert os.file_name ('v\\ vlib\\ os\\ os.v' ) == 'os.v'
673+ assert os.file_name ('v\\ vlib\\ os\\ ' ) == ''
674+ assert os.file_name ('v\\ vlib\\ os' ) == 'os'
675+ assert os.file_name ('v/vlib/os/os.v' ) == 'os.v'
676+ assert os.file_name ('v/vlib/os/' ) == ''
677+ assert os.file_name ('v/vlib/os' ) == 'os'
684678 assert os.file_name ('filename' ) == 'filename'
685679}
686680
681+ fn test_split_path () {
682+ mut dir := ''
683+ mut filename := ''
684+ mut ext := ''
685+
686+ dir , filename , ext = os.split_path ('' )
687+ assert [dir, filename, ext] == ['.' , '' , '' ]
688+
689+ dir , filename , ext = os.split_path ('a' )
690+ assert [dir, filename, ext] == ['.' , 'a' , '' ]
691+
692+ dir , filename , ext = os.split_path ('.' )
693+ assert [dir, filename, ext] == ['.' , '' , '' ]
694+
695+ dir , filename , ext = os.split_path ('..' )
696+ assert [dir, filename, ext] == ['..' , '' , '' ]
697+
698+ dir , filename , ext = os.split_path ('\\ ' )
699+ assert [dir, filename, ext] == ['\\ ' , '' , '' ]
700+
701+ dir , filename , ext = os.split_path ('\\ x.c.v' )
702+ assert [dir, filename, ext] == ['\\ ' , 'x.c' , '.v' ]
703+
704+ dir , filename , ext = os.split_path ('.\\ x.c.v' )
705+ assert [dir, filename, ext] == ['.' , 'x.c' , '.v' ]
706+
707+ dir , filename , ext = os.split_path ('x.c.v' )
708+ assert [dir, filename, ext] == ['.' , 'x.c' , '.v' ]
709+
710+ dir , filename , ext = os.split_path ('..\\ x.c.v' )
711+ assert [dir, filename, ext] == ['..' , 'x.c' , '.v' ]
712+
713+ dir , filename , ext = os.split_path ('\\ lib\\ x.c.v' )
714+ assert [dir, filename, ext] == ['\\ lib' , 'x.c' , '.v' ]
715+
716+ dir , filename , ext = os.split_path ('\\ lib\\ x.c.v\\ ' )
717+ assert [dir, filename, ext] == ['\\ lib\\ x.c.v' , '' , '' ]
718+
719+ dir , filename , ext = os.split_path ('\\ lib\\ x.c.' )
720+ assert [dir, filename, ext] == ['\\ lib' , 'x.c.' , '' ]
721+
722+ dir , filename , ext = os.split_path ('C:\\ lib\\ x.c.' )
723+ assert [dir, filename, ext] == ['C:\\ lib' , 'x.c.' , '' ]
724+
725+ dir , filename , ext = os.split_path ('/' )
726+ assert [dir, filename, ext] == ['/' , '' , '' ]
727+
728+ dir , filename , ext = os.split_path ('/x.c.v' )
729+ assert [dir, filename, ext] == ['/' , 'x.c' , '.v' ]
730+
731+ dir , filename , ext = os.split_path ('./x.c.v' )
732+ assert [dir, filename, ext] == ['.' , 'x.c' , '.v' ]
733+
734+ dir , filename , ext = os.split_path ('../x.c.v' )
735+ assert [dir, filename, ext] == ['..' , 'x.c' , '.v' ]
736+
737+ dir , filename , ext = os.split_path ('/lib/x.c.v' )
738+ assert [dir, filename, ext] == ['/lib' , 'x.c' , '.v' ]
739+
740+ dir , filename , ext = os.split_path ('/lib/x.c.v/' )
741+ assert [dir, filename, ext] == ['/lib/x.c.v' , '' , '' ]
742+
743+ dir , filename , ext = os.split_path ('/lib/../x.c.v/' )
744+ assert [dir, filename, ext] == ['/lib/../x.c.v' , '' , '' ]
745+
746+ dir , filename , ext = os.split_path ('/lib/x.c.' )
747+ assert [dir, filename, ext] == ['/lib' , 'x.c.' , '' ]
748+ }
749+
687750fn test_uname () {
688751 u := os.uname ()
689752 assert u.sysname.len > 0
0 commit comments