|
3 | 3 | @unix_only @test isabspath("/") == true
|
4 | 4 | @test isabspath("~") == false
|
5 | 5 | @unix_only @test isabspath(expanduser("~")) == true
|
| 6 | + |
| 7 | +############################################ |
| 8 | +# This section tests relpath computation. # |
| 9 | +########################################### |
| 10 | +function test_relpath() |
| 11 | + sep = Base.path_separator |
| 12 | + filepaths = [ |
| 13 | + "$(sep)home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 14 | + "$(sep)home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 15 | + "$(sep)home$(sep)user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 16 | + "$(sep)home$(sep)user$(sep)dir_withendsep$(sep)", |
| 17 | + "$(sep)home$(sep)dir2_withendsep$(sep)", |
| 18 | + "$(sep)home$(sep)test.md", |
| 19 | + "$(sep)home", |
| 20 | + # Special cases |
| 21 | + "$(sep)", |
| 22 | + "$(sep)home$(sep)$(sep)$(sep)" |
| 23 | + ] |
| 24 | + startpaths = [ |
| 25 | + "$(sep)home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)genindex.md", |
| 26 | + "$(sep)multi_docs$(sep)genindex.md", |
| 27 | + "$(sep)home$(sep)user$(sep)dir_withendsep$(sep)", |
| 28 | + "$(sep)home$(sep)dir2_withendsep$(sep)", |
| 29 | + "$(sep)home$(sep)test.md", |
| 30 | + "$(sep)home", |
| 31 | + # Special cases |
| 32 | + "$(sep)", |
| 33 | + "$(sep)home$(sep)$(sep)$(sep)" |
| 34 | + ] |
| 35 | + relpath_expected_results = [ |
| 36 | + "..$(sep)Test1.md", |
| 37 | + "..$(sep)..$(sep)home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 38 | + "..$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 39 | + "..$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 40 | + "..$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 41 | + "user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 42 | + "home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 43 | + "user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)Test1.md", |
| 44 | + "..$(sep)lib$(sep)file1.md", |
| 45 | + "..$(sep)..$(sep)home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 46 | + "..$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 47 | + "..$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 48 | + "..$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 49 | + "user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 50 | + "home$(sep)user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 51 | + "user$(sep).julia$(sep)Test1$(sep)docs$(sep)api$(sep)lib$(sep)file1.md", |
| 52 | + "..$(sep)..$(sep)..$(sep)..$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 53 | + "..$(sep)..$(sep)home$(sep)user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 54 | + "..$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 55 | + "..$(sep)user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 56 | + "..$(sep)user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 57 | + "user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 58 | + "home$(sep)user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 59 | + "user$(sep).julia$(sep)测试2$(sep)docs$(sep)api$(sep)测试2.md", |
| 60 | + "..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)dir_withendsep", |
| 61 | + "..$(sep)..$(sep)home$(sep)user$(sep)dir_withendsep",".","..$(sep)user$(sep)dir_withendsep", |
| 62 | + "..$(sep)user$(sep)dir_withendsep","user$(sep)dir_withendsep", |
| 63 | + "home$(sep)user$(sep)dir_withendsep","user$(sep)dir_withendsep", |
| 64 | + "..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)dir2_withendsep", |
| 65 | + "..$(sep)..$(sep)home$(sep)dir2_withendsep","..$(sep)..$(sep)dir2_withendsep",".", |
| 66 | + "..$(sep)dir2_withendsep","dir2_withendsep","home$(sep)dir2_withendsep","dir2_withendsep", |
| 67 | + "..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)test.md","..$(sep)..$(sep)home$(sep)test.md", |
| 68 | + "..$(sep)..$(sep)test.md","..$(sep)test.md",".","test.md","home$(sep)test.md","test.md", |
| 69 | + "..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)..","..$(sep)..$(sep)home","..$(sep)..", |
| 70 | + "..","..",".","home",".","..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)..","..$(sep)..", |
| 71 | + "..$(sep)..$(sep)..","..$(sep)..","..$(sep)..","..",".","..", |
| 72 | + "..$(sep)..$(sep)..$(sep)..$(sep)..$(sep)..","..$(sep)..$(sep)home","..$(sep)..", |
| 73 | + "..","..",".","home","." |
| 74 | + ] |
| 75 | + idx = 0 |
| 76 | + for filep in filepaths |
| 77 | + for startp in startpaths |
| 78 | + res = relpath(filep, startp) |
| 79 | + idx += 1 |
| 80 | + @test res == relpath_expected_results[idx] |
| 81 | + end |
| 82 | + end |
| 83 | + # Additional cases |
| 84 | + @test_throws ArgumentError relpath("$(sep)home$(sep)user$(sep)dir_withendsep$(sep)", "") |
| 85 | + @test_throws ArgumentError relpath("", "$(sep)home$(sep)user$(sep)dir_withendsep$(sep)") |
| 86 | +end |
| 87 | +test_relpath() |
0 commit comments