diff --git a/lib/core/typeinfo.nim b/lib/core/typeinfo.nim
index 18d2091b9f..df2e662268 100644
--- a/lib/core/typeinfo.nim
+++ b/lib/core/typeinfo.nim
@@ -40,6 +40,10 @@ include "system/hti.nim"
{.pop.}
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
+
type
AnyKind* = enum ## The kind of `Any`.
akNone = 0, ## invalid
diff --git a/lib/experimental/diff.nim b/lib/experimental/diff.nim
index ea0a5cfb84..4ca5eb3197 100644
--- a/lib/experimental/diff.nim
+++ b/lib/experimental/diff.nim
@@ -45,6 +45,9 @@ jkl"""
import tables, strutils
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
type
Item* = object ## An Item in the list of differences.
startA*: int ## Start Line number in Data A.
diff --git a/lib/impure/db_sqlite.nim b/lib/impure/db_sqlite.nim
index f79e87f1b9..5e648d097c 100644
--- a/lib/impure/db_sqlite.nim
+++ b/lib/impure/db_sqlite.nim
@@ -172,6 +172,8 @@ import db_common
export db_common
import std/private/[since, dbutils]
+when defined(nimPreviewSlimSystem):
+ import std/assertions
type
DbConn* = PSqlite3 ## Encapsulates a database connection.
diff --git a/lib/impure/nre.nim b/lib/impure/nre.nim
index 738fc39cf0..e9dd49df08 100644
--- a/lib/impure/nre.nim
+++ b/lib/impure/nre.nim
@@ -66,6 +66,9 @@ from strutils import `%`
import options
from unicode import runeLenAt
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
export options
type
diff --git a/lib/impure/re.nim b/lib/impure/re.nim
index 4eacf0091c..8b9de0c68e 100644
--- a/lib/impure/re.nim
+++ b/lib/impure/re.nim
@@ -34,6 +34,9 @@ runnableExamples:
import
pcre, strutils, rtarrays
+when defined(nimPreviewSlimSystem):
+ import std/syncio
+
const
MaxSubpatterns* = 20
## defines the maximum number of subpatterns that can be captured.
diff --git a/lib/pure/asyncdispatch.nim b/lib/pure/asyncdispatch.nim
index ed786cefb0..92ad9c5ffc 100644
--- a/lib/pure/asyncdispatch.nim
+++ b/lib/pure/asyncdispatch.nim
@@ -232,6 +232,9 @@ import asyncfutures except callSoon
import nativesockets, net, deques
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, syncio]
+
export Port, SocketFlag
export asyncfutures except callSoon
export asyncstreams
diff --git a/lib/pure/asyncfile.nim b/lib/pure/asyncfile.nim
index 222a89b97b..9cc9f5b489 100644
--- a/lib/pure/asyncfile.nim
+++ b/lib/pure/asyncfile.nim
@@ -24,6 +24,9 @@
import asyncdispatch, os
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, syncio]
+
# TODO: Fix duplication introduced by PR #4683.
when defined(windows) or defined(nimdoc):
diff --git a/lib/pure/asyncftpclient.nim b/lib/pure/asyncftpclient.nim
index 056d655641..0d2ee80c5e 100644
--- a/lib/pure/asyncftpclient.nim
+++ b/lib/pure/asyncftpclient.nim
@@ -81,6 +81,9 @@
import asyncdispatch, asyncnet, nativesockets, strutils, parseutils, os, times
from net import BufferSize
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
type
AsyncFtpClient* = ref object
csock*: AsyncSocket
diff --git a/lib/pure/asyncfutures.nim b/lib/pure/asyncfutures.nim
index e91b99c3a3..035b6182da 100644
--- a/lib/pure/asyncfutures.nim
+++ b/lib/pure/asyncfutures.nim
@@ -13,6 +13,7 @@ import system/stacktraces
when defined(nimPreviewSlimSystem):
import std/objectdollar # for StackTraceEntry
+ import std/assertions
# TODO: This shouldn't need to be included, but should ideally be exported.
type
diff --git a/lib/pure/asynchttpserver.nim b/lib/pure/asynchttpserver.nim
index ac51d768d5..6694c4bc2f 100644
--- a/lib/pure/asynchttpserver.nim
+++ b/lib/pure/asynchttpserver.nim
@@ -44,6 +44,9 @@ import httpcore
from nativesockets import getLocalAddr, Domain, AF_INET, AF_INET6
import std/private/since
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
export httpcore except parseHeader
const
diff --git a/lib/pure/asyncnet.nim b/lib/pure/asyncnet.nim
index cd02e5df5b..b61eaa9024 100644
--- a/lib/pure/asyncnet.nim
+++ b/lib/pure/asyncnet.nim
@@ -96,6 +96,10 @@
##
import std/private/since
+
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, syncio]
+
import asyncdispatch, nativesockets, net, os
export SOBool
diff --git a/lib/pure/asyncstreams.nim b/lib/pure/asyncstreams.nim
index 083c6f0eab..3f7774ed86 100644
--- a/lib/pure/asyncstreams.nim
+++ b/lib/pure/asyncstreams.nim
@@ -11,6 +11,9 @@
import asyncfutures
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
import deques
type
diff --git a/lib/pure/cgi.nim b/lib/pure/cgi.nim
index 566482b217..0ab8f4c95d 100644
--- a/lib/pure/cgi.nim
+++ b/lib/pure/cgi.nim
@@ -32,6 +32,9 @@
import strutils, os, strtabs, cookies, uri
export uri.encodeUrl, uri.decodeUrl
+when defined(nimPreviewSlimSystem):
+ import std/syncio
+
proc addXmlChar(dest: var string, c: char) {.inline.} =
case c
diff --git a/lib/pure/collections/critbits.nim b/lib/pure/collections/critbits.nim
index dca60b37ba..24257dacb9 100644
--- a/lib/pure/collections/critbits.nim
+++ b/lib/pure/collections/critbits.nim
@@ -36,6 +36,9 @@ runnableExamples:
import std/private/since
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
type
NodeObj[T] {.acyclic.} = object
byte: int ## byte index of the difference
diff --git a/lib/pure/concurrency/cpuload.nim b/lib/pure/concurrency/cpuload.nim
index 841d58d86b..137dd67ad3 100644
--- a/lib/pure/concurrency/cpuload.nim
+++ b/lib/pure/concurrency/cpuload.nim
@@ -19,6 +19,9 @@ when defined(windows):
elif defined(linux):
from cpuinfo import countProcessors
+when defined(nimPreviewSlimSystem):
+ import std/syncio
+
type
ThreadPoolAdvice* = enum
doNothing,
diff --git a/lib/pure/concurrency/threadpool.nim b/lib/pure/concurrency/threadpool.nim
index 9334b48339..5d9e7452ba 100644
--- a/lib/pure/concurrency/threadpool.nim
+++ b/lib/pure/concurrency/threadpool.nim
@@ -23,6 +23,9 @@ when not compileOption("threads"):
import cpuinfo, cpuload, locks, os
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
{.push stackTrace:off.}
type
diff --git a/lib/pure/cookies.nim b/lib/pure/cookies.nim
index 0306558d6d..22704e4348 100644
--- a/lib/pure/cookies.nim
+++ b/lib/pure/cookies.nim
@@ -11,6 +11,9 @@
import strtabs, times, options
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
type
SameSite* {.pure.} = enum ## The SameSite cookie attribute.
diff --git a/lib/pure/encodings.nim b/lib/pure/encodings.nim
index 36e891dd38..26b6e1f221 100644
--- a/lib/pure/encodings.nim
+++ b/lib/pure/encodings.nim
@@ -40,6 +40,8 @@ runnableExamples:
import os
+when defined(nimPreviewSlimSystem):
+ import std/assertions
when not defined(windows):
type
diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim
index 405fadc2f9..5c7f538b5d 100644
--- a/lib/pure/httpclient.nim
+++ b/lib/pure/httpclient.nim
@@ -237,6 +237,9 @@ import std/[
asyncnet, asyncdispatch, asyncfile, nativesockets,
]
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, syncio]
+
export httpcore except parseHeader # TODO: The `except` doesn't work
type
diff --git a/lib/pure/marshal.nim b/lib/pure/marshal.nim
index 06a21976b7..848d7e3fb3 100644
--- a/lib/pure/marshal.nim
+++ b/lib/pure/marshal.nim
@@ -56,6 +56,9 @@ Please contribute a new implementation.""".}
import streams, typeinfo, json, intsets, tables, unicode
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, formatfloat]
+
proc ptrToInt(x: pointer): int {.inline.} =
result = cast[int](x) # don't skip alignment
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index dacb15e17a..28563b6fec 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -24,6 +24,10 @@ else:
import os, streams
+when defined(nimPreviewSlimSystem):
+ import std/[syncio, assertions]
+
+
proc newEIO(msg: string): ref IOError =
new(result)
result.msg = msg
diff --git a/lib/pure/mimetypes.nim b/lib/pure/mimetypes.nim
index d1566d897d..346fb39eed 100644
--- a/lib/pure/mimetypes.nim
+++ b/lib/pure/mimetypes.nim
@@ -29,6 +29,10 @@ runnableExamples:
import tables
from strutils import startsWith, toLowerAscii, strip
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
+
type
MimeDB* = object
mimes: OrderedTable[string, string]
diff --git a/lib/pure/nativesockets.nim b/lib/pure/nativesockets.nim
index ca4e616215..dcba996a45 100644
--- a/lib/pure/nativesockets.nim
+++ b/lib/pure/nativesockets.nim
@@ -16,6 +16,8 @@ import os, options
import std/private/since
import std/strbasics
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, syncio]
when hostOS == "solaris":
{.passl: "-lsocket -lnsl".}
diff --git a/lib/pure/net.nim b/lib/pure/net.nim
index 9ed73e7235..16390d9afd 100644
--- a/lib/pure/net.nim
+++ b/lib/pure/net.nim
@@ -90,6 +90,9 @@ runnableExamples("-r:off"):
import std/private/since
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
import nativesockets
import os, strutils, times, sets, options, std/monotimes
import ssl_config
diff --git a/lib/pure/parsesql.nim b/lib/pure/parsesql.nim
index 61196aead6..3af840e291 100644
--- a/lib/pure/parsesql.nim
+++ b/lib/pure/parsesql.nim
@@ -15,6 +15,9 @@
import strutils, lexbase
import std/private/decode_helpers
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
# ------------------- scanner -------------------------------------------------
type
diff --git a/lib/pure/parsexml.nim b/lib/pure/parsexml.nim
index 79a9cc7307..3ba5a19d5b 100644
--- a/lib/pure/parsexml.nim
+++ b/lib/pure/parsexml.nim
@@ -149,6 +149,9 @@ an HTML document contains.
import
strutils, lexbase, streams, unicode
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
# the parser treats ``
`` as ``
``
# xmlElementCloseEnd, ## ``/>``
diff --git a/lib/pure/random.nim b/lib/pure/random.nim
index 8ce23b9484..de93f468ff 100644
--- a/lib/pure/random.nim
+++ b/lib/pure/random.nim
@@ -75,6 +75,9 @@ runnableExamples:
import algorithm, math
import std/private/since
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
include system/inclrtl
{.push debugger: off.}
diff --git a/lib/pure/rationals.nim b/lib/pure/rationals.nim
index 800979cda3..aba0f4ce4b 100644
--- a/lib/pure/rationals.nim
+++ b/lib/pure/rationals.nim
@@ -22,6 +22,8 @@ runnableExamples:
doAssert r1 / r2 == -2 // 3
import math, hashes
+when defined(nimPreviewSlimSystem):
+ import std/assertions
type Rational*[T] = object
## A rational number, consisting of a numerator `num` and a denominator `den`.
diff --git a/lib/pure/ropes.nim b/lib/pure/ropes.nim
index 84b5b47c2f..b973fd2226 100644
--- a/lib/pure/ropes.nim
+++ b/lib/pure/ropes.nim
@@ -20,7 +20,7 @@ include system/inclrtl
import streams
when defined(nimPreviewSlimSystem):
- import std/syncio
+ import std/[syncio, formatfloat, assertions]
{.push debugger: off.} # the user does not want to trace a part
# of the standard library!
diff --git a/lib/pure/selectors.nim b/lib/pure/selectors.nim
index 3137023701..ab7e104fcd 100644
--- a/lib/pure/selectors.nim
+++ b/lib/pure/selectors.nim
@@ -29,6 +29,9 @@
import os, nativesockets
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
const hasThreadSupport = compileOption("threads") and defined(threadsafe)
const ioselSupportedPlatform* = defined(macosx) or defined(freebsd) or
diff --git a/lib/pure/stats.nim b/lib/pure/stats.nim
index 58014e503b..7f797529d5 100644
--- a/lib/pure/stats.nim
+++ b/lib/pure/stats.nim
@@ -55,6 +55,9 @@ runnableExamples:
from math import FloatClass, sqrt, pow, round
+when defined(nimPreviewSlimSystem):
+ import std/[assertions, formatfloat]
+
{.push debugger: off.} # the user does not want to trace a part
# of the standard library!
{.push checks: off, line_dir: off, stack_trace: off.}
diff --git a/lib/pure/unittest.nim b/lib/pure/unittest.nim
index ec8058c1ac..593bc1ca4c 100644
--- a/lib/pure/unittest.nim
+++ b/lib/pure/unittest.nim
@@ -108,6 +108,9 @@
import std/private/since
import std/exitprocs
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
import macros, strutils, streams, times, sets, sequtils
when declared(stdout):
diff --git a/lib/std/jsbigints.nim b/lib/std/jsbigints.nim
index 27df8fdad1..04578fc87a 100644
--- a/lib/std/jsbigints.nim
+++ b/lib/std/jsbigints.nim
@@ -3,6 +3,9 @@
when not defined(js):
{.fatal: "Module jsbigints is designed to be used with the JavaScript backend.".}
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
type JsBigIntImpl {.importjs: "bigint".} = int # https://github.com/nim-lang/Nim/pull/16606
type JsBigInt* = distinct JsBigIntImpl ## Arbitrary precision integer for JavaScript target.
diff --git a/lib/std/sysrand.nim b/lib/std/sysrand.nim
index 4ee25d01e2..ff62c920b8 100644
--- a/lib/std/sysrand.nim
+++ b/lib/std/sysrand.nim
@@ -62,6 +62,9 @@ when not defined(js):
when defined(posix):
import posix
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
const
batchImplOS = defined(freebsd) or defined(openbsd) or defined(zephyr) or (defined(macosx) and not defined(ios))
batchSize {.used.} = 256
diff --git a/lib/std/tasks.nim b/lib/std/tasks.nim
index 7b931ab14e..ac35e26bfa 100644
--- a/lib/std/tasks.nim
+++ b/lib/std/tasks.nim
@@ -13,6 +13,9 @@
import std/[macros, isolation, typetraits]
import system/ansi_c
+when defined(nimPreviewSlimSystem):
+ import std/assertions
+
export isolation
diff --git a/lib/std/tempfiles.nim b/lib/std/tempfiles.nim
index ce84c2a373..ee42f8a5c9 100644
--- a/lib/std/tempfiles.nim
+++ b/lib/std/tempfiles.nim
@@ -19,6 +19,8 @@ See also:
import os, random
+when defined(nimPreviewSlimSystem):
+ import std/syncio
const
maxRetry = 10000
diff --git a/lib/system/reprjs.nim b/lib/system/reprjs.nim
index f5a0ed3ea8..0818f9cc97 100644
--- a/lib/system/reprjs.nim
+++ b/lib/system/reprjs.nim
@@ -8,6 +8,9 @@
#
# The generic ``repr`` procedure for the javascript backend.
+when defined(nimPreviewSlimSystem):
+ import std/formatfloat
+
proc reprInt(x: int64): string {.compilerproc.} = $x
proc reprFloat(x: float): string {.compilerproc.} = $x
diff --git a/lib/wrappers/openssl.nim b/lib/wrappers/openssl.nim
index e049ac9d27..70fed664ef 100644
--- a/lib/wrappers/openssl.nim
+++ b/lib/wrappers/openssl.nim
@@ -25,6 +25,9 @@
#
from strutils import startsWith
+when defined(nimPreviewSlimSystem):
+ import std/syncio
+
when defined(nimHasStyleChecks):
{.push styleChecks: off.}
diff --git a/testament/lib/stdtest/specialpaths.nim b/testament/lib/stdtest/specialpaths.nim
index 53b94fdbb0..7df63666f9 100644
--- a/testament/lib/stdtest/specialpaths.nim
+++ b/testament/lib/stdtest/specialpaths.nim
@@ -13,6 +13,8 @@ import compiler/nimpaths
]#
import os
+when defined(nimPreviewSlimSystem):
+ import std/assertions
# Note: all the const paths defined here are known at compile time and valid
# so long Nim repo isn't relocated after compilation.
diff --git a/testament/lib/stdtest/unittest_light.nim b/testament/lib/stdtest/unittest_light.nim
index 273bf72f57..4ab1d75435 100644
--- a/testament/lib/stdtest/unittest_light.nim
+++ b/testament/lib/stdtest/unittest_light.nim
@@ -1,3 +1,6 @@
+import std/assertions
+
+
proc mismatch*[T](lhs: T, rhs: T): string =
## Simplified version of `unittest.require` that satisfies a common use case,
## while avoiding pulling too many dependencies. On failure, diagnostic
diff --git a/tests/stdlib/concurrency/tatomics.nim b/tests/stdlib/concurrency/tatomics.nim
index beae0ed6d1..9cfdce83d0 100644
--- a/tests/stdlib/concurrency/tatomics.nim
+++ b/tests/stdlib/concurrency/tatomics.nim
@@ -1,6 +1,8 @@
# test atomic operations
import std/[atomics, bitops]
+import std/assertions
+
type
Object = object
diff --git a/tests/stdlib/concurrency/tatomics_size.nim b/tests/stdlib/concurrency/tatomics_size.nim
index 49387c0c1d..7b43787fbe 100644
--- a/tests/stdlib/concurrency/tatomics_size.nim
+++ b/tests/stdlib/concurrency/tatomics_size.nim
@@ -2,6 +2,7 @@ discard """
targets: "c cpp"
"""
import std/atomics
+import std/assertions
block testSize: # issue 12726
type
diff --git a/tests/stdlib/config.nims b/tests/stdlib/config.nims
index 0c0c5bd884..ea5d738e2b 100644
--- a/tests/stdlib/config.nims
+++ b/tests/stdlib/config.nims
@@ -1,2 +1,3 @@
switch("styleCheck", "usages")
-switch("styleCheck", "error")
\ No newline at end of file
+switch("styleCheck", "error")
+switch("define", "nimPreviewSlimSystem")
\ No newline at end of file
diff --git a/tests/stdlib/mintsets.nim b/tests/stdlib/mintsets.nim
index b4d9ed5162..98786e9ba5 100644
--- a/tests/stdlib/mintsets.nim
+++ b/tests/stdlib/mintsets.nim
@@ -1,4 +1,5 @@
import std/intsets
+import std/assertions
proc test1*[]() =
let a = initIntSet()
diff --git a/tests/stdlib/t10231.nim b/tests/stdlib/t10231.nim
index 3b2b684f3c..3d09721aae 100644
--- a/tests/stdlib/t10231.nim
+++ b/tests/stdlib/t10231.nim
@@ -5,6 +5,7 @@ discard """
"""
import os
+import std/assertions
# consider moving this inside tosproc (taking care that it's for cpp mode)
diff --git a/tests/stdlib/t14139.nim b/tests/stdlib/t14139.nim
index 07d2ff1376..866bdb45f7 100644
--- a/tests/stdlib/t14139.nim
+++ b/tests/stdlib/t14139.nim
@@ -1,4 +1,5 @@
-import heapqueue
+import std/heapqueue
+import std/assertions
var test_queue : HeapQueue[int]
diff --git a/tests/stdlib/t7686.nim b/tests/stdlib/t7686.nim
index c174dfb51e..9902cfcb58 100644
--- a/tests/stdlib/t7686.nim
+++ b/tests/stdlib/t7686.nim
@@ -1,4 +1,5 @@
-import strutils
+import std/strutils
+import std/assertions
type
MyEnum = enum
diff --git a/tests/stdlib/talgorithm.nim b/tests/stdlib/talgorithm.nim
index 61d2bc62f9..83a84f956a 100644
--- a/tests/stdlib/talgorithm.nim
+++ b/tests/stdlib/talgorithm.nim
@@ -6,6 +6,7 @@ discard """
#12928,10456
import std/[sequtils, algorithm, json, sugar]
+import std/assertions
proc test() =
try:
diff --git a/tests/stdlib/tarithmetics.nim b/tests/stdlib/tarithmetics.nim
index 296ccd56eb..a69334e71c 100644
--- a/tests/stdlib/tarithmetics.nim
+++ b/tests/stdlib/tarithmetics.nim
@@ -1,7 +1,7 @@
discard """
targets: "c cpp js"
"""
-
+import std/assertions
# TODO: in future work move existing arithmetic tests (tests/arithm/*) into this file
# FYI https://github.com/nim-lang/Nim/pull/17767
diff --git a/tests/stdlib/tasynchttpserver.nim b/tests/stdlib/tasynchttpserver.nim
index aed21099d8..8cf0d0cedb 100644
--- a/tests/stdlib/tasynchttpserver.nim
+++ b/tests/stdlib/tasynchttpserver.nim
@@ -7,6 +7,7 @@ discard """
import strutils
from net import TimeoutError
+import std/assertions
import httpclient, asynchttpserver, asyncdispatch, asyncfutures
diff --git a/tests/stdlib/tasynchttpserver_transferencoding.nim b/tests/stdlib/tasynchttpserver_transferencoding.nim
index cdd30d04b6..dae87be825 100644
--- a/tests/stdlib/tasynchttpserver_transferencoding.nim
+++ b/tests/stdlib/tasynchttpserver_transferencoding.nim
@@ -8,6 +8,7 @@ import net
import std/asyncnet
import std/nativesockets
+import std/assertions
const postBegin = """
POST / HTTP/1.1
diff --git a/tests/stdlib/tbase64.nim b/tests/stdlib/tbase64.nim
index 8ef5adf576..60fa3865d6 100644
--- a/tests/stdlib/tbase64.nim
+++ b/tests/stdlib/tbase64.nim
@@ -1,7 +1,7 @@
discard """
targets: "c js"
"""
-
+import std/assertions
import std/base64
template main() =
diff --git a/tests/stdlib/tbitops.nim b/tests/stdlib/tbitops.nim
index f807993d64..c90943a93c 100644
--- a/tests/stdlib/tbitops.nim
+++ b/tests/stdlib/tbitops.nim
@@ -5,6 +5,7 @@ OK
'''
"""
import bitops
+import std/assertions
proc main() =
const U8 = 0b0011_0010'u8
diff --git a/tests/stdlib/tbitops_utils.nim b/tests/stdlib/tbitops_utils.nim
index b571baeaea..7a64ea68db 100644
--- a/tests/stdlib/tbitops_utils.nim
+++ b/tests/stdlib/tbitops_utils.nim
@@ -1,4 +1,5 @@
import std/private/bitops_utils
+import std/assertions
template chk(a, b) =
let a2 = castToUnsigned(a)
diff --git a/tests/stdlib/tcgi.nim b/tests/stdlib/tcgi.nim
index 9937287121..7a52dc89b6 100644
--- a/tests/stdlib/tcgi.nim
+++ b/tests/stdlib/tcgi.nim
@@ -1,5 +1,6 @@
import std/unittest
import std/[cgi, strtabs, sugar]
+import std/assertions
block: # Test cgi module
const queryString = "foo=bar&фу=бар&checked=✓&list=1,2,3&with_space=text%20with%20space"
diff --git a/tests/stdlib/tcmdline.nim b/tests/stdlib/tcmdline.nim
index bc78d60576..5c0f717724 100644
--- a/tests/stdlib/tcmdline.nim
+++ b/tests/stdlib/tcmdline.nim
@@ -4,6 +4,7 @@ discard """
"""
import std/os
+import std/assertions
var params = paramCount()
doAssert params == 0
diff --git a/tests/stdlib/tcomplex.nim b/tests/stdlib/tcomplex.nim
index 15267b9051..c7666be84e 100644
--- a/tests/stdlib/tcomplex.nim
+++ b/tests/stdlib/tcomplex.nim
@@ -1,5 +1,5 @@
import std/[complex, math]
-
+import std/assertions
proc `=~`[T](x, y: Complex[T]): bool =
result = abs(x.re-y.re) < 1e-6 and abs(x.im-y.im) < 1e-6
diff --git a/tests/stdlib/tcookies.nim b/tests/stdlib/tcookies.nim
index 0a36cbebcd..4fe104dfc2 100644
--- a/tests/stdlib/tcookies.nim
+++ b/tests/stdlib/tcookies.nim
@@ -4,6 +4,7 @@ discard """
import std/[cookies, times, strtabs]
+import std/assertions
let expire = fromUnix(0) + 1.seconds
diff --git a/tests/stdlib/tcritbits.nim b/tests/stdlib/tcritbits.nim
index b350cb2806..0c2e1d6fad 100644
--- a/tests/stdlib/tcritbits.nim
+++ b/tests/stdlib/tcritbits.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/[sequtils,critbits]
+import std/assertions
template main =
var r: CritBitTree[void]
diff --git a/tests/stdlib/tcstring.nim b/tests/stdlib/tcstring.nim
index 04a26b53cb..d7fdd77383 100644
--- a/tests/stdlib/tcstring.nim
+++ b/tests/stdlib/tcstring.nim
@@ -5,6 +5,7 @@ discard """
from std/sugar import collect
from stdtest/testutils import whenRuntimeJs, whenVMorJs
+import std/assertions
template testMitems() =
block:
diff --git a/tests/stdlib/tcstrutils.nim b/tests/stdlib/tcstrutils.nim
index ba3b1de684..ec2b8596ca 100644
--- a/tests/stdlib/tcstrutils.nim
+++ b/tests/stdlib/tcstrutils.nim
@@ -3,7 +3,7 @@ discard """
"""
import std/cstrutils
-
+import std/assertions
proc main() =
let s = cstring "abcdef"
diff --git a/tests/stdlib/tdb_mysql.nim b/tests/stdlib/tdb_mysql.nim
index 21a7afd4f0..d97358e9f7 100644
--- a/tests/stdlib/tdb_mysql.nim
+++ b/tests/stdlib/tdb_mysql.nim
@@ -1,4 +1,5 @@
import std/db_mysql
+import std/assertions
doAssert dbQuote("SELECT * FROM foo WHERE col1 = 'bar_baz'") == "'SELECT * FROM foo WHERE col1 = \\'bar_baz\\''"
doAssert dbQuote("SELECT * FROM foo WHERE col1 LIKE '%bar_baz%'") == "'SELECT * FROM foo WHERE col1 LIKE \\'%bar_baz%\\''"
diff --git a/tests/stdlib/tdecls.nim b/tests/stdlib/tdecls.nim
index 4e7407045c..5cf352cfbf 100644
--- a/tests/stdlib/tdecls.nim
+++ b/tests/stdlib/tdecls.nim
@@ -1,7 +1,7 @@
discard """
targets: "c cpp js"
"""
-
+import std/assertions
import std/decls
template fun() =
diff --git a/tests/stdlib/tdecode_helpers.nim b/tests/stdlib/tdecode_helpers.nim
index 626a014fc0..1c0735e050 100644
--- a/tests/stdlib/tdecode_helpers.nim
+++ b/tests/stdlib/tdecode_helpers.nim
@@ -1,5 +1,5 @@
import std/private/decode_helpers
-
+import std/assertions
block:
var i = 0
diff --git a/tests/stdlib/tdeques.nim b/tests/stdlib/tdeques.nim
index 03e951fce4..8a788d337b 100644
--- a/tests/stdlib/tdeques.nim
+++ b/tests/stdlib/tdeques.nim
@@ -5,7 +5,7 @@ discard """
import std/deques
from std/sequtils import toSeq
-
+import std/assertions
block:
proc index(self: Deque[int], idx: Natural): int =
diff --git a/tests/stdlib/tdiff.nim b/tests/stdlib/tdiff.nim
index 694ac61981..cb9cebb3a8 100644
--- a/tests/stdlib/tdiff.nim
+++ b/tests/stdlib/tdiff.nim
@@ -4,6 +4,7 @@ discard """
import experimental/diff
import std/strutils
+import std/assertions
proc testHelper(f: seq[Item]): string =
for it in f:
diff --git a/tests/stdlib/tdochelpers.nim b/tests/stdlib/tdochelpers.nim
index 0ad49427cd..15d5388913 100644
--- a/tests/stdlib/tdochelpers.nim
+++ b/tests/stdlib/tdochelpers.nim
@@ -9,6 +9,7 @@ discard """
import ../../lib/packages/docutils/[rstast, rst, dochelpers]
import unittest
+import std/assertions
proc testMsgHandler(filename: string, line, col: int, msgkind: MsgKind,
arg: string) =
diff --git a/tests/stdlib/teditdistance.nim b/tests/stdlib/teditdistance.nim
index 4335356356..b3b323647b 100644
--- a/tests/stdlib/teditdistance.nim
+++ b/tests/stdlib/teditdistance.nim
@@ -1,4 +1,5 @@
import std/editdistance
+import std/assertions
doAssert editDistance("", "") == 0
doAssert editDistance("kitten", "sitting") == 3 # from Wikipedia
diff --git a/tests/stdlib/tencodings.nim b/tests/stdlib/tencodings.nim
index 8ca55dbd9d..10d79f5d08 100644
--- a/tests/stdlib/tencodings.nim
+++ b/tests/stdlib/tencodings.nim
@@ -1,4 +1,5 @@
import std/encodings
+import std/assertions
var fromGBK = open("utf-8", "gbk")
var toGBK = open("gbk", "utf-8")
diff --git a/tests/stdlib/tenumerate.nim b/tests/stdlib/tenumerate.nim
index 7a1c2d10a1..b15b9e2db2 100644
--- a/tests/stdlib/tenumerate.nim
+++ b/tests/stdlib/tenumerate.nim
@@ -1,4 +1,5 @@
import std/enumerate
+import std/assertions
let a = @[1, 3, 5, 7]
diff --git a/tests/stdlib/tenumutils.nim b/tests/stdlib/tenumutils.nim
index 11142216c4..63c5637398 100644
--- a/tests/stdlib/tenumutils.nim
+++ b/tests/stdlib/tenumutils.nim
@@ -4,6 +4,7 @@ discard """
import std/enumutils
from std/sequtils import toSeq
+import std/assertions
template main =
block: # items
diff --git a/tests/stdlib/tenvvars.nim b/tests/stdlib/tenvvars.nim
index b39ce5f72a..47c1ad24ab 100644
--- a/tests/stdlib/tenvvars.nim
+++ b/tests/stdlib/tenvvars.nim
@@ -7,6 +7,7 @@ discard """
import std/envvars
from std/sequtils import toSeq
import stdtest/testutils
+import std/assertions
# "LATIN CAPITAL LETTER AE" in UTF-8 (0xc386)
const unicodeUtf8 = "\xc3\x86"
diff --git a/tests/stdlib/tfdleak.nim b/tests/stdlib/tfdleak.nim
index 79d7ee0d08..1ac746e488 100644
--- a/tests/stdlib/tfdleak.nim
+++ b/tests/stdlib/tfdleak.nim
@@ -7,6 +7,9 @@ discard """
import os, osproc, strutils, nativesockets, net, selectors, memfiles,
asyncdispatch, asyncnet
+
+import std/[assertions, syncio]
+
when defined(windows):
import winlean
@@ -56,7 +59,7 @@ proc isValidHandle(f: int): bool =
proc main() =
if paramCount() == 0:
# Parent process
- let f = system.open("__test_fdleak", fmReadWrite)
+ let f = syncio.open("__test_fdleak", fmReadWrite)
defer: close f
leakCheck(f.getOsFileHandle, "system.open()")
diff --git a/tests/stdlib/tfdleak_multiple.nim b/tests/stdlib/tfdleak_multiple.nim
index 22387607fa..c266812179 100644
--- a/tests/stdlib/tfdleak_multiple.nim
+++ b/tests/stdlib/tfdleak_multiple.nim
@@ -3,6 +3,7 @@ joinable: false
"""
import os, osproc, strutils
+import std/assertions
const Iterations = 200
diff --git a/tests/stdlib/tfenv.nim b/tests/stdlib/tfenv.nim
index 5bcd1ea7c0..a486b8a9da 100644
--- a/tests/stdlib/tfenv.nim
+++ b/tests/stdlib/tfenv.nim
@@ -1,4 +1,5 @@
import std/fenv
+import std/assertions
func is_significant(x: float): bool =
diff --git a/tests/stdlib/tfrexp1.nim b/tests/stdlib/tfrexp1.nim
index 85110231d9..6b4c3b6d3e 100644
--- a/tests/stdlib/tfrexp1.nim
+++ b/tests/stdlib/tfrexp1.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/math
+import std/assertions
const manualTest = false
diff --git a/tests/stdlib/tgenast.nim b/tests/stdlib/tgenast.nim
index 26264744bc..d99c9312e9 100644
--- a/tests/stdlib/tgenast.nim
+++ b/tests/stdlib/tgenast.nim
@@ -7,6 +7,7 @@ discard """
import std/genasts
import std/macros
from std/strformat import `&`
+import std/assertions
import ./mgenast
proc main =
diff --git a/tests/stdlib/tgetaddrinfo.nim b/tests/stdlib/tgetaddrinfo.nim
index ed8ec8b686..a8bcecb0c5 100644
--- a/tests/stdlib/tgetaddrinfo.nim
+++ b/tests/stdlib/tgetaddrinfo.nim
@@ -6,6 +6,7 @@ discard """
# bug: https://github.com/nim-lang/Nim/issues/10198
import nativesockets
+import std/assertions
block DGRAM_UDP:
let aiList = getAddrInfo("127.0.0.1", 999.Port, AF_INET, SOCK_DGRAM, IPPROTO_UDP)
diff --git a/tests/stdlib/tgetfileinfo.nim b/tests/stdlib/tgetfileinfo.nim
index 099ce1c224..0f21622d0b 100644
--- a/tests/stdlib/tgetfileinfo.nim
+++ b/tests/stdlib/tgetfileinfo.nim
@@ -4,6 +4,7 @@ discard """
"""
import os, strutils
+import std/syncio
# Cases
# 1 - String : Existing File : Symlink true
# 2 - String : Existing File : Symlink false
diff --git a/tests/stdlib/tgetprotobyname.nim b/tests/stdlib/tgetprotobyname.nim
index 014c188456..e524510b28 100644
--- a/tests/stdlib/tgetprotobyname.nim
+++ b/tests/stdlib/tgetprotobyname.nim
@@ -1,4 +1,5 @@
import nativesockets
+import std/assertions
doAssert getProtoByName("ipv6") == 41
doAssert getProtoByName("tcp") == 6
diff --git a/tests/stdlib/tglobs.nim b/tests/stdlib/tglobs.nim
index 739a127f85..69ff31938b 100644
--- a/tests/stdlib/tglobs.nim
+++ b/tests/stdlib/tglobs.nim
@@ -1,4 +1,5 @@
import std/private/globs
+import std/assertions
template main =
when defined(windows):
diff --git a/tests/stdlib/thashes.nim b/tests/stdlib/thashes.nim
index 46576ef12a..caae79213f 100644
--- a/tests/stdlib/thashes.nim
+++ b/tests/stdlib/thashes.nim
@@ -4,6 +4,7 @@ discard """
import std/hashes
from stdtest/testutils import disableVm, whenVMorJs
+import std/assertions
when not defined(js) and not defined(cpp):
block:
diff --git a/tests/stdlib/theapqueue.nim b/tests/stdlib/theapqueue.nim
index 3b68166afd..bb40b6f932 100644
--- a/tests/stdlib/theapqueue.nim
+++ b/tests/stdlib/theapqueue.nim
@@ -1,5 +1,5 @@
import std/heapqueue
-
+import std/assertions
proc toSortedSeq[T](h: HeapQueue[T]): seq[T] =
var tmp = h
diff --git a/tests/stdlib/thtmlparser.nim b/tests/stdlib/thtmlparser.nim
index f35785b252..a27d41fe61 100644
--- a/tests/stdlib/thtmlparser.nim
+++ b/tests/stdlib/thtmlparser.nim
@@ -11,7 +11,7 @@ import htmlparser
import xmltree
import strutils
from streams import newStringStream
-
+import std/assertions
block t2813:
const
diff --git a/tests/stdlib/thttpclient.nim b/tests/stdlib/thttpclient.nim
index 8563a0c260..d2fec6eece 100644
--- a/tests/stdlib/thttpclient.nim
+++ b/tests/stdlib/thttpclient.nim
@@ -14,6 +14,8 @@ from net import TimeoutError
import nativesockets, os, httpclient, asyncdispatch
+import std/[assertions, syncio]
+
const manualTests = false
proc makeIPv6HttpServer(hostname: string, port: Port,
diff --git a/tests/stdlib/thttpclient_ssl.nim b/tests/stdlib/thttpclient_ssl.nim
index cf0485b128..feacd3e576 100644
--- a/tests/stdlib/thttpclient_ssl.nim
+++ b/tests/stdlib/thttpclient_ssl.nim
@@ -15,7 +15,7 @@ discard """
when not defined(windows):
# Disabled on Windows due to old OpenSSL version
-
+ import std/[formatfloat, syncio]
import
httpclient,
net,
diff --git a/tests/stdlib/thttpclient_standalone.nim b/tests/stdlib/thttpclient_standalone.nim
index 362b1cb861..2f432eedec 100644
--- a/tests/stdlib/thttpclient_standalone.nim
+++ b/tests/stdlib/thttpclient_standalone.nim
@@ -4,6 +4,8 @@ discard """
import asynchttpserver, httpclient, asyncdispatch, strutils, net
+import std/assertions
+
block: # bug #16436
proc startServer(): AsyncHttpServer =
result = newAsyncHttpServer()
diff --git a/tests/stdlib/thttpcore.nim b/tests/stdlib/thttpcore.nim
index 6f88e95360..3b6b1efa0e 100644
--- a/tests/stdlib/thttpcore.nim
+++ b/tests/stdlib/thttpcore.nim
@@ -1,4 +1,5 @@
import httpcore, strutils
+import std/assertions
block:
block HttpCode:
diff --git a/tests/stdlib/tio.nim b/tests/stdlib/tio.nim
index 0da64f9c26..0e20d64958 100644
--- a/tests/stdlib/tio.nim
+++ b/tests/stdlib/tio.nim
@@ -2,6 +2,7 @@
import std/os
from stdtest/specialpaths import buildDir
+import std/[assertions, syncio]
block: # readChars
let file = buildDir / "D20201118T205105.txt"
diff --git a/tests/stdlib/tisolation.nim b/tests/stdlib/tisolation.nim
index c3857f483d..18b83ea2ef 100644
--- a/tests/stdlib/tisolation.nim
+++ b/tests/stdlib/tisolation.nim
@@ -4,7 +4,7 @@ discard """
"""
import std/[isolation, json]
-
+import std/[assertions, objectdollar]
proc main(moveZeroesOut: static bool) =
diff --git a/tests/stdlib/tjsbigints.nim b/tests/stdlib/tjsbigints.nim
index fcf699c672..29b0ac3e71 100644
--- a/tests/stdlib/tjsbigints.nim
+++ b/tests/stdlib/tjsbigints.nim
@@ -2,7 +2,7 @@ discard """
targets: "js"
"""
-import std/jsbigints
+import std/[jsbigints, assertions]
let big1: JsBigInt = big"2147483647"
diff --git a/tests/stdlib/tjson.nim b/tests/stdlib/tjson.nim
index 3fbb4b5316..a60d45aab4 100644
--- a/tests/stdlib/tjson.nim
+++ b/tests/stdlib/tjson.nim
@@ -14,6 +14,7 @@ when not defined(js):
import std/streams
import stdtest/testutils
from std/fenv import epsilon
+import std/[assertions, objectdollar]
proc testRoundtrip[T](t: T, expected: string) =
# checks that `T => json => T2 => json2` is such that json2 = json
diff --git a/tests/stdlib/tjsonmacro.nim b/tests/stdlib/tjsonmacro.nim
index 9b59c7dc3a..9c1fa833d2 100644
--- a/tests/stdlib/tjsonmacro.nim
+++ b/tests/stdlib/tjsonmacro.nim
@@ -4,6 +4,7 @@ discard """
"""
import json, strutils, options, tables
+import std/assertions
# The definition of the `%` proc needs to be here, since the `% c` calls below
# can only find our custom `%` proc for `Pix` if defined in global scope.
diff --git a/tests/stdlib/tjsonutils.nim b/tests/stdlib/tjsonutils.nim
index d5809ee732..54cb695604 100644
--- a/tests/stdlib/tjsonutils.nim
+++ b/tests/stdlib/tjsonutils.nim
@@ -7,6 +7,7 @@ import std/json
from std/math import isNaN, signbit
from std/fenv import epsilon
from stdtest/testutils import whenRuntimeJs
+import std/[assertions, objectdollar]
proc testRoundtrip[T](t: T, expected: string) =
# checks that `T => json => T2 => json2` is such that json2 = json
diff --git a/tests/stdlib/tlists.nim b/tests/stdlib/tlists.nim
index 00c5b1a27b..701fb79748 100644
--- a/tests/stdlib/tlists.nim
+++ b/tests/stdlib/tlists.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/[lists, sequtils]
+import std/assertions
const
data = [1, 2, 3, 4, 5, 6]
diff --git a/tests/stdlib/tlocks.nim b/tests/stdlib/tlocks.nim
index 0815c5d013..9ce9afd130 100644
--- a/tests/stdlib/tlocks.nim
+++ b/tests/stdlib/tlocks.nim
@@ -5,6 +5,7 @@ discard """
#bug #6049
import uselocks
+import std/assertions
var m = createMyType[int]()
doAssert m.use() == 3
diff --git a/tests/stdlib/tmacros.nim b/tests/stdlib/tmacros.nim
index 27553667a0..7ec2fed9f6 100644
--- a/tests/stdlib/tmacros.nim
+++ b/tests/stdlib/tmacros.nim
@@ -5,6 +5,7 @@ See also:
]#
import std/macros
+import std/assertions
block: # hasArgOfName
macro m(u: untyped): untyped =
diff --git a/tests/stdlib/tmarshal.nim b/tests/stdlib/tmarshal.nim
index 6b71e3bebd..f972332a24 100644
--- a/tests/stdlib/tmarshal.nim
+++ b/tests/stdlib/tmarshal.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/marshal
+import std/[assertions, objectdollar]
# TODO: add static tests
diff --git a/tests/stdlib/tmath.nim b/tests/stdlib/tmath.nim
index 5e501c09bb..66c1f8ca09 100644
--- a/tests/stdlib/tmath.nim
+++ b/tests/stdlib/tmath.nim
@@ -7,6 +7,8 @@ discard """
# but it requires disabling certain lines with `when not defined(nimTmathCase2)`
import std/math
+import std/assertions
+
# Function for approximate comparison of floats
proc `==~`(x, y: float): bool = abs(x - y) < 1e-9
diff --git a/tests/stdlib/tmd5.nim b/tests/stdlib/tmd5.nim
index 4017ac6779..254eefea92 100644
--- a/tests/stdlib/tmd5.nim
+++ b/tests/stdlib/tmd5.nim
@@ -3,6 +3,7 @@ discard """
"""
import md5
+import std/assertions
proc main() {.raises: [].} =
doAssert(getMD5("Franz jagt im komplett verwahrlosten Taxi quer durch Bayern") ==
diff --git a/tests/stdlib/tmemfiles1.nim b/tests/stdlib/tmemfiles1.nim
index 21a65369f7..33657256c0 100644
--- a/tests/stdlib/tmemfiles1.nim
+++ b/tests/stdlib/tmemfiles1.nim
@@ -1,4 +1,6 @@
import memfiles, os
+import std/syncio
+
var
mm: MemFile
fn = "test.mmap"
diff --git a/tests/stdlib/tmemfiles2.nim b/tests/stdlib/tmemfiles2.nim
index 1b249898ee..6fee3c1ae3 100644
--- a/tests/stdlib/tmemfiles2.nim
+++ b/tests/stdlib/tmemfiles2.nim
@@ -4,6 +4,9 @@ discard """
Half read size: 10 Data: Hello'''
"""
import memfiles, os
+import std/syncio
+
+
const
fn = "test.mmap"
var
diff --git a/tests/stdlib/tmemlinesBuf.nim b/tests/stdlib/tmemlinesBuf.nim
index 3f0bd5182d..7bd89d4f2c 100644
--- a/tests/stdlib/tmemlinesBuf.nim
+++ b/tests/stdlib/tmemlinesBuf.nim
@@ -1,4 +1,4 @@
-import memfiles
+import std/[memfiles, assertions]
var inp = memfiles.open("tests/stdlib/tmemlinesBuf.nim")
var buffer: string = ""
var lineCount = 0
diff --git a/tests/stdlib/tmemmapstreams.nim b/tests/stdlib/tmemmapstreams.nim
index dd011d7773..9cfae62c7d 100644
--- a/tests/stdlib/tmemmapstreams.nim
+++ b/tests/stdlib/tmemmapstreams.nim
@@ -12,6 +12,8 @@ Readed line: Hello!
Position after reading line: 7'''
"""
import os, streams, memfiles
+import std/syncio
+
const
fn = "test.mmapstream"
var
diff --git a/tests/stdlib/tmemory.nim b/tests/stdlib/tmemory.nim
index 0349ba0350..553037011d 100644
--- a/tests/stdlib/tmemory.nim
+++ b/tests/stdlib/tmemory.nim
@@ -1,3 +1,4 @@
+import std/assertions
block: # cmpMem
type
diff --git a/tests/stdlib/tmersenne.nim b/tests/stdlib/tmersenne.nim
index 54eb7b216b..64450a0457 100644
--- a/tests/stdlib/tmersenne.nim
+++ b/tests/stdlib/tmersenne.nim
@@ -1,4 +1,5 @@
import std/mersenne
+import std/assertions
template main() =
var mt = newMersenneTwister(2525)
diff --git a/tests/stdlib/tmimetypes.nim b/tests/stdlib/tmimetypes.nim
index 6435309e11..8263e37fdc 100644
--- a/tests/stdlib/tmimetypes.nim
+++ b/tests/stdlib/tmimetypes.nim
@@ -3,6 +3,9 @@ discard """
"""
import std/mimetypes
+import std/assertions
+
+
template main() =
var m = newMimetypes()
doAssert m.getMimetype("mp4") == "video/mp4"
diff --git a/tests/stdlib/tmisc_issues.nim b/tests/stdlib/tmisc_issues.nim
index ed57818b10..b5a02e614b 100644
--- a/tests/stdlib/tmisc_issues.nim
+++ b/tests/stdlib/tmisc_issues.nim
@@ -2,6 +2,8 @@ discard """
targets: "c cpp js"
"""
+import std/assertions
+
# bug #20227
type
Data = object
diff --git a/tests/stdlib/tmonotimes.nim b/tests/stdlib/tmonotimes.nim
index 2933bb6866..f10fef591c 100644
--- a/tests/stdlib/tmonotimes.nim
+++ b/tests/stdlib/tmonotimes.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/[monotimes, times]
+import std/assertions
let d = initDuration(nanoseconds = 10)
let t1 = getMonoTime()
diff --git a/tests/stdlib/tnativesockets.nim b/tests/stdlib/tnativesockets.nim
index 6a1a00881e..b1bbf32c2c 100644
--- a/tests/stdlib/tnativesockets.nim
+++ b/tests/stdlib/tnativesockets.nim
@@ -1,5 +1,6 @@
import std/nativesockets
import stdtest/testutils
+import std/assertions
block:
let hostname = getHostname()
diff --git a/tests/stdlib/tnet.nim b/tests/stdlib/tnet.nim
index 4ec62d88f7..06ff44c3db 100644
--- a/tests/stdlib/tnet.nim
+++ b/tests/stdlib/tnet.nim
@@ -4,6 +4,7 @@ outputsub: ""
import net, nativesockets
import unittest
+import std/assertions
block: # isIpAddress tests
block: # 127.0.0.1 is valid
diff --git a/tests/stdlib/tnetdial.nim b/tests/stdlib/tnetdial.nim
index b836fb78d5..3b8276d6f6 100644
--- a/tests/stdlib/tnetdial.nim
+++ b/tests/stdlib/tnetdial.nim
@@ -5,6 +5,7 @@ discard """
"""
import os, net, nativesockets, asyncdispatch
+import std/[assertions]
## Test for net.dial
diff --git a/tests/stdlib/tntpath.nim b/tests/stdlib/tntpath.nim
index 39798d8166..dce0cf6f81 100644
--- a/tests/stdlib/tntpath.nim
+++ b/tests/stdlib/tntpath.nim
@@ -1,7 +1,5 @@
-discard """
-"""
-
import std/private/ntpath
+import std/assertions
block: # From Python's `Lib/test/test_ntpath.py`
doAssert splitDrive(r"c:\foo\bar") == (r"c:", r"\foo\bar")
diff --git a/tests/stdlib/toids.nim b/tests/stdlib/toids.nim
index 72900d1efb..95161415d9 100644
--- a/tests/stdlib/toids.nim
+++ b/tests/stdlib/toids.nim
@@ -3,7 +3,7 @@ discard """
"""
import std/oids
-
+import std/assertions
block: # genOid
let x = genOid()
diff --git a/tests/stdlib/topenssl.nim b/tests/stdlib/topenssl.nim
index 4c38b42164..3209437de2 100644
--- a/tests/stdlib/topenssl.nim
+++ b/tests/stdlib/topenssl.nim
@@ -1,5 +1,6 @@
import std/wordwrap
import openssl
+import std/assertions
const PubKey = r"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAknKWvrdnncCIzBnIGrZ5qtZrPH+Yo3t7ag9WZIu6Gmc/JgIDDaZhJeyGW0YSnifeAEhooWvM4jDWhTEARzktalSHqYtmwI/1Oxwp6NTYH8akMe2LCpZ5pX9FVA6m9o2tkbdXatbDKRqeD4UA8Ow7Iyrdo6eb1SU8vk+26i+uXHTtsb25p8uf2ppOJrJCy+1vr8Gsnuwny1UdoYZTxMsxRFPf+UX/LrSXMHVq/oPVa3SJ4VHMpYrG/httAugVP6K58xiZ93jst63/dd0JL85mWJu1uS3uz92aL5O97xzth3wR4BbdmDUlN4LuTIwi6DtEcC7gUOTnOzH4zgp2b5RyHwIDAQAB"
const PrivateKey = r"MIIEpAIBAAKCAQEAknKWvrdnncCIzBnIGrZ5qtZrPH+Yo3t7ag9WZIu6Gmc/JgIDDaZhJeyGW0YSnifeAEhooWvM4jDWhTEARzktalSHqYtmwI/1Oxwp6NTYH8akMe2LCpZ5pX9FVA6m9o2tkbdXatbDKRqeD4UA8Ow7Iyrdo6eb1SU8vk+26i+uXHTtsb25p8uf2ppOJrJCy+1vr8Gsnuwny1UdoYZTxMsxRFPf+UX/LrSXMHVq/oPVa3SJ4VHMpYrG/httAugVP6K58xiZ93jst63/dd0JL85mWJu1uS3uz92aL5O97xzth3wR4BbdmDUlN4LuTIwi6DtEcC7gUOTnOzH4zgp2b5RyHwIDAQABAoIBACSOxmLFlfAjaALLTNCeTLEA5bQshgYJhT1sprxixQpiS7lJN0npBsdYzBFs5KjmetzHNpdVOcgdOO/204L0Gwo4H8WLLxNS3HztAulEeM813zc3fUYfWi6eHshk//j8VR/TDNd21TElm99z7FA4KGsXAE0iQhxrN0aqz5aWYIhjprtHA5KxXIiESnTkof5Cud8oXEnPiwPGNhq93QeQzh7xQIKSaDKBcdAa6edTFhzc4RLUQRfrik/GqJzouEDQ9v6H/uiOLTB3FxxwErQIf6dvSVhD9gs1nSLQfyj3S2Hxe9S2zglTl07EsawTQUxtVQkdZUOok67c7CPBxecZ2wECgYEA2c31gr/UJwczT+P/AE52GkHHETXMxqE3Hnh9n4CitfAFSD5X0VwZvGjZIlln2WjisTd92Ymf65eDylX2kCm93nzZ2GfXgS4zl4oY1N87+VeNQlx9f2+6GU7Hs0HFdfu8bGd+0sOuWA1PFqQCobxCACMPTkuzsG9M7knUTN59HS8CgYEArCEoP4ReYoOFveXUE0AteTPb4hryvR9VDEolP+LMoiPe8AzBMeB5fP493TPdjtnWmrPCXNLc7UAFSj2CZsRhau4PuiqnNrsb5iz/7iXVl3E8wZvS4w7WYpO4m33L0cijA6MdcdqilQu4Z5tw4nG45lAW9UYyOc9D4hJTzgtGHhECgYA6QyDoj931brSoK0ocT+DB11Sj4utbOuberMaV8zgTSRhwodSl+WgdAUMMMDRacPcrBrgQiAMSZ15msqYZHEFhEa7Id8arFKvSXquTzf9iDKyJ0unzO/ThLjS3W+GxVNyrdufzA0tQ3IaKfOcDUrOpC7fdbtyrVqqSl4dF5MI9GwKBgQCl3OF6qyOEDDZgsUk1L59h7k3QR6VmBf4e9IeGUxZamvQlHjU/yY1nm1mjgGnbUB/SPKtqZKoMV6eBTVoNiuhQcItpGda9D3mnx+7p3T0/TBd+fJeuwcplfPDjrEktogcq5w/leQc3Ve7gr1EMcwb3r28f8/9L42QHQR/OKODs8QKBgQCFAvxDRPyYg7V/AgD9rt1KzXi4+b3Pls5NXZa2g/w+hmdhHUNxV5IGmHlqFnptGyshgYgQGxMMkW0iJ1j8nLamFnkbFQOp5/UKbdPLRKiB86oPpxsqYtPXucDUqEfcMsp57mD1CpGVODbspogFpSUvQpMECkhvI0XLMbolMdo53g=="
diff --git a/tests/stdlib/toptions.nim b/tests/stdlib/toptions.nim
index 633be6c045..6065425b98 100644
--- a/tests/stdlib/toptions.nim
+++ b/tests/stdlib/toptions.nim
@@ -4,8 +4,8 @@ discard """
import std/[json, options]
-when defined(nimPreviewSlimSystem):
- import std/objectdollar
+import std/assertions
+import std/objectdollar
# RefPerson is used to test that overloaded `==` operator is not called by
diff --git a/tests/stdlib/tos.nim b/tests/stdlib/tos.nim
index d02fed7142..bd91a3de9e 100644
--- a/tests/stdlib/tos.nim
+++ b/tests/stdlib/tos.nim
@@ -28,6 +28,7 @@ Raises
import os, strutils, pathnorm
from stdtest/specialpaths import buildDir
+import std/[syncio, assertions]
block fileOperations:
let files = @["these.txt", "are.x", "testing.r", "files.q"]
diff --git a/tests/stdlib/tos_unc.nim b/tests/stdlib/tos_unc.nim
index e55de11cef..fc74a4b9d3 100644
--- a/tests/stdlib/tos_unc.nim
+++ b/tests/stdlib/tos_unc.nim
@@ -4,6 +4,7 @@ discard """
# bug 10952, UNC paths
import os
+import std/assertions
doAssert r"\\hostname\foo\bar" / "baz" == r"\\hostname\foo\bar\baz"
doAssert r"\\?\C:\foo" / "bar" == r"\\?\C:\foo\bar"
diff --git a/tests/stdlib/tosenv.nim b/tests/stdlib/tosenv.nim
index 310bfe202a..f7b3bb9d60 100644
--- a/tests/stdlib/tosenv.nim
+++ b/tests/stdlib/tosenv.nim
@@ -7,6 +7,7 @@ discard """
import std/os
from std/sequtils import toSeq
import stdtest/testutils
+import std/assertions
# "LATIN CAPITAL LETTER AE" in UTF-8 (0xc386)
const unicodeUtf8 = "\xc3\x86"
diff --git a/tests/stdlib/tosproc.nim b/tests/stdlib/tosproc.nim
index f55dd3e217..47fec25674 100644
--- a/tests/stdlib/tosproc.nim
+++ b/tests/stdlib/tosproc.nim
@@ -9,6 +9,7 @@ because it'd need cleanup up stdout
see also: tests/osproc/*.nim; consider merging those into a single test here
(easier to factor and test more things as a single self contained test)
]#
+import std/[assertions, syncio]
when defined(case_testfile): # compiled test file for child process
from posix import exitnow
diff --git a/tests/stdlib/tosprocterminate.nim b/tests/stdlib/tosprocterminate.nim
index 8e9041b81c..08b379569f 100644
--- a/tests/stdlib/tosprocterminate.nim
+++ b/tests/stdlib/tosprocterminate.nim
@@ -5,6 +5,7 @@ discard """
"""
import os, osproc, times, std / monotimes
+import std/assertions
when defined(windows):
const ProgramWhichDoesNotEnd = "notepad"
diff --git a/tests/stdlib/tpackedsets.nim b/tests/stdlib/tpackedsets.nim
index d0149adc58..2c69f6b1be 100644
--- a/tests/stdlib/tpackedsets.nim
+++ b/tests/stdlib/tpackedsets.nim
@@ -4,6 +4,8 @@ import std/sets
import sequtils
import algorithm
+import std/assertions
+
block basicIntSetTests:
var y = initPackedSet[int]()
y.incl(1)
diff --git a/tests/stdlib/tparsecfg.nim b/tests/stdlib/tparsecfg.nim
index b2e57ac3d1..16f12bc9e5 100644
--- a/tests/stdlib/tparsecfg.nim
+++ b/tests/stdlib/tparsecfg.nim
@@ -3,6 +3,7 @@ discard """
"""
import parsecfg, streams, sequtils
+import std/assertions
when not defined(js):
from stdtest/specialpaths import buildDir
diff --git a/tests/stdlib/tparsecsv.nim b/tests/stdlib/tparsecsv.nim
index 0d004d45d0..a879019f68 100644
--- a/tests/stdlib/tparsecsv.nim
+++ b/tests/stdlib/tparsecsv.nim
@@ -1,5 +1,6 @@
include parsecsv
import strutils, os
+import std/assertions
block: # Tests for reading the header row
let content = "\nOne,Two,Three,Four\n1,2,3,4\n10,20,30,40,\n100,200,300,400\n"
diff --git a/tests/stdlib/tparsesql.nim b/tests/stdlib/tparsesql.nim
index 8ef67f5dcd..cfd8ad1482 100644
--- a/tests/stdlib/tparsesql.nim
+++ b/tests/stdlib/tparsesql.nim
@@ -2,6 +2,7 @@ discard """
targets: "c js"
"""
import parsesql
+import std/assertions
doAssert treeRepr(parseSql("INSERT INTO STATS VALUES (10, 5.5); ")
) == """
diff --git a/tests/stdlib/tparseutils.nim b/tests/stdlib/tparseutils.nim
index db7a0ac8d1..084a85dac9 100644
--- a/tests/stdlib/tparseutils.nim
+++ b/tests/stdlib/tparseutils.nim
@@ -1,4 +1,5 @@
-import std/[parseutils, sequtils, sugar]
+import std/[parseutils, sequtils, sugar, formatfloat]
+import std/assertions
let input = "$test{} $this is ${an{ example}} "
diff --git a/tests/stdlib/tparsopt.nim b/tests/stdlib/tparsopt.nim
index 54a470cb30..f3a9a97982 100644
--- a/tests/stdlib/tparsopt.nim
+++ b/tests/stdlib/tparsopt.nim
@@ -9,6 +9,8 @@ disabled: true
import
parseopt
+import std/[assertions, syncio]
+
proc writeHelp() =
writeLine(stdout, "Usage: tparsopt [options] filename [options]")
diff --git a/tests/stdlib/tpathnorm.nim b/tests/stdlib/tpathnorm.nim
index 2cb644e3c1..1cd9130848 100644
--- a/tests/stdlib/tpathnorm.nim
+++ b/tests/stdlib/tpathnorm.nim
@@ -2,6 +2,7 @@ discard """
"""
import std/os
+import std/assertions
when doslikeFileSystem:
import std/pathnorm
diff --git a/tests/stdlib/tpegs.nim b/tests/stdlib/tpegs.nim
index 550f7ac4fd..cbc8fe205b 100644
--- a/tests/stdlib/tpegs.nim
+++ b/tests/stdlib/tpegs.nim
@@ -54,7 +54,7 @@ Event parser output
when defined(nimHasEffectsOf):
{.experimental: "strictEffects".}
-import std/[strutils, streams, pegs]
+import std/[strutils, streams, pegs, assertions]
const
indent = " "
diff --git a/tests/stdlib/tposix.nim b/tests/stdlib/tposix.nim
index 14f1fd6e2b..ea0472c310 100644
--- a/tests/stdlib/tposix.nim
+++ b/tests/stdlib/tposix.nim
@@ -7,6 +7,7 @@ outputsub: ""
when not defined(windows):
import posix
+ import std/syncio
var
u: Utsname
diff --git a/tests/stdlib/tprelude.nim b/tests/stdlib/tprelude.nim
index a60bcf70a6..47f46b511d 100644
--- a/tests/stdlib/tprelude.nim
+++ b/tests/stdlib/tprelude.nim
@@ -8,6 +8,8 @@ when defined nimTestTpreludeCase1:
else:
include prelude
+import std/assertions
+
template main() =
doAssert toSeq(1..3) == @[1,2,3]
static: main()
diff --git a/tests/stdlib/tpunycode.nim b/tests/stdlib/tpunycode.nim
index bb2b4beb4f..dea6b2dc6a 100644
--- a/tests/stdlib/tpunycode.nim
+++ b/tests/stdlib/tpunycode.nim
@@ -1,4 +1,5 @@
import punycode, std/unicode
+import std/assertions
doAssert(decode(encode("", "bücher")) == "bücher")
doAssert(decode(encode("münchen")) == "münchen")
diff --git a/tests/stdlib/tquit.nim b/tests/stdlib/tquit.nim
index 81726fd7f6..3a7db4d4ed 100644
--- a/tests/stdlib/tquit.nim
+++ b/tests/stdlib/tquit.nim
@@ -7,6 +7,8 @@ joinable: false
# Test `addQuitProc` (now deprecated by `addExitProc`)
+import std/syncio
+
proc myExit() {.noconv.} =
write(stdout, "just exiting...\n")
diff --git a/tests/stdlib/trandom.nim b/tests/stdlib/trandom.nim
index 61e858f86c..ef71c3442d 100644
--- a/tests/stdlib/trandom.nim
+++ b/tests/stdlib/trandom.nim
@@ -2,7 +2,7 @@ discard """
joinable: false # to avoid messing with global rand state
targets: "c js"
"""
-
+import std/[assertions, formatfloat]
import std/[random, math, stats, sets, tables]
when not defined(js):
import std/os
diff --git a/tests/stdlib/trationals.nim b/tests/stdlib/trationals.nim
index 0a3a95a9a9..cf2e92003f 100644
--- a/tests/stdlib/trationals.nim
+++ b/tests/stdlib/trationals.nim
@@ -1,4 +1,5 @@
import std/[rationals, math]
+import std/assertions
template main() =
var
diff --git a/tests/stdlib/tre.nim b/tests/stdlib/tre.nim
index 9f27f7db22..3986934c49 100644
--- a/tests/stdlib/tre.nim
+++ b/tests/stdlib/tre.nim
@@ -1,4 +1,5 @@
import std/re
+import std/assertions
proc testAll() =
doAssert match("(a b c)", rex"\( .* \)")
diff --git a/tests/stdlib/tregex.nim b/tests/stdlib/tregex.nim
index 21f4e67439..cf80f81224 100644
--- a/tests/stdlib/tregex.nim
+++ b/tests/stdlib/tregex.nim
@@ -11,7 +11,7 @@ when defined(powerpc64):
else:
import
re
-
+ import std/syncio
if "keyA = valueA" =~ re"\s*(\w+)\s*\=\s*(\w+)":
write(stdout, "key: ", matches[0])
elif "# comment!" =~ re.re"\s*(\#.*)":
diff --git a/tests/stdlib/tregistry.nim b/tests/stdlib/tregistry.nim
index 8bf084f6d5..4956f81962 100644
--- a/tests/stdlib/tregistry.nim
+++ b/tests/stdlib/tregistry.nim
@@ -5,6 +5,7 @@ discard """
when defined(windows):
import std/registry
+ import std/assertions
block: # bug #14010
let path = "Environment"
diff --git a/tests/stdlib/trepr.nim b/tests/stdlib/trepr.nim
index 82c9918052..c85ae2b2aa 100644
--- a/tests/stdlib/trepr.nim
+++ b/tests/stdlib/trepr.nim
@@ -7,6 +7,7 @@ discard """
from strutils import endsWith, contains, strip
from std/macros import newLit
+import std/assertions
macro deb(a): string = newLit a.repr.strip
macro debTyped(a: typed): string = newLit a.repr.strip
diff --git a/tests/stdlib/tropes.nim b/tests/stdlib/tropes.nim
index 5a9150a336..6d41e9e44a 100644
--- a/tests/stdlib/tropes.nim
+++ b/tests/stdlib/tropes.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/ropes
+import std/assertions
template main() =
block:
diff --git a/tests/stdlib/trst.nim b/tests/stdlib/trst.nim
index a92ab2daa1..818f8b8dcf 100644
--- a/tests/stdlib/trst.nim
+++ b/tests/stdlib/trst.nim
@@ -23,6 +23,7 @@ import ../../lib/packages/docutils/[rstgen, rst, rstast]
import unittest, strutils
import std/private/miscdollars
import os
+import std/[assertions, syncio]
const preferMarkdown = {roPreferMarkdown, roSupportMarkdown, roNimFile, roSandboxDisabled}
const preferRst = {roSupportMarkdown, roNimFile, roSandboxDisabled}
diff --git a/tests/stdlib/trstgen.nim b/tests/stdlib/trstgen.nim
index 6edacfc248..b33ee82a8e 100644
--- a/tests/stdlib/trstgen.nim
+++ b/tests/stdlib/trstgen.nim
@@ -8,6 +8,7 @@ import ../../lib/packages/docutils/rstgen
import ../../lib/packages/docutils/rst
import unittest, strutils, strtabs
import std/private/miscdollars
+import std/assertions
const
NoSandboxOpts = {roPreferMarkdown, roSupportMarkdown, roNimFile, roSandboxDisabled}
diff --git a/tests/stdlib/tsequtils.nim b/tests/stdlib/tsequtils.nim
index ddc0234346..176c00214b 100644
--- a/tests/stdlib/tsequtils.nim
+++ b/tests/stdlib/tsequtils.nim
@@ -7,6 +7,7 @@ discard """
import std/sequtils
import strutils
from algorithm import sorted
+import std/assertions
{.experimental: "strictEffects".}
{.push warningAsError[Effect]: on.}
diff --git a/tests/stdlib/tsetutils.nim b/tests/stdlib/tsetutils.nim
index f2fb81e6aa..037c696c1c 100644
--- a/tests/stdlib/tsetutils.nim
+++ b/tests/stdlib/tsetutils.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/setutils
+import std/assertions
type
Colors = enum
diff --git a/tests/stdlib/tsha1.nim b/tests/stdlib/tsha1.nim
index 6dca1f1971..c984d97bda 100644
--- a/tests/stdlib/tsha1.nim
+++ b/tests/stdlib/tsha1.nim
@@ -1,4 +1,5 @@
import std/sha1
+import std/assertions
let hash1 = secureHash("a93tgj0p34jagp9[agjp98ajrhp9aej]")
doAssert hash1 == hash1
diff --git a/tests/stdlib/tsharedlist.nim b/tests/stdlib/tsharedlist.nim
index 693f1018eb..0bb3ad827f 100644
--- a/tests/stdlib/tsharedlist.nim
+++ b/tests/stdlib/tsharedlist.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/sharedlist
+import std/assertions
block:
var
diff --git a/tests/stdlib/tsharedtable.nim b/tests/stdlib/tsharedtable.nim
index 0a8f7bcc09..0022f7bb25 100644
--- a/tests/stdlib/tsharedtable.nim
+++ b/tests/stdlib/tsharedtable.nim
@@ -5,6 +5,7 @@ output: '''
"""
import sharedtables
+import std/assertions
block:
var table: SharedTable[int, int]
diff --git a/tests/stdlib/tsince.nim b/tests/stdlib/tsince.nim
index d0320ff12c..877a2bcda9 100644
--- a/tests/stdlib/tsince.nim
+++ b/tests/stdlib/tsince.nim
@@ -1,4 +1,5 @@
import std/private/since
+import std/assertions
proc fun1(): int {.since: (1, 3).} = 12
proc fun1Bad(): int {.since: (99, 3).} = 12
diff --git a/tests/stdlib/tsqlitebindatas.nim b/tests/stdlib/tsqlitebindatas.nim
index b2c3247fad..80d9df864b 100644
--- a/tests/stdlib/tsqlitebindatas.nim
+++ b/tests/stdlib/tsqlitebindatas.nim
@@ -6,6 +6,7 @@ import db_sqlite
import random
import os
from stdtest/specialpaths import buildDir
+import std/assertions
block tsqlitebindatas: ## db_sqlite binary data
const dbName = buildDir / "tsqlitebindatas.db"
diff --git a/tests/stdlib/tssl.nim b/tests/stdlib/tssl.nim
index 379c1b1e5e..6d238e6c93 100644
--- a/tests/stdlib/tssl.nim
+++ b/tests/stdlib/tssl.nim
@@ -4,7 +4,7 @@ discard """
disabled: "openbsd"
"""
# disabled: pending bug #15713
-import net, nativesockets
+import std/[net, nativesockets, assertions]
when defined(posix): import os, posix
else:
diff --git a/tests/stdlib/tstackframes.nim b/tests/stdlib/tstackframes.nim
index 618ff7b921..b0f05d51d4 100644
--- a/tests/stdlib/tstackframes.nim
+++ b/tests/stdlib/tstackframes.nim
@@ -1,4 +1,4 @@
-import std/[strformat,os,osproc]
+import std/[strformat,os,osproc,assertions]
import stdtest/unittest_light
proc main(opt: string, expected: string) =
diff --git a/tests/stdlib/tstats.nim b/tests/stdlib/tstats.nim
index a2dee7ecdd..3ed0130052 100644
--- a/tests/stdlib/tstats.nim
+++ b/tests/stdlib/tstats.nim
@@ -1,5 +1,6 @@
+import std/[stats, assertions]
import std/math
-import std/stats
+
func `~=`(x, y: float32): bool =
math.almostEqual(x, y)
diff --git a/tests/stdlib/tstdlib_issues.nim b/tests/stdlib/tstdlib_issues.nim
index 323bf09c6c..9db3196038 100644
--- a/tests/stdlib/tstdlib_issues.nim
+++ b/tests/stdlib/tstdlib_issues.nim
@@ -17,7 +17,7 @@ Second readLine raised an exception
'''
"""
-import terminal, colors, re, encodings, strutils, os
+import std/[terminal, colors, re, encodings, strutils, os, assertions, syncio]
block t9394:
@@ -77,7 +77,7 @@ block t5349:
const fn = "file9char.txt"
writeFile(fn, "123456789")
- var f = system.open(fn)
+ var f = syncio.open(fn)
echo getFileSize(f)
var line = newString(10)
diff --git a/tests/stdlib/tstdlib_various.nim b/tests/stdlib/tstdlib_various.nim
index 4efc5a57ed..ce9c9a7c57 100644
--- a/tests/stdlib/tstdlib_various.nim
+++ b/tests/stdlib/tstdlib_various.nim
@@ -33,9 +33,9 @@ true
"""
import
- critbits, sets, strutils, tables, random, algorithm, re, ropes,
- segfaults, lists, parsesql, streams, os, htmlgen, xmltree, strtabs
-
+ std/[critbits, sets, strutils, tables, random, algorithm, re, ropes,
+ segfaults, lists, parsesql, streams, os, htmlgen, xmltree, strtabs]
+import std/[syncio, assertions]
block tcritbits:
var r: CritBitTree[void]
diff --git a/tests/stdlib/tstrbasics.nim b/tests/stdlib/tstrbasics.nim
index bf562d9ecd..9a624fec3c 100644
--- a/tests/stdlib/tstrbasics.nim
+++ b/tests/stdlib/tstrbasics.nim
@@ -3,7 +3,7 @@ discard """
matrix: "--gc:refc; --gc:arc"
"""
-import std/[strbasics, sugar]
+import std/[strbasics, sugar, assertions]
template strip2(input: string, args: varargs[untyped]): untyped =
var a = input
diff --git a/tests/stdlib/tstreams.nim b/tests/stdlib/tstreams.nim
index cc1343651b..08441a7668 100644
--- a/tests/stdlib/tstreams.nim
+++ b/tests/stdlib/tstreams.nim
@@ -16,7 +16,7 @@ GROOT
"""
-import streams
+import std/[syncio, streams, assertions]
block tstreams:
diff --git a/tests/stdlib/tstrformat.nim b/tests/stdlib/tstrformat.nim
index ea7be8297e..b44a11e68d 100644
--- a/tests/stdlib/tstrformat.nim
+++ b/tests/stdlib/tstrformat.nim
@@ -3,8 +3,8 @@
import genericstrformat
import std/[strformat, strutils, times, tables, json]
-when defined(nimPreviewSlimSystem):
- import std/objectdollar
+import std/[assertions, formatfloat]
+import std/objectdollar
proc main() =
block: # issue #7632
diff --git a/tests/stdlib/tstring.nim b/tests/stdlib/tstring.nim
index ce309626e9..232211471a 100644
--- a/tests/stdlib/tstring.nim
+++ b/tests/stdlib/tstring.nim
@@ -5,6 +5,7 @@ discard """
from std/sequtils import toSeq, map
from std/sugar import `=>`
+import std/assertions
proc tester[T](x: T) =
let test = toSeq(0..4).map(i => newSeq[int]())
diff --git a/tests/stdlib/tstrmiscs.nim b/tests/stdlib/tstrmiscs.nim
index 2e9131ff80..76b14d27aa 100644
--- a/tests/stdlib/tstrmiscs.nim
+++ b/tests/stdlib/tstrmiscs.nim
@@ -1,4 +1,5 @@
-import strmisc
+import std/strmisc
+import std/assertions
doAssert expandTabs("\t", 4) == " "
diff --git a/tests/stdlib/tstrscans.nim b/tests/stdlib/tstrscans.nim
index 24a3c02f72..e30c86279b 100644
--- a/tests/stdlib/tstrscans.nim
+++ b/tests/stdlib/tstrscans.nim
@@ -2,7 +2,7 @@ discard """
output: ""
"""
-import strscans, strutils
+import std/[strscans, strutils, assertions]
block ParsePasswd:
proc parsePasswd(content: string): seq[string] =
diff --git a/tests/stdlib/tstrtabs.nim b/tests/stdlib/tstrtabs.nim
index f629c183c3..036287bfda 100644
--- a/tests/stdlib/tstrtabs.nim
+++ b/tests/stdlib/tstrtabs.nim
@@ -88,7 +88,7 @@ value1 = value2
'''
"""
-import strtabs
+import std/[strtabs, assertions, syncio]
var tab = newStringTable({"key1": "val1", "key2": "val2"},
modeStyleInsensitive)
diff --git a/tests/stdlib/tstrtabs.nims b/tests/stdlib/tstrtabs.nims
index c8ed4ac406..3563ad0ad6 100644
--- a/tests/stdlib/tstrtabs.nims
+++ b/tests/stdlib/tstrtabs.nims
@@ -1,4 +1,4 @@
-import strtabs
+import std/[strtabs, assertions]
static:
let t = {"name": "John", "city": "Monaco"}.newStringTable
diff --git a/tests/stdlib/tstrtabs2.nim b/tests/stdlib/tstrtabs2.nim
index cb534f1988..f055b5d33a 100644
--- a/tests/stdlib/tstrtabs2.nim
+++ b/tests/stdlib/tstrtabs2.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/strtabs
+import std/assertions
macro m =
var t = {"name": "John"}.newStringTable
diff --git a/tests/stdlib/tstrutils.nim b/tests/stdlib/tstrutils.nim
index 9ea4d72f2e..0e6384d7e7 100644
--- a/tests/stdlib/tstrutils.nim
+++ b/tests/stdlib/tstrutils.nim
@@ -4,6 +4,7 @@ discard """
import std/strutils
from stdtest/testutils import disableVm
+import std/assertions
# xxx each instance of `disableVm` and `when not defined js:` should eventually be fixed
template rejectParse(e) =
diff --git a/tests/stdlib/tstrutils2.nim b/tests/stdlib/tstrutils2.nim
index a8bf08eedf..22a935ab81 100644
--- a/tests/stdlib/tstrutils2.nim
+++ b/tests/stdlib/tstrutils2.nim
@@ -3,6 +3,7 @@ discard """
"""
import "$lib/.." / compiler/strutils2
+import std/assertions
block: # setLen
var a = "abc"
diff --git a/tests/stdlib/tsugar.nim b/tests/stdlib/tsugar.nim
index 72abadae77..9c1213901f 100644
--- a/tests/stdlib/tsugar.nim
+++ b/tests/stdlib/tsugar.nim
@@ -4,6 +4,7 @@ x + y = 30
'''
"""
import std/[sugar, algorithm, random, sets, tables, strutils]
+import std/[syncio, assertions]
template main() =
block: # `=>`
diff --git a/tests/stdlib/tsums.nim b/tests/stdlib/tsums.nim
index 4c29d3e106..071e0b303c 100644
--- a/tests/stdlib/tsums.nim
+++ b/tests/stdlib/tsums.nim
@@ -1,5 +1,6 @@
import std/sums
from math import pow
+import std/assertions
var epsilon = 1.0
while 1.0 + epsilon != 1.0:
diff --git a/tests/stdlib/tsysrand.nim b/tests/stdlib/tsysrand.nim
index c6d43a8fbc..e6b65e70f1 100644
--- a/tests/stdlib/tsysrand.nim
+++ b/tests/stdlib/tsysrand.nim
@@ -4,7 +4,7 @@ discard """
"""
import std/sysrand
-
+import std/assertions
template main() =
block:
diff --git a/tests/stdlib/tsystem.nim b/tests/stdlib/tsystem.nim
index 5efc9fd38d..1a976f7a2e 100644
--- a/tests/stdlib/tsystem.nim
+++ b/tests/stdlib/tsystem.nim
@@ -3,6 +3,7 @@ discard """
"""
import stdtest/testutils
+import std/assertions
# TODO: in future work move existing `system` tests here, where they belong
diff --git a/tests/stdlib/ttables.nim b/tests/stdlib/ttables.nim
index c1ae89b320..ab65024111 100644
--- a/tests/stdlib/ttables.nim
+++ b/tests/stdlib/ttables.nim
@@ -1,4 +1,5 @@
import tables, hashes
+import std/assertions
type
Person = object
diff --git a/tests/stdlib/ttasks.nim b/tests/stdlib/ttasks.nim
index e90823aba3..4889d49d94 100644
--- a/tests/stdlib/ttasks.nim
+++ b/tests/stdlib/ttasks.nim
@@ -4,6 +4,7 @@ discard """
"""
import std/[tasks, strformat]
+import std/assertions
block:
var s = ""
diff --git a/tests/stdlib/ttempfiles.nim b/tests/stdlib/ttempfiles.nim
index 297410686a..1159e08efc 100644
--- a/tests/stdlib/ttempfiles.nim
+++ b/tests/stdlib/ttempfiles.nim
@@ -4,6 +4,7 @@ discard """
import std/tempfiles
import std/[os, nre]
+import std/[assertions, syncio]
const
prefix = "D20210502T100442" # safety precaution to only affect files/dirs with this prefix
diff --git a/tests/stdlib/tterminal.nim b/tests/stdlib/tterminal.nim
index 364c8d82e7..16365e71c6 100644
--- a/tests/stdlib/tterminal.nim
+++ b/tests/stdlib/tterminal.nim
@@ -1,7 +1,6 @@
discard """
action: compile
"""
-
import terminal, colors
styledEcho fgColor, colRed, "Test"
diff --git a/tests/stdlib/tterminal_12759.nim b/tests/stdlib/tterminal_12759.nim
index d6034ab577..e9ea3127cd 100644
--- a/tests/stdlib/tterminal_12759.nim
+++ b/tests/stdlib/tterminal_12759.nim
@@ -3,6 +3,7 @@ discard """
"""
import terminal
+import std/syncio
proc test() {.raises:[IOError, ValueError].} =
setBackgroundColor(stdout, bgRed)
diff --git a/tests/stdlib/ttestutils.nim b/tests/stdlib/ttestutils.nim
index d24c5b39aa..0f8bf16cfe 100644
--- a/tests/stdlib/ttestutils.nim
+++ b/tests/stdlib/ttestutils.nim
@@ -1,4 +1,5 @@
import stdtest/testutils
+import std/assertions
block: # assertAll
assertAll:
diff --git a/tests/stdlib/tthreadpool.nim b/tests/stdlib/tthreadpool.nim
index 897c7d1735..bc574faebd 100644
--- a/tests/stdlib/tthreadpool.nim
+++ b/tests/stdlib/tthreadpool.nim
@@ -3,7 +3,7 @@ discard """
disabled: "freebsd"
output: "42"
"""
-
+import std/assertions
from std/threadpool import spawn, `^`, sync
block: # bug #12005
proc doworkok(i: int) {.thread.} = echo i
diff --git a/tests/stdlib/ttimes.nim b/tests/stdlib/ttimes.nim
index fd440eb204..4f396c735e 100644
--- a/tests/stdlib/ttimes.nim
+++ b/tests/stdlib/ttimes.nim
@@ -3,6 +3,7 @@ discard """
"""
import times, strutils, unittest
+import std/assertions
when not defined(js):
import os
diff --git a/tests/stdlib/ttypeinfo.nim b/tests/stdlib/ttypeinfo.nim
index 1cddea7814..5e17c151a2 100644
--- a/tests/stdlib/ttypeinfo.nim
+++ b/tests/stdlib/ttypeinfo.nim
@@ -1,4 +1,5 @@
-import typeinfo
+import std/typeinfo
+import std/assertions
type
TE = enum
diff --git a/tests/stdlib/ttypetraits.nim b/tests/stdlib/ttypetraits.nim
index 799bcf6e27..574204da65 100644
--- a/tests/stdlib/ttypetraits.nim
+++ b/tests/stdlib/ttypetraits.nim
@@ -5,6 +5,7 @@ discard """
# xxx merge with tests/metatype/ttypetraits.nim
import std/typetraits
+import std/assertions
macro testClosure(fn: typed, flag: static bool) =
if flag:
diff --git a/tests/stdlib/tunicode.nim b/tests/stdlib/tunicode.nim
index 3a8206c8f7..2b1cb2385e 100644
--- a/tests/stdlib/tunicode.nim
+++ b/tests/stdlib/tunicode.nim
@@ -1,5 +1,5 @@
import std/unicode
-
+import std/assertions
proc asRune(s: static[string]): Rune =
## Compile-time conversion proc for converting string literals to a Rune
diff --git a/tests/stdlib/tunidecode.nim b/tests/stdlib/tunidecode.nim
index be8e0523c9..653016ea96 100644
--- a/tests/stdlib/tunidecode.nim
+++ b/tests/stdlib/tunidecode.nim
@@ -5,6 +5,7 @@ discard """
import unidecode
import std/unidecode # #14112
+import std/assertions
loadUnidecodeTable("lib/pure/unidecode/unidecode.dat")
diff --git a/tests/stdlib/tunittest.nim b/tests/stdlib/tunittest.nim
index 97a45e199b..8aa7f9fad2 100644
--- a/tests/stdlib/tunittest.nim
+++ b/tests/stdlib/tunittest.nim
@@ -22,7 +22,7 @@ discard """
targets: "c js"
"""
-import std/[unittest, sequtils]
+import std/[unittest, sequtils, assertions]
proc doThings(spuds: var int): int =
spuds = 24
diff --git a/tests/stdlib/tunittesttemplate.nim b/tests/stdlib/tunittesttemplate.nim
index 2ca50a18b3..c29e0de01b 100644
--- a/tests/stdlib/tunittesttemplate.nim
+++ b/tests/stdlib/tunittesttemplate.nim
@@ -8,9 +8,9 @@ discard """
"""
-# bug #6736
-import unittest
+# bug #6736
+import std/unittest
type
A = object
diff --git a/tests/stdlib/turi.nim b/tests/stdlib/turi.nim
index 79ddd773b5..77ba02dd18 100644
--- a/tests/stdlib/turi.nim
+++ b/tests/stdlib/turi.nim
@@ -5,6 +5,7 @@ discard """
import std/uri
from std/uri {.all.} as uri2 import removeDotSegments
from std/sequtils import toSeq
+import std/assertions
template main() =
block: # encodeUrl, decodeUrl
diff --git a/tests/stdlib/tuserlocks.nim b/tests/stdlib/tuserlocks.nim
index 9251fa9e27..ba8ea050ea 100644
--- a/tests/stdlib/tuserlocks.nim
+++ b/tests/stdlib/tuserlocks.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/rlocks
+import std/assertions
var r: RLock
r.initRLock()
diff --git a/tests/stdlib/tvarargs.nim b/tests/stdlib/tvarargs.nim
index d56be154bc..3207572b5a 100644
--- a/tests/stdlib/tvarargs.nim
+++ b/tests/stdlib/tvarargs.nim
@@ -2,7 +2,7 @@ discard """
targets: "c js"
matrix: "--gc:refc; --gc:arc"
"""
-
+import std/assertions
template main =
proc hello(x: varargs[string]): seq[string] =
diff --git a/tests/stdlib/tvarints.nim b/tests/stdlib/tvarints.nim
index 3bba4f457b..bb0d3d37fa 100644
--- a/tests/stdlib/tvarints.nim
+++ b/tests/stdlib/tvarints.nim
@@ -1,4 +1,5 @@
import std/varints
+import std/assertions
# xxx doesn't work with js: tvarints.nim(18, 14) `wrLen == rdLen` [AssertionDefect]
diff --git a/tests/stdlib/twchartoutf8.nim b/tests/stdlib/twchartoutf8.nim
index 3182ee46af..add104b07d 100644
--- a/tests/stdlib/twchartoutf8.nim
+++ b/tests/stdlib/twchartoutf8.nim
@@ -2,6 +2,8 @@ discard """
output: '''OK'''
"""
+import std/[syncio, assertions]
+
#assume WideCharToMultiByte always produce correct result
#windows only
diff --git a/tests/stdlib/twith.nim b/tests/stdlib/twith.nim
index 80382f7c42..b2d72bd0ca 100644
--- a/tests/stdlib/twith.nim
+++ b/tests/stdlib/twith.nim
@@ -1,4 +1,5 @@
import std/with
+import std/[assertions, formatfloat]
type
Foo = object
diff --git a/tests/stdlib/twordwrap.nim b/tests/stdlib/twordwrap.nim
index c90dd95814..a08e64cf96 100644
--- a/tests/stdlib/twordwrap.nim
+++ b/tests/stdlib/twordwrap.nim
@@ -1,4 +1,5 @@
import std/wordwrap
+import std/assertions
when true:
let
diff --git a/tests/stdlib/twrapnils.nim b/tests/stdlib/twrapnils.nim
index a0549c1bc7..5d5c1ab2d0 100644
--- a/tests/stdlib/twrapnils.nim
+++ b/tests/stdlib/twrapnils.nim
@@ -1,5 +1,6 @@
import std/wrapnils
from std/options import get, isSome
+import std/assertions
proc checkNotZero(x: float): float =
doAssert x != 0
diff --git a/tests/stdlib/txmltree.nim b/tests/stdlib/txmltree.nim
index d2f7132690..f6b7c62e8e 100644
--- a/tests/stdlib/txmltree.nim
+++ b/tests/stdlib/txmltree.nim
@@ -1,4 +1,4 @@
-import xmltree
+import std/[xmltree, assertions]
block:
diff --git a/tests/stdlib/tyield.nim b/tests/stdlib/tyield.nim
index 85be973651..0cf52999c0 100644
--- a/tests/stdlib/tyield.nim
+++ b/tests/stdlib/tyield.nim
@@ -3,6 +3,7 @@ discard """
"""
import std/[sugar, algorithm]
+import std/assertions
block:
var x = @[(6.0, 6, '6'),
diff --git a/tests/stdlib/uselocks.nim b/tests/stdlib/uselocks.nim
index e9d23f9d9a..f87623b5e4 100644
--- a/tests/stdlib/uselocks.nim
+++ b/tests/stdlib/uselocks.nim
@@ -1,4 +1,5 @@
import locks
+import std/assertions
type MyType* [T] = object
lock: Lock