21 Star 49 Fork 0

Gitee 极速下载/julia-language

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
.devcontainer
.github
Compiler
base
cli
contrib
deps
doc
etc
src
stdlib
test
RelocationTestPkg1
RelocationTestPkg2
RelocationTestPkg3
RelocationTestPkg4
TestPkg
clangsa
depot/packages
embedding
gc
gcext
llvmpasses
manifest
netload
project
strings
testhelpers
trimming
unicode
.gitignore
Makefile
abstractarray.jl
ambiguous.jl
arrayops.jl
asyncmap.jl
atexit.jl
atomics.jl
backtrace.jl
binaryplatforms.jl
bitarray.jl
bitset.jl
boundscheck.jl
boundscheck_exec.jl
broadcast.jl
buildkitetestjson.jl
cartesian.jl
ccall.jl
channel_threadpool.jl
channels.jl
char.jl
checked.jl
choosetests.jl
client.jl
cmdlineargs.jl
combinatorics.jl
compileall.jl
complex.jl
copy.jl
core.jl
corelogging.jl
deprecation_exec.jl
dict.jl
docs.jl
download.jl
download_exec.jl
enums.jl
env.jl
error.jl
errorshow.jl
euler.jl
exceptions.jl
fastmath.jl
file.jl
filesystem.jl
float16.jl
floatapprox.jl
floatfuncs.jl
functional.jl
gc.jl
generic_map_tests.jl
gmp.jl
goto.jl
hashing.jl
int.jl
interpreter.jl
intfuncs.jl
intrinsics.jl
iobuffer.jl
iostream.jl
iterators.jl
keywordargs.jl
llvmcall.jl
llvmcall2.jl
loading.jl
math.jl
meta.jl
misc.jl
missing.jl
mod2pi.jl
mpfr.jl
namedtuple.jl
numbers.jl
offsetarray.jl
opaque_closure.jl
operators.jl
ordering.jl
osutils.jl
parse.jl
path.jl
precompile.jl
precompile_absint1.jl
precompile_absint2.jl
precompile_utils.jl
print_process_affinity.jl
profile_spawnmany_exec.jl
ranges.jl
rational.jl
read.jl
rebinding.jl
reduce.jl
reducedim.jl
reflection.jl
regex.jl
reinterpretarray.jl
relocatedepot.jl
rounding.jl
runtests.jl
ryu.jl
scopedvalues.jl
secretbuffer.jl
sets.jl
show.jl
simdloop.jl
smallarrayshrink.jl
some.jl
sorting.jl
spawn.jl
specificity.jl
stack_overflow.jl
stacktraces.jl
staged.jl
stdlib_dependencies.jl
stress.jl
stress_fd_exec.jl
subarray.jl
subtype.jl
syntax.jl
sysinfo.jl
terminfo.jl
test_exec.jl
test_sourcepath.jl
testdefs.jl
testenv.jl
threadpool_latency.jl
threadpool_use.jl
threads.jl
threads_exec.jl
triplequote.jl
tuple.jl
vecelement.jl
version.jl
worlds.jl
.buildkite-external-version
.clang-format
.clangd
.codecov.yml
.git-blame-ignore-revs
.gitattributes
.gitignore
.mailmap
AGENTS.md
CITATION.bib
CITATION.cff
CLAUDE.md
CONTRIBUTING.md
HISTORY.md
LICENSE.md
Make.inc
Makefile
NEWS.md
README.md
THIRDPARTY.md
VERSION
julia.spdx.json
pkgimage.mk
sysimage.mk
typos.toml
此仓库是为了提升国内下载速度的镜像仓库,每日同步一次。 原始仓库: https://github.com/JuliaLang/julia
克隆/下载
env.jl 5.71 KB
一键复制 编辑 原始数据 按行查看 历史
# This file is a part of Julia. License is MIT: https://julialang.org/license
# Make a copy of the original environment
original_env = copy(ENV)
using Random
@test !("f=a=k=e=n=a=m=e" keys(ENV))
@testset "issue #10994" begin
@test_throws ArgumentError ENV["bad\0name"] = "ok"
@test_throws ArgumentError ENV["okname"] = "bad\0val"
@test_throws ArgumentError Sys.set_process_title("bad\0title")
withenv("bad"=>"dog") do
@test_throws ArgumentError ENV["bad\0cat"]
end
end
@testset "issue #11170" begin
withenv("TEST"=>"nonempty") do
@test ENV["TEST"] == "nonempty"
end
withenv("TEST"=>"") do
@test ENV["TEST"] == ""
end
let c = collect(ENV)
@test isa(c, Vector)
@test length(ENV) == length(c)
@test isempty(ENV) || first(ENV) in c
end
end
# issue #43486
struct Obj43486 end
(::Obj43486)() = ENV["KEY"] == "VALUE"
let
f = Obj43486()
@test !(f isa Function)
@test withenv(f, "KEY" => "VALUE")
end
@testset "non-existent keys" begin
key = randstring(25)
@test !haskey(ENV,key)
@test_throws KeyError ENV[key]
@test get(ENV,key,"default") == "default"
@test get(() -> "default", ENV, key) == "default"
key = randstring(25)
@test !haskey(ENV, key)
@test get!(ENV, key, "default") == "default"
@test haskey(ENV, key)
@test ENV[key] == "default"
key = randstring(25)
@test !haskey(ENV, key)
@test get!(ENV, key, 0) == 0
@test ENV[key] == "0"
end
@testset "#17956" begin
@test length(ENV) > 1
k1, k2 = "__TEST__", "__TEST1__"
withenv(k1=>k1, k2=>k2) do
b_k1, b_k2 = false, false
for (k, v) in ENV
if k==k1
b_k1=true
elseif k==k2
b_k2=true
end
end
@test b_k1 && b_k2
io = IOBuffer()
show(io, ENV)
s = String(take!(io))
@test occursin("$k1=$k1", s)
@test occursin("$k2=$k2", s)
@test pop!(ENV, k1) == k1
@test !haskey(ENV, k1)
ENV[k1] = k1
@test pop!(ENV, k1) == k1
@test pop!(ENV, k1, "not_there") == "not_there"
ENV[k1] = k1
@test delete!(ENV, k1) == ENV
@test !haskey(ENV, k1)
end
end
# Test for #10853
@test withenv(Dict{Any,Any}()...) do; true; end
# Test for #18141
for (k, v) in ENV
if length(v) > 0
@test v[end] != '\0'
end
end
@testset "push" begin
@test !haskey(ENV, "testing_envdict")
push!(ENV, "testing_envdict" => "tested")
@test haskey(ENV, "testing_envdict")
@test ENV["testing_envdict"] == "tested"
delete!(ENV, "testing_envdict")
end
if Sys.iswindows()
@testset "windows case-insensitivity" begin
for k in ("testing_envdict", "testing_envdict_\u00ee")
K = uppercase(k)
v = "tested $k"
ENV[k] = v
@test haskey(ENV, K)
@test ENV[K] == v
@test K in keys(ENV)
@test K in collect(keys(ENV))
@test k collect(keys(ENV))
env = copy(ENV)
@test haskey(env, K)
@test env[K] == v
@test !haskey(env, k)
delete!(ENV, k)
@test !haskey(ENV, K)
end
end
end
@testset "get_bool_env" begin
@testset "truthy" begin
for v in ("t", "true", "y", "yes", "1")
for _v in (v, uppercasefirst(v), uppercase(v))
ENV["testing_gbe"] = _v
@test Base.get_bool_env("testing_gbe", false) == true
@test Base.get_bool_env(() -> false, "testing_gbe") == true
@test Base.get_bool_env("testing_gbe", true) == true
@test Base.get_bool_env(() -> true, "testing_gbe") == true
end
end
end
@testset "falsy" begin
for v in ("f", "false", "n", "no", "0")
for _v in (v, uppercasefirst(v), uppercase(v))
ENV["testing_gbe"] = _v
@test Base.get_bool_env("testing_gbe", true) == false
@test Base.get_bool_env(() -> true, "testing_gbe") == false
@test Base.get_bool_env("testing_gbe", false) == false
@test Base.get_bool_env(() -> false, "testing_gbe") == false
end
end
end
@testset "empty" begin
ENV["testing_gbe"] = ""
@test Base.get_bool_env("testing_gbe", true) == true
@test Base.get_bool_env(() -> true, "testing_gbe") == true
@test Base.get_bool_env("testing_gbe", false) == false
@test Base.get_bool_env(() -> false, "testing_gbe") == false
end
@testset "undefined" begin
delete!(ENV, "testing_gbe")
@test !haskey(ENV, "testing_gbe")
@test Base.get_bool_env("testing_gbe", true) == true
@test Base.get_bool_env(() -> true, "testing_gbe") == true
@test Base.get_bool_env("testing_gbe", false) == false
@test Base.get_bool_env(() -> false, "testing_gbe") == false
end
@testset "unrecognized" begin
for v in ("truw", "falls")
ENV["testing_gbe"] = v
@test Base.get_bool_env("testing_gbe", true) === nothing
@test_throws ArgumentError Base.get_bool_env("testing_gbe", true, throw=true)
@test Base.get_bool_env("testing_gbe", false) === nothing
@test_throws ArgumentError Base.get_bool_env("testing_gbe", false, throw=true)
end
end
# the "default" arg shouldn't have a default val, for clarity.
@test_throws MethodError Base.get_bool_env("testing_gbe")
delete!(ENV, "testing_gbe")
@test !haskey(ENV, "testing_gbe")
end
# Restore the original environment
for k in collect(keys(ENV))
if !haskey(original_env, k)
delete!(ENV, k)
end
end
for (k, v) in pairs(original_env)
ENV[k] = v
end
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/mirrors/julia-language.git
git@gitee.com:mirrors/julia-language.git
mirrors
julia-language
julia-language
master

搜索帮助