@@ -59,13 +59,26 @@ var sysdir = func() *sysDir {
59
59
if err != nil {
60
60
wd = err .Error ()
61
61
}
62
- return & sysDir {
62
+ sd := & sysDir {
63
63
filepath .Join (wd , ".." , ".." ),
64
64
[]string {
65
65
"ResourceRules.plist" ,
66
66
"Info.plist" ,
67
67
},
68
68
}
69
+ found := true
70
+ for _ , f := range sd .files {
71
+ path := filepath .Join (sd .name , f )
72
+ if _ , err := Stat (path ); err != nil {
73
+ found = false
74
+ break
75
+ }
76
+ }
77
+ if found {
78
+ return sd
79
+ }
80
+ // In a self-hosted iOS build the above files might
81
+ // not exist. Look for system files instead below.
69
82
}
70
83
case "windows" :
71
84
return & sysDir {
@@ -1191,15 +1204,18 @@ func TestChdirAndGetwd(t *testing.T) {
1191
1204
case "darwin" :
1192
1205
switch runtime .GOARCH {
1193
1206
case "arm" , "arm64" :
1194
- d1 , err := ioutil .TempDir ("" , "d1" )
1195
- if err != nil {
1196
- t .Fatalf ("TempDir: %v" , err )
1197
- }
1198
- d2 , err := ioutil .TempDir ("" , "d2" )
1199
- if err != nil {
1200
- t .Fatalf ("TempDir: %v" , err )
1207
+ for _ , d := range []string {"d1" , "d2" } {
1208
+ dir , err := ioutil .TempDir ("" , d )
1209
+ if err != nil {
1210
+ t .Fatalf ("TempDir: %v" , err )
1211
+ }
1212
+ // Expand symlinks so path equality tests work.
1213
+ dir , err = filepath .EvalSymlinks (dir )
1214
+ if err != nil {
1215
+ t .Fatalf ("EvalSymlinks: %v" , err )
1216
+ }
1217
+ dirs = append (dirs , dir )
1201
1218
}
1202
- dirs = []string {d1 , d2 }
1203
1219
}
1204
1220
}
1205
1221
oldwd := Getenv ("PWD" )
0 commit comments