Updated Feb 23, 2015.
This would make a whole bunch of good "first contribution" projects, and does not require deep insider knowledge of the language.
The basic idea is to expand the test suite to make sure that julia's base code works as promised. Here is one recommended way to contribute toward this goal:
using Base.Test
testnames = ["core", "keywordargs", "numbers", "strings", "dates",
"hashing", "remote", "iobuffer", "staged", "arrayops",
"subarray", "reduce", "reducedim", "random", "intfuncs",
"simdloop", "blas", "fft", "dsp", "sparse", "bitarray", "copy", "math",
"functional", "bigint", "sorting", "statistics", "spawn",
"backtrace", "priorityqueue", "arpack", "file", "suitesparse", "version",
"pollfd", "mpfr", "broadcast", "complex", "socket",
"floatapprox", "readdlm", "reflection", "regex", "float16", "combinatorics",
"sysinfo", "rounding", "ranges", "mod2pi", "euler", "show",
"lineedit", "replcompletions", "repl", "test", "goto",
"llvmcall", "grisu", "nullable", "meta", "profile",
"libgit2", "docs", "base64", "pkg", "linalg1", "linalg2",
"linalg3", "linalg4", "linalg/lapack", "linalg/triangular", "linalg/tridiag",
"linalg/pinv", "linalg/cholmod", "linalg/umfpack", "linalg/givens"
]
for tst in testnames
println(tst)
include(joinpath(JULIA_HOME,Base.DATAROOTDIR,"julia","test","$tst.jl"))
end
Updated Feb 23, 2015.
This would make a whole bunch of good "first contribution" projects, and does not require deep insider knowledge of the language.
The basic idea is to expand the test suite to make sure that julia's base code works as promised. Here is one recommended way to contribute toward this goal:
The easy way
test/runtests.jl. http://julia.readthedocs.org/en/latest/stdlib/test/ may be helpful in explaining how the testing infrastructure works. Submit the test as a pull request (see CONTRIBUTING.md).The manual method
masterbranch. Build julia withmake/tmp/coverage_tests.jl:(This is the list of tests currently in
test/runtests.jl, with 3 omissions (resolve,reflection, andmeta) and one addition (pkg). The omitted tests explicitly test inlining, which we're going to disable, or are problematic when inlining is disabled.)rm usr/lib/julia/sys.so. Deletingsys.sowill prevent julia from using any pre-compiled functions, increasing the accuracy of the results. (This also makes startup a bit slower, but that's fine for this test---and once you're done, simply typingmakewill cause this file to be rebuilt).test/directory.julia --code-coverage=all --inline=no. This turns on code-coverage and prevents inlining (inlining makes it difficult to accurately assess whether a function has been tested).include("/tmp/coverage_tests.jl").base/directory.0in front of them (indicating that they were run 0 times), or have-in front of them (indicating that they were never compiled).test/runtests.jl. http://julia.readthedocs.org/en/latest/stdlib/test/ may be helpful in explaining how the testing infrastructure works. Submit the test as a pull request (see CONTRIBUTING.md).