diff --git a/test/Makefile b/test/Makefile index a9b757d60e007..f093b09b16590 100644 --- a/test/Makefile +++ b/test/Makefile @@ -7,7 +7,7 @@ TESTS = all core keywordargs numbers strings unicode collections hashing \ git pkg resolve suitesparse complex version pollfd mpfr broadcast \ socket floatapprox priorityqueue readdlm regex float16 combinatorics \ sysinfo rounding ranges mod2pi euler show linalg1 linalg2 linalg3 lineedit \ - replcompletions backtrace + replcompletions backtrace repl default: all diff --git a/test/repl.jl b/test/repl.jl index f20a0c279cae3..58007995f8a23 100644 --- a/test/repl.jl +++ b/test/repl.jl @@ -1,9 +1,9 @@ # REPL tests +let exename=joinpath(JULIA_HOME,(ccall(:jl_is_debugbuild,Cint,())==0?"julia":"julia-debug")) +# Test REPL in dumb mode @unix_only begin -exename=joinpath(JULIA_HOME,(ccall(:jl_is_debugbuild,Cint,())==0?"julia":"julia-debug")) - const O_RDWR = Base.FS.JL_O_RDWR const O_NOCTTY = 0x20000 @@ -17,24 +17,28 @@ rc != 0 && error("unlockpt") fds = ccall(:open,Cint,(Ptr{Uint8},Cint),ccall(:ptsname,Ptr{Uint8},(Cint,),fdm), O_RDWR) # slave -slaveSTDIN = Base.TTY(RawFD(fds); readable = true) -slaveSTDERR = Base.TTY(RawFD(fds)) -slaveSTDOUT = Base.TTY(RawFD(fds)) +slave = Base.TTY(RawFD(fds); readable = true) master = Base.TTY(RawFD(fdm); readable = true) -# First test REPL in dumb mode nENV = copy(ENV) nENV["TERM"] = "dumb" -p = spawn(setenv(`$exename --quiet`,nENV),slaveSTDIN,slaveSTDOUT,slaveSTDERR) +p = spawn(setenv(`$exename --quiet`,nENV),slave,slave,slave) +start_reading(master) +Base.wait_readnb(master,1) write(master,"1\nquit()\n") wait(p) -@test readavailable(master) == "julia> 1\r\nquit()\r\n1\r\n\r\njulia> " +output = readavailable(master) +@test output == "julia> 1\r\nquit()\r\n1\r\n\r\njulia> " +close(slave) close(master) -close(slaveSTDIN) -close(slaveSTDOUT) -close(slaveSTDERR) +end + +# Test stream mode +outs, ins, p = readandwrite(`$exename --quiet`) +write(ins,"1\nquit()\n") +@test readall(outs) == "1\n" end \ No newline at end of file diff --git a/test/runtests.jl b/test/runtests.jl index 8659c6696bbaa..26ce2b77b5850 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -8,7 +8,7 @@ testnames = [ "resolve", "pollfd", "mpfr", "broadcast", "complex", "socket", "floatapprox", "readdlm", "regex", "float16", "combinatorics", "sysinfo", "rounding", "ranges", "mod2pi", "euler", "show", - "lineedit", "replcompletions" + "lineedit", "replcompletions", "repl" ] @unix_only push!(testnames, "unicode") @@ -35,7 +35,7 @@ end n = 1 if net_on n = min(8, CPU_CORES, length(tests)) - n > 1 && addprocs(n) + n > 0 && addprocs(n) blas_set_num_threads(1) else filter!(x -> !(x in net_required_for), tests)