summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorTimothee Cour <timothee.cour2@gmail.com>2021-03-01 05:26:39 -0800
committerGitHub <noreply@github.com>2021-03-01 14:26:39 +0100
commitdd6b0f81efe54cbc17a79e5c3d7aa7aaf34357f6 (patch)
tree61b08aedf3d963fb80a501c7f8b8b6bfca0d9938
parentaef55a7a888d28ac4215dbc8887fdcfcaf551770 (diff)
downloadNim-dd6b0f81efe54cbc17a79e5c3d7aa7aaf34357f6.tar.gz
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
-rw-r--r--lib/impure/rdstdin.nim17
-rw-r--r--lib/pure/asynchttpserver.nim44
-rw-r--r--lib/pure/oids.nim4
-rw-r--r--lib/pure/sugar.nim4
-rw-r--r--lib/wrappers/linenoise/linenoise.nim15
5 files changed, 40 insertions, 44 deletions
diff --git a/lib/impure/rdstdin.nim b/lib/impure/rdstdin.nim
index 362d71b37..c580b89d1 100644
--- a/lib/impure/rdstdin.nim
+++ b/lib/impure/rdstdin.nim
@@ -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 {.
diff --git a/lib/pure/asynchttpserver.nim b/lib/pure/asynchttpserver.nim
index f5baf1517..38be4ceac 100644
--- a/lib/pure/asynchttpserver.nim
+++ b/lib/pure/asynchttpserver.nim
@@ -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())
-
-      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()
+  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)
+
+  waitFor main()
 
 import asyncnet, asyncdispatch, parseutils, uri, strutils
 import httpcore
diff --git a/lib/pure/oids.nim b/lib/pure/oids.nim
index 967c4901b..fb70047b6 100644
--- a/lib/pure/oids.nim
+++ b/lib/pure/oids.nim
@@ -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 =
diff --git a/lib/pure/sugar.nim b/lib/pure/sugar.nim
index ccad5cd85..8d23696ac 100644
--- a/lib/pure/sugar.nim
+++ b/lib/pure/sugar.nim
@@ -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:
diff --git a/lib/wrappers/linenoise/linenoise.nim b/lib/wrappers/linenoise/linenoise.nim
index 3bfd74586..c9f1dd695 100644
--- a/lib/wrappers/linenoise/linenoise.nim
+++ b/lib/wrappers/linenoise/linenoise.nim
@@ -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