diff options
Diffstat (limited to 'tests/niminaction')
18 files changed, 54 insertions, 45 deletions
diff --git a/tests/niminaction/Chapter1/various1.nim b/tests/niminaction/Chapter1/various1.nim index 688180fd2..21553dc40 100644 --- a/tests/niminaction/Chapter1/various1.nim +++ b/tests/niminaction/Chapter1/various1.nim @@ -19,7 +19,7 @@ proc showNumber(num: int | float) = showNumber(3.14) showNumber(42) -for i in 0 .. <10: +for i in 0 ..< 10: echo(i) block: # Block added due to clash. @@ -32,7 +32,7 @@ block: # Block added due to clash. let dog = Dog() dog.bark() #<2> -import sequtils, future, strutils +import sequtils, sugar, strutils let list = @["Dominik Picheta", "Andreas Rumpf", "Desmond Hume"] list.map( (x: string) -> (string, string) => (x.split[0], x.split[1]) diff --git a/tests/niminaction/Chapter2/explicit_discard.nim b/tests/niminaction/Chapter2/explicit_discard.nim index 9a3b4407e..7f3b3395e 100644 --- a/tests/niminaction/Chapter2/explicit_discard.nim +++ b/tests/niminaction/Chapter2/explicit_discard.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "has to be discarded" + errormsg: "has to be used (or discarded)" line: 7 """ diff --git a/tests/niminaction/Chapter2/resultaccept.nim b/tests/niminaction/Chapter2/resultaccept.nim index 7dd976b40..390f7b329 100644 --- a/tests/niminaction/Chapter2/resultaccept.nim +++ b/tests/niminaction/Chapter2/resultaccept.nim @@ -22,7 +22,7 @@ proc resultVar2: string = result.add("returned") doAssert implicit() == "I will be returned" -doAssert discarded() == nil +doAssert discarded().len == 0 doAssert explicit() == "I will be returned" doAssert resultVar() == "I will be returned" doAssert resultVar2() == "I will be returned" \ No newline at end of file diff --git a/tests/niminaction/Chapter2/resultreject.nim b/tests/niminaction/Chapter2/resultreject.nim index 87c84bf0a..145345072 100644 --- a/tests/niminaction/Chapter2/resultreject.nim +++ b/tests/niminaction/Chapter2/resultreject.nim @@ -1,5 +1,5 @@ discard """ - errormsg: "has to be discarded" + errormsg: "has to be used (or discarded)" line: 27 """ diff --git a/tests/niminaction/Chapter2/various2.nim b/tests/niminaction/Chapter2/various2.nim index 3f6a3f453..921f38c7d 100644 --- a/tests/niminaction/Chapter2/various2.nim +++ b/tests/niminaction/Chapter2/various2.nim @@ -140,7 +140,7 @@ let numbers = @[1, 2, 3, 4, 5, 6] let odd = filter(numbers, proc (x: int): bool = x mod 2 != 0) doAssert odd == @[1, 3, 5] -import sequtils, future +import sequtils, sugar let numbers1 = @[1, 2, 3, 4, 5, 6] let odd1 = filter(numbers1, (x: int) -> bool => x mod 2 != 0) assert odd1 == @[1, 3, 5] @@ -149,7 +149,7 @@ proc isValid(x: int, validator: proc (x: int): bool) = if validator(x): echo(x, " is valid") else: echo(x, " is NOT valid") -import future +import sugar proc isValid2(x: int, validator: (x: int) -> bool) = if validator(x): echo(x, " is valid") else: echo(x, " is NOT valid") @@ -179,13 +179,13 @@ for i in list4.low .. list4.high: echo(list4[i]) var list5: seq[int] = @[] -doAssertRaises(IndexError): +doAssertRaises(IndexDefect): list5[0] = 1 list5.add(1) assert list5[0] == 1 -doAssertRaises(IndexError): +doAssertRaises(IndexDefect): echo list5[42] # -- Errata: var list: seq[int]; echo(list[0]). This now creates an exception, @@ -193,7 +193,7 @@ doAssertRaises(IndexError): block: var list = newSeq[string](3) - assert list[0] == nil + assert list[0].len == 0 list[0] = "Foo" list[1] = "Bar" list[2] = "Baz" @@ -202,7 +202,7 @@ block: block: let list = @[4, 8, 15, 16, 23, 42] - for i in 0 .. <list.len: + for i in 0 ..< list.len: stdout.write($list[i] & " ") var collection: set[int16] @@ -366,4 +366,4 @@ block: Color {.pure.} = enum red, green, blue - let color = Color.red \ No newline at end of file + let color = Color.red diff --git a/tests/niminaction/Chapter3/various3.nim b/tests/niminaction/Chapter3/various3.nim index 7b2776d70..c7cdf7db4 100644 --- a/tests/niminaction/Chapter3/various3.nim +++ b/tests/niminaction/Chapter3/various3.nim @@ -1,4 +1,5 @@ discard """ +matrix: "--mm:refc" output: ''' Future is no longer empty, 42 ''' @@ -7,7 +8,7 @@ Future is no longer empty, 42 import threadpool proc foo: string = "Dog" var x: FlowVar[string] = spawn foo() -assert(^x == "Dog") +doAssert(^x == "Dog") block: type @@ -19,20 +20,20 @@ block: discard var obj = Box(empty: false, contents: "Hello") - assert obj.contents == "Hello" + doAssert obj.contents == "Hello" var obj2 = Box(empty: true) - doAssertRaises(FieldError): + doAssertRaises(FieldDefect): echo(obj2.contents) import json -assert parseJson("null").kind == JNull -assert parseJson("true").kind == JBool -assert parseJson("42").kind == JInt -assert parseJson("3.14").kind == JFloat -assert parseJson("\"Hi\"").kind == JString -assert parseJson("""{ "key": "value" }""").kind == JObject -assert parseJson("[1, 2, 3, 4]").kind == JArray +doAssert parseJson("null").kind == JNull +doAssert parseJson("true").kind == JBool +doAssert parseJson("42").kind == JInt +doAssert parseJson("3.14").kind == JFloat +doAssert parseJson("\"Hi\"").kind == JString +doAssert parseJson("""{ "key": "value" }""").kind == JObject +doAssert parseJson("[1, 2, 3, 4]").kind == JArray import json let data = """ @@ -40,15 +41,15 @@ let data = """ """ let obj = parseJson(data) -assert obj.kind == JObject -assert obj["username"].kind == JString -assert obj["username"].str == "Dominik" +doAssert obj.kind == JObject +doAssert obj["username"].kind == JString +doAssert obj["username"].str == "Dominik" block: proc count10(): int = - for i in 0 .. <10: + for i in 0 ..< 10: result.inc - assert count10() == 10 + doAssert count10() == 10 type Point = tuple[x, y: int] diff --git a/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim b/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim index 766f07fa5..913cd77db 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/concurrency.nim @@ -67,9 +67,9 @@ proc readChunks(filename: string, chunksize = 1000000): Stats = # Find where the last line ends chunkLen.dec - responses.add(spawn parse(buffer[0 .. <chunkLen])) + responses.add(spawn parse(buffer[0 ..< chunkLen])) oldBufferLen = readSize - chunkLen - buffer[0 .. <oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] + buffer[0 ..< oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] for resp in responses: let statistic = ^resp diff --git a/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim b/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim index 19b157926..102313de9 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/concurrency_regex.nim @@ -51,9 +51,9 @@ proc readChunks(filename: string, chunksize = 1000000): Stats = # Find where the last line ends chunkLen.dec - responses.add(spawn parse(buffer[0 .. <chunkLen])) + responses.add(spawn parse(buffer[0 ..< chunkLen])) oldBufferLen = readSize - chunkLen - buffer[0 .. <oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] + buffer[0 ..< oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] echo("Spawns: ", responses.len) for resp in responses: diff --git a/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim b/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim index 2c4a59d83..379ec7364 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/parallel_counts.nim @@ -58,9 +58,9 @@ proc readPageCounts(filename: string, chunkSize = 1_000_000) = while chunkLen >= 0 and buffer[chunkLen - 1] notin NewLines: chunkLen.dec - responses.add(spawn parseChunk(buffer[0 .. <chunkLen])) + responses.add(spawn parseChunk(buffer[0 ..< chunkLen])) oldBufferLen = readSize - chunkLen - buffer[0 .. <oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] + buffer[0 ..< oldBufferLen] = buffer[readSize - oldBufferLen .. ^1] var mostPopular = newStats() for resp in responses: diff --git a/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim b/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim index db68aeb5c..f4b072204 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/race_condition.nim @@ -7,7 +7,7 @@ import threadpool var counter = 0 proc increment(x: int) = - for i in 0 .. <x: + for i in 0 ..< x: let value = counter + 1 counter = value diff --git a/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim b/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim index 502ea61a9..7bdde8397 100644 --- a/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim +++ b/tests/niminaction/Chapter6/WikipediaStats/unguarded_access.nim @@ -10,7 +10,7 @@ initLock(counterLock) var counter {.guard: counterLock.} = 0 proc increment(x: int) = - for i in 0 .. <x: + for i in 0 ..< x: let value = counter + 1 counter = value diff --git a/tests/niminaction/Chapter7/Tweeter/src/createDatabase.nim b/tests/niminaction/Chapter7/Tweeter/src/createDatabase.nim index a7d4ebe00..67d9323f2 100644 --- a/tests/niminaction/Chapter7/Tweeter/src/createDatabase.nim +++ b/tests/niminaction/Chapter7/Tweeter/src/createDatabase.nim @@ -1,4 +1,5 @@ discard """ +disabled: true output: "Database created successfully!" """ diff --git a/tests/niminaction/Chapter7/Tweeter/src/database.nim b/tests/niminaction/Chapter7/Tweeter/src/database.nim index 4faba3f6a..bd6667f70 100644 --- a/tests/niminaction/Chapter7/Tweeter/src/database.nim +++ b/tests/niminaction/Chapter7/Tweeter/src/database.nim @@ -50,7 +50,7 @@ proc post*(database: Database, message: Message) = raise newException(ValueError, "Message has to be less than 140 characters.") database.db.exec(sql"INSERT INTO Message VALUES (?, ?, ?);", #<2> - message.username, $message.time.toSeconds().int, message.msg) #<3> + message.username, $message.time.toUnix().int, message.msg) #<3> proc follow*(database: Database, follower: User, user: User) = database.db.exec(sql"INSERT INTO Following VALUES (?, ?);",#<2> @@ -79,9 +79,9 @@ proc findMessages*(database: Database, usernames: seq[string], result = @[] if usernames.len == 0: return var whereClause = " WHERE " - for i in 0 .. <usernames.len: + for i in 0 ..< usernames.len: whereClause.add("username = ? ") - if i != <usernames.len: + if i != usernames.high: whereClause.add("or ") let messages = database.db.getAllRows( @@ -90,4 +90,4 @@ proc findMessages*(database: Database, usernames: seq[string], "ORDER BY time DESC LIMIT " & $limit), usernames) for row in messages: - result.add(Message(username: row[0], time: fromSeconds(row[1].parseInt), msg: row[2])) + result.add(Message(username: row[0], time: fromUnix(row[1].parseInt), msg: row[2])) diff --git a/tests/niminaction/Chapter7/Tweeter/src/tweeter.nim b/tests/niminaction/Chapter7/Tweeter/src/tweeter.nim index 12aaf49b8..1b521521c 100644 --- a/tests/niminaction/Chapter7/Tweeter/src/tweeter.nim +++ b/tests/niminaction/Chapter7/Tweeter/src/tweeter.nim @@ -1,5 +1,7 @@ discard """ +disabled: true action: compile +matrix: "--threads:off" """ import asyncdispatch, times @@ -51,7 +53,7 @@ routes: redirect(uri("/" & @"target")) post "/login": - setCookie("username", @"username", getTime().getGMTime() + 2.hours) + setCookie("username", @"username", getTime().utc() + 2.hours) redirect("/") post "/createMessage": diff --git a/tests/niminaction/Chapter7/Tweeter/src/views/user.nim b/tests/niminaction/Chapter7/Tweeter/src/views/user.nim index 18f3713b3..4abcf440d 100644 --- a/tests/niminaction/Chapter7/Tweeter/src/views/user.nim +++ b/tests/niminaction/Chapter7/Tweeter/src/views/user.nim @@ -33,7 +33,7 @@ #for message in messages: <div> <a href="/${message.username}">${message.username}</a> - <span>${message.time.getGMTime().format("HH:mm MMMM d',' yyyy")}</span> + <span>${message.time.utc().format("HH:mm MMMM d',' yyyy")}</span> <h3>${message.msg}</h3> </div> #end for diff --git a/tests/niminaction/Chapter7/Tweeter/tests/database_test.nim b/tests/niminaction/Chapter7/Tweeter/tests/database_test.nim index a3cab4cba..c8beb4a30 100644 --- a/tests/niminaction/Chapter7/Tweeter/tests/database_test.nim +++ b/tests/niminaction/Chapter7/Tweeter/tests/database_test.nim @@ -1,4 +1,5 @@ discard """ +disabled: true outputsub: "All tests finished successfully!" """ diff --git a/tests/niminaction/Chapter8/sdl/sdl.nim b/tests/niminaction/Chapter8/sdl/sdl.nim index a1b30281b..212f7b022 100644 --- a/tests/niminaction/Chapter8/sdl/sdl.nim +++ b/tests/niminaction/Chapter8/sdl/sdl.nim @@ -1,9 +1,13 @@ -when defined(Windows): +when defined(windows): const libName* = "SDL2.dll" -elif defined(Linux): +elif defined(linux) or defined(freebsd) or defined(netbsd): const libName* = "libSDL2.so" -elif defined(MacOsX): +elif defined(macosx): const libName* = "libSDL2.dylib" +elif defined(openbsd): + const libName* = "libSDL2.so.0.6" +else: + {.error: "SDL library name not set for this platform".} type SdlWindow = object diff --git a/tests/niminaction/Chapter8/sdl/sdl_test.nim b/tests/niminaction/Chapter8/sdl/sdl_test.nim index 1c4d258fb..db1700e0d 100644 --- a/tests/niminaction/Chapter8/sdl/sdl_test.nim +++ b/tests/niminaction/Chapter8/sdl/sdl_test.nim @@ -18,7 +18,7 @@ renderer.setDrawColor 29, 64, 153, 255 renderer.clear renderer.setDrawColor 255, 255, 255, 255 -when defined(c): +when false: # no long work with gcc 14! # just to ensure code from NimInAction still works, but # the `else` branch would work as well in C mode var points = [ |