34
34
let
35
35
fn = format_filename (" a%d %p %i %L %l %u z" )
36
36
hd = withenv (" HOME" => nothing ) do
37
- homedir ()
37
+ # get the homedir, as reported by uv_os_get_passwd, as used by jl_format_filename
38
+ try
39
+ homedir ()
40
+ catch ex
41
+ (ex isa Base. IOError && ex. code == Base. UV_ENOENT) || rethrow (ex)
42
+ " "
43
+ end
38
44
end
39
45
@test startswith (fn, " a$hd " )
40
46
@test endswith (fn, " z" )
@@ -48,13 +54,17 @@ let exename = `$(Base.julia_cmd()) --startup-file=no`
48
54
# tests for handling of ENV errors
49
55
let v = writereadpipeline (" println(\" REPL: \" , @which(less), @isdefined(InteractiveUtils))" ,
50
56
setenv (` $exename -i -E 'empty!(LOAD_PATH); @isdefined InteractiveUtils'` ,
51
- " JULIA_LOAD_PATH" => " " , " JULIA_DEPOT_PATH" => " " ))
57
+ " JULIA_LOAD_PATH" => " " ,
58
+ " JULIA_DEPOT_PATH" => " " ,
59
+ " HOME" => homedir ()))
52
60
@test v[1 ] == " false\n REPL: InteractiveUtilstrue\n "
53
61
@test v[2 ]
54
62
end
55
63
let v = writereadpipeline (" println(\" REPL: \" , InteractiveUtils)" ,
56
64
setenv (` $exename -i -e 'const InteractiveUtils = 3'` ,
57
- " JULIA_LOAD_PATH" => " ;;;:::" , " JULIA_DEPOT_PATH" => " ;;;:::" ))
65
+ " JULIA_LOAD_PATH" => " ;;;:::" ,
66
+ " JULIA_DEPOT_PATH" => " ;;;:::" ,
67
+ " HOME" => homedir ()))
58
68
# TODO : ideally, `@which`, etc. would still work, but Julia can't handle `using $InterativeUtils`
59
69
@test v[1 ] == " REPL: 3\n "
60
70
@test v[2 ]
@@ -71,13 +81,13 @@ let exename = `$(Base.julia_cmd()) --startup-file=no`
71
81
end
72
82
real_threads = string (ccall (:jl_cpu_threads , Int32, ()))
73
83
for nc in (" 0" , " -2" , " x" , " 2x" , " " , " " )
74
- v = readchomperrors (setenv (` $exename -i -E 'Sys.CPU_THREADS'` , " JULIA_CPU_THREADS" => nc))
84
+ v = readchomperrors (setenv (` $exename -i -E 'Sys.CPU_THREADS'` , " JULIA_CPU_THREADS" => nc, " HOME " => homedir () ))
75
85
@test v[1 ]
76
86
@test v[2 ] == real_threads
77
87
@test v[3 ] == " WARNING: couldn't parse `JULIA_CPU_THREADS` environment variable. Defaulting Sys.CPU_THREADS to $real_threads ."
78
88
end
79
89
for nc in (" 1" , " 1 " , " +1 " , " 0x1 " )
80
- v = readchomperrors (setenv (` $exename -i -E 'Sys.CPU_THREADS'` , " JULIA_CPU_THREADS" => nc))
90
+ v = readchomperrors (setenv (` $exename -i -E 'Sys.CPU_THREADS'` , " JULIA_CPU_THREADS" => nc, " HOME " => homedir () ))
81
91
@test v[1 ]
82
92
@test v[2 ] == " 1"
83
93
@test isempty (v[3 ])
@@ -101,7 +111,7 @@ let exename = `$(Base.julia_cmd()) --startup-file=no`
101
111
if ! Sys. iswindows ()
102
112
expanded = abspath (expanduser (" ~/foo" ))
103
113
@test occursin (expanded, readchomp (` $exename --project='~/foo' -E 'Base.active_project()'` ))
104
- @test occursin (expanded, readchomp (setenv (` $exename -E 'Base.active_project()'` , " JULIA_PROJECT" => " ~/foo" )))
114
+ @test occursin (expanded, readchomp (setenv (` $exename -E 'Base.active_project()'` , " JULIA_PROJECT" => " ~/foo" , " HOME " => homedir () )))
105
115
end
106
116
107
117
# --quiet, --banner
0 commit comments