Add: julia-0.6.2
Former-commit-id: ccc667cf67d569f3fb3df39aa57c2134755a7551
This commit is contained in:
175
julia-0.6.2/share/julia/test/choosetests.jl
Normal file
175
julia-0.6.2/share/julia/test/choosetests.jl
Normal file
@@ -0,0 +1,175 @@
|
||||
# This file is a part of Julia. License is MIT: https://julialang.org/license
|
||||
|
||||
@doc """
|
||||
|
||||
`tests, net_on = choosetests(choices)` selects a set of tests to be
|
||||
run. `choices` should be a vector of test names; if empty or set to
|
||||
`["all"]`, all tests are selected.
|
||||
|
||||
This function also supports "test collections": specifically, "linalg"
|
||||
refers to collections of tests in the correspondingly-named
|
||||
directories.
|
||||
|
||||
Upon return, `tests` is a vector of fully-expanded test names, and
|
||||
`net_on` is true if networking is available (required for some tests).
|
||||
""" ->
|
||||
function choosetests(choices = [])
|
||||
testnames = [
|
||||
"linalg", "subarray", "core", "inference", "worlds",
|
||||
"keywordargs", "numbers", "subtype",
|
||||
"printf", "char", "strings", "triplequote", "unicode", "intrinsics",
|
||||
"dates", "dict", "hashing", "iobuffer", "staged", "offsetarray",
|
||||
"arrayops", "tuple", "reduce", "reducedim", "random", "abstractarray",
|
||||
"intfuncs", "simdloop", "vecelement", "blas", "sparse",
|
||||
"bitarray", "copy", "math", "fastmath", "functional", "iterators",
|
||||
"operators", "path", "ccall", "parse", "loading", "bigint",
|
||||
"bigfloat", "sorting", "statistics", "spawn", "backtrace",
|
||||
"file", "read", "mmap", "version", "resolve",
|
||||
"pollfd", "mpfr", "broadcast", "complex", "socket",
|
||||
"floatapprox", "datafmt", "reflection", "regex", "float16",
|
||||
"combinatorics", "sysinfo", "env", "rounding", "ranges", "mod2pi",
|
||||
"euler", "show", "lineedit", "replcompletions", "repl",
|
||||
"replutil", "sets", "test", "goto", "llvmcall", "llvmcall2", "grisu",
|
||||
"nullable", "meta", "stacktraces", "profile", "libgit2", "docs",
|
||||
"markdown", "base64", "serialize", "misc", "threads",
|
||||
"enums", "cmdlineargs", "i18n", "workspace", "libdl", "int",
|
||||
"checked", "intset", "floatfuncs", "compile", "distributed", "inline",
|
||||
"boundscheck", "error", "ambiguous", "cartesian", "asmvariant", "osutils",
|
||||
"channels", "iostream", "specificity"
|
||||
]
|
||||
profile_skipped = false
|
||||
if startswith(string(Sys.ARCH), "arm")
|
||||
# Remove profile from default tests on ARM since it currently segfaults
|
||||
# Allow explicitly adding it for testing
|
||||
filter!(x -> (x != "profile"), testnames)
|
||||
profile_skipped = true
|
||||
end
|
||||
|
||||
if Base.USE_GPL_LIBS
|
||||
append!(testnames, ["fft", "dsp"])
|
||||
end
|
||||
|
||||
if isdir(joinpath(JULIA_HOME, Base.DOCDIR, "examples"))
|
||||
push!(testnames, "examples")
|
||||
end
|
||||
|
||||
tests = []
|
||||
skip_tests = []
|
||||
|
||||
for (i, t) in enumerate(choices)
|
||||
if t == "--skip"
|
||||
skip_tests = choices[i + 1:end]
|
||||
break
|
||||
else
|
||||
push!(tests, t)
|
||||
end
|
||||
end
|
||||
|
||||
if tests == ["all"] || isempty(tests)
|
||||
tests = testnames
|
||||
if profile_skipped
|
||||
warn("profile test skipped")
|
||||
end
|
||||
end
|
||||
|
||||
datestests = ["dates/accessors", "dates/adjusters", "dates/query",
|
||||
"dates/periods", "dates/ranges", "dates/rounding", "dates/types",
|
||||
"dates/io", "dates/arithmetic", "dates/conversions"]
|
||||
if "dates" in skip_tests
|
||||
filter!(x -> (x != "dates" && !(x in datestests)), tests)
|
||||
elseif "dates" in tests
|
||||
# specifically selected case
|
||||
filter!(x -> x != "dates", tests)
|
||||
prepend!(tests, datestests)
|
||||
end
|
||||
|
||||
unicodetests = ["unicode/UnicodeError", "unicode/utf8proc", "unicode/utf8"]
|
||||
if "unicode" in skip_tests
|
||||
filter!(x -> (x != "unicode" && !(x in unicodetests)), tests)
|
||||
elseif "unicode" in tests
|
||||
# specifically selected case
|
||||
filter!(x -> x != "unicode", tests)
|
||||
prepend!(tests, unicodetests)
|
||||
end
|
||||
|
||||
stringtests = ["strings/basic", "strings/search", "strings/util",
|
||||
"strings/io", "strings/types"]
|
||||
if "strings" in skip_tests
|
||||
filter!(x -> (x != "strings" && !(x in stringtests)), tests)
|
||||
elseif "strings" in tests
|
||||
# specifically selected case
|
||||
filter!(x -> x != "strings", tests)
|
||||
prepend!(tests, stringtests)
|
||||
end
|
||||
|
||||
|
||||
sparsetests = ["sparse/sparse", "sparse/sparsevector", "sparse/higherorderfns"]
|
||||
if Base.USE_GPL_LIBS
|
||||
append!(sparsetests, ["sparse/umfpack", "sparse/cholmod", "sparse/spqr"])
|
||||
end
|
||||
if "sparse" in skip_tests
|
||||
filter!(x -> (x != "sparse" && !(x in sparsetests)), tests)
|
||||
elseif "sparse" in tests
|
||||
# specifically selected case
|
||||
filter!(x -> x != "sparse", tests)
|
||||
prepend!(tests, sparsetests)
|
||||
end
|
||||
|
||||
# do subarray before sparse but after linalg
|
||||
if "subarray" in skip_tests
|
||||
filter!(x -> x != "subarray", tests)
|
||||
elseif "subarray" in tests
|
||||
filter!(x -> x != "subarray", tests)
|
||||
prepend!(tests, ["subarray"])
|
||||
end
|
||||
|
||||
linalgtests = ["linalg/triangular", "linalg/qr", "linalg/dense",
|
||||
"linalg/matmul", "linalg/schur", "linalg/special",
|
||||
"linalg/eigen", "linalg/bunchkaufman", "linalg/svd",
|
||||
"linalg/lapack", "linalg/tridiag", "linalg/bidiag",
|
||||
"linalg/diagonal", "linalg/pinv", "linalg/givens",
|
||||
"linalg/cholesky", "linalg/lu", "linalg/symmetric",
|
||||
"linalg/generic", "linalg/uniformscaling", "linalg/lq",
|
||||
"linalg/hessenberg", "linalg/rowvector", "linalg/conjarray"]
|
||||
if Base.USE_GPL_LIBS
|
||||
push!(linalgtests, "linalg/arnoldi")
|
||||
end
|
||||
|
||||
if "linalg" in skip_tests
|
||||
filter!(x -> (x != "linalg" && !(x in linalgtests)), tests)
|
||||
elseif "linalg" in tests
|
||||
# specifically selected case
|
||||
filter!(x -> x != "linalg", tests)
|
||||
prepend!(tests, linalgtests)
|
||||
end
|
||||
|
||||
# do ambiguous first to avoid failing if ambiguities are introduced by other tests
|
||||
if "ambiguous" in skip_tests
|
||||
filter!(x -> x != "ambiguous", tests)
|
||||
elseif "ambiguous" in tests
|
||||
filter!(x -> x != "ambiguous", tests)
|
||||
prepend!(tests, ["ambiguous"])
|
||||
end
|
||||
|
||||
net_required_for = ["socket", "distributed", "libgit2"]
|
||||
net_on = true
|
||||
try
|
||||
ipa = getipaddr()
|
||||
catch
|
||||
warn("Networking unavailable: Skipping tests [" * join(net_required_for, ", ") * "]")
|
||||
net_on = false
|
||||
end
|
||||
|
||||
if ccall(:jl_running_on_valgrind,Cint,()) != 0 && "rounding" in tests
|
||||
warn("Running under valgrind: Skipping rounding tests")
|
||||
filter!(x -> x != "rounding", tests)
|
||||
end
|
||||
|
||||
if !net_on
|
||||
filter!(x -> !(x in net_required_for), tests)
|
||||
end
|
||||
|
||||
filter!(x -> !(x in skip_tests), tests)
|
||||
|
||||
tests, net_on
|
||||
end
|
||||
Reference in New Issue
Block a user