Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(1130)

Side by Side Diff: src/pkg/os/os_windows_test.go

Issue 127740043: code review 127740043: os: make SameFile handle paths like c:a.txt properly (Closed)
Patch Set: diff -r 36cd01e53b35c5df69b32f29d7ea1bd2b4834fb3 https://go.googlecode.com/hg/ Created 10 years, 7 months ago
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/pkg/os/file_windows.go ('k') | src/pkg/os/stat_windows.go » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 package os_test 1 package os_test
2 2
3 import ( 3 import (
4 "io/ioutil" 4 "io/ioutil"
5 "os" 5 "os"
6 "path/filepath" 6 "path/filepath"
7 "syscall" 7 "syscall"
8 "testing"
8 ) 9 )
9 10
10 func init() { 11 func init() {
11 tmpdir, err := ioutil.TempDir("", "symtest") 12 tmpdir, err := ioutil.TempDir("", "symtest")
12 if err != nil { 13 if err != nil {
13 panic("failed to create temp directory: " + err.Error()) 14 panic("failed to create temp directory: " + err.Error())
14 } 15 }
15 defer os.RemoveAll(tmpdir) 16 defer os.RemoveAll(tmpdir)
16 17
17 err = os.Symlink("target", filepath.Join(tmpdir, "symlink")) 18 err = os.Symlink("target", filepath.Join(tmpdir, "symlink"))
18 if err == nil { 19 if err == nil {
19 return 20 return
20 } 21 }
21 22
22 err = err.(*os.LinkError).Err 23 err = err.(*os.LinkError).Err
23 switch err { 24 switch err {
24 case syscall.EWINDOWS, syscall.ERROR_PRIVILEGE_NOT_HELD: 25 case syscall.EWINDOWS, syscall.ERROR_PRIVILEGE_NOT_HELD:
25 supportsSymlinks = false 26 supportsSymlinks = false
26 } 27 }
27 } 28 }
29
30 func TestSameWindowsFile(t *testing.T) {
31 temp, err := ioutil.TempDir("", "TestSameWindowsFile")
32 if err != nil {
33 t.Fatal(err)
34 }
35 defer os.RemoveAll(temp)
36
37 wd, err := os.Getwd()
38 if err != nil {
39 t.Fatal(err)
40 }
41 err = os.Chdir(temp)
42 if err != nil {
43 t.Fatal(err)
44 }
45 defer os.Chdir(wd)
46
47 f, err := os.Create("a")
48 if err != nil {
49 t.Fatal(err)
50 }
51 f.Close()
52
53 ia1, err := os.Stat("a")
54 if err != nil {
55 t.Fatal(err)
56 }
57
58 path, err := filepath.Abs("a")
59 if err != nil {
60 t.Fatal(err)
61 }
62 ia2, err := os.Stat(path)
63 if err != nil {
64 t.Fatal(err)
65 }
66 if !os.SameFile(ia1, ia2) {
67 t.Errorf("files should be same")
68 }
69
70 p := filepath.VolumeName(path) + filepath.Base(path)
71 if err != nil {
72 t.Fatal(err)
73 }
74 ia3, err := os.Stat(p)
75 if err != nil {
76 t.Fatal(err)
77 }
78 if !os.SameFile(ia1, ia3) {
79 t.Errorf("files should be same")
80 }
81 }
OLDNEW
« no previous file with comments | « src/pkg/os/file_windows.go ('k') | src/pkg/os/stat_windows.go » ('j') | no next file with comments »

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b