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
commit dd6b0f81ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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 ## is used. This suffices because Windows' console already provides the
## wanted functionality. ## wanted functionality.
runnableExamples: runnableExamples("-r:off"):
if false: echo readLineFromStdin("Is Nim awesome? (Y/n): ")
echo readLineFromStdin("Is Nim awesome? (Y/n): ") var line: string
var line: string while true:
while true: let ok = readLineFromStdin("How are you? ", line)
let ok = readLineFromStdin("How are you? ", line) if not ok: break # ctrl-C or ctrl-D will cause a break
if not ok: break # ctrl-C or ctrl-D will cause a break if line.len > 0: echo line
if line.len > 0: echo line echo "exiting"
echo "exiting"
when defined(windows): when defined(windows):
proc readLineFromStdin*(prompt: string): string {. proc readLineFromStdin*(prompt: string): string {.

View file

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

View file

@ -100,8 +100,8 @@ proc genOid*(): Oid =
## Generates a new OID. ## Generates a new OID.
runnableExamples: runnableExamples:
doAssert ($genOid()).len == 24 doAssert ($genOid()).len == 24
if false: doAssert $genOid() == "5fc7f546ddbbc84800006aaf" runnableExamples("-r:off"):
echo $genOid() # for example, "5fc7f546ddbbc84800006aaf"
genOid(result, incr, fuzz) genOid(result, incr, fuzz)
proc generatedTime*(oid: Oid): Time = 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 ## See also: `dumpToString` which is more convenient and useful since
## it expands intermediate templates/macros, returns a string instead of ## it expands intermediate templates/macros, returns a string instead of
## calling `echo`, and works with statements and expressions. ## calling `echo`, and works with statements and expressions.
runnableExamples: runnableExamples("-r:off"):
let let
x = 10 x = 10
y = 20 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 let s = x.toStrLit
result = quote do: result = quote do:

View file

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