use -r:off for runnableExamples that should compile but not run (#17203)

* use -r:off for runnableExamples that should compile but not run

* use -r:off in other RT disabled tests
This commit is contained in:
Timothee Cour
2021-03-01 05:26:39 -08:00
committed by GitHub
parent aef55a7a88
commit dd6b0f81ef
5 changed files with 38 additions and 42 deletions

View File

@@ -13,15 +13,14 @@
## is used. This suffices because Windows' console already provides the
## wanted functionality.
runnableExamples:
if false:
echo readLineFromStdin("Is Nim awesome? (Y/n): ")
var line: string
while true:
let ok = readLineFromStdin("How are you? ", line)
if not ok: break # ctrl-C or ctrl-D will cause a break
if line.len > 0: echo line
echo "exiting"
runnableExamples("-r:off"):
echo readLineFromStdin("Is Nim awesome? (Y/n): ")
var line: string
while true:
let ok = readLineFromStdin("How are you? ", line)
if not ok: break # ctrl-C or ctrl-D will cause a break
if line.len > 0: echo line
echo "exiting"
when defined(windows):
proc readLineFromStdin*(prompt: string): string {.

View File

@@ -14,32 +14,30 @@
## application in production you should use a reverse proxy (for example nginx)
## instead of allowing users to connect directly to this server.
runnableExamples:
runnableExamples("-r:off"):
# This example will create an HTTP server on port 8080. The server will
# respond to all requests with a `200 OK` response code and "Hello World"
# as the response body. Run locally with:
# `nim doc --doccmd:-d:nimAsyncHttpServerEnableTest --lib:lib lib/pure/asynchttpserver.nim`
# as the response body.
import std/asyncdispatch
if defined(nimAsyncHttpServerEnableTest):
proc main {.async.} =
const port = 8080
var server = newAsyncHttpServer()
proc cb(req: Request) {.async.} =
echo (req.reqMethod, req.url, req.headers)
let headers = {"Content-type": "text/plain; charset=utf-8"}
await req.respond(Http200, "Hello World", headers.newHttpHeaders())
proc main {.async.} =
const port = 8080
var server = newAsyncHttpServer()
proc cb(req: Request) {.async.} =
echo (req.reqMethod, req.url, req.headers)
let headers = {"Content-type": "text/plain; charset=utf-8"}
await req.respond(Http200, "Hello World", headers.newHttpHeaders())
echo "test this with: curl localhost:" & $port & "/"
server.listen(Port(port))
while true:
if server.shouldAcceptRequest():
await server.acceptRequest(cb)
else:
# too many concurrent connections, `maxFDs` exceeded
# wait 500ms for FDs to be closed
await sleepAsync(500)
echo "test this with: curl localhost:" & $port & "/"
server.listen(Port(port))
while true:
if server.shouldAcceptRequest():
await server.acceptRequest(cb)
else:
# too many concurrent connections, `maxFDs` exceeded
# wait 500ms for FDs to be closed
await sleepAsync(500)
waitFor main()
waitFor main()
import asyncnet, asyncdispatch, parseutils, uri, strutils
import httpcore

View File

@@ -100,8 +100,8 @@ proc genOid*(): Oid =
## Generates a new OID.
runnableExamples:
doAssert ($genOid()).len == 24
if false: doAssert $genOid() == "5fc7f546ddbbc84800006aaf"
runnableExamples("-r:off"):
echo $genOid() # for example, "5fc7f546ddbbc84800006aaf"
genOid(result, incr, fuzz)
proc generatedTime*(oid: Oid): Time =

View File

@@ -168,11 +168,11 @@ macro dump*(x: untyped): untyped =
## See also: `dumpToString` which is more convenient and useful since
## it expands intermediate templates/macros, returns a string instead of
## calling `echo`, and works with statements and expressions.
runnableExamples:
runnableExamples("-r:off"):
let
x = 10
y = 20
if false: dump(x + y) # if true would print `x + y = 30`
dump(x + y) # prints: `x + y = 30`
let s = x.toStrLit
result = quote do:

View File

@@ -58,14 +58,13 @@ when defined nimExperimentalLinenoiseExtra:
## line editing API that allows returning the line entered and an indicator
## of which control key was entered, allowing user to distinguish between
## for example ctrl-C vs ctrl-D.
runnableExamples("-d:nimExperimentalLinenoiseExtra"):
if false:
var ret: ReadLineResult
while true:
readLineStatus("name: ", ret) # ctrl-D will exit, ctrl-C will go to next prompt
if ret.line.len > 0: echo ret.line
if ret.status == lnCtrlD: break
echo "exiting"
runnableExamples("-d:nimExperimentalLinenoiseExtra -r:off"):
var ret: ReadLineResult
while true:
readLineStatus("name: ", ret) # ctrl-D will exit, ctrl-C will go to next prompt
if ret.line.len > 0: echo ret.line
if ret.status == lnCtrlD: break
echo "exiting"
var data: linenoiseData
let buf = linenoiseExtra(prompt, data.addr)
result.line = $buf