From edce03371921b83750e3ef4c91c7ace2f9e0aed3 Mon Sep 17 00:00:00 2001 From: Mateus Date: Sat, 11 Dec 2021 18:34:28 -0300 Subject: [PATCH] This is the second commit of an ongoing effort to remove cruft from the test suite, and remove the 'disabled' keyword from the testament spec. In the first commit, we added the new knownIssue key to the testament spec, while also adding knownIssues to many of the tests for which we could attribute an issue. In this commit, we almost finish the task of removing the 'disabled' keyword from the remaining tests. Below are the changes and reasonings behind them: Removed Due to old or removed features: tdatabind.nim texplicit_dummy_closure.nim tgenconstraints.nim tincludefile.nim tmodulealias.nim tno_gcmem_in_shared.nim tnotuniquename2.nim tscheduler.nim Removed due to being Half Baked or Non-sensical: tio.nim tmissingnilcheck.nim treadafterwrite.nim trecmod.nim tunsignedcomp.nim Removed due to not being worth the trouble: t5000.nim Removed due to being redundant: tisop.nim Keeping disabled, due to being unsure: t7894.nim - Works, but flaky, and makes CI servers grumpy. tdllvar.nim tpragmas_misc.nim Added knownIssues - Mostly textual descriptions, due to not having a explicit issues: tdont_init_instantiation.nim titerable.nim toutparam.nim toverload_asgn2.nim tparsopt.nim Re-enabled: tglobal.nim tmultim.nim tmultimjs.nim tobjpragma.nim toverloading_typedesc.nim Fixed trectuple.nim: Fixed the line number. trectype.nim : Fixed to the spec. --- tests/assign/toverload_asgn2.nim | 2 +- tests/bind/tdatabind.nim | 95 --------------- tests/closure/texplicit_dummy_closure.nim | 25 ---- tests/cpp/tdont_init_instantiation.nim | 2 +- tests/effects/toutparam.nim | 2 +- tests/generics/toverloading_typedesc.nim | 2 +- tests/global/tglobal.nim | 2 +- tests/iter/titerable.nim | 2 +- tests/iter/tscheduler.nim | 77 ------------ tests/method/tmultim.nim | 2 +- tests/method/tmultimjs.nim | 2 +- tests/misc/tdllvar.nim | 2 +- tests/misc/tgenconstraints.nim | 31 ----- tests/misc/tmissingnilcheck.nim | 20 ---- tests/misc/tunsignedcomp.nim | 136 ---------------------- tests/modules/tnotuniquename2.nim | 8 -- tests/modules/trecmod.nim | 8 -- tests/navigator/tincludefile.nim | 30 ----- tests/objects/tobjpragma.nim | 2 +- tests/parallel/t5000.nim | 25 ---- tests/parallel/treadafterwrite.nim | 31 ----- tests/pragmas/tpragmas_misc.nim | 2 +- tests/stdlib/tparsopt.nim | 2 +- tests/system/t7894.nim | 2 +- tests/system/tio.nim | 55 --------- tests/template/tmodulealias.nim | 19 --- tests/typerel/tno_gcmem_in_shared.nim | 23 ---- tests/typerel/trectuple.nim | 4 +- tests/typerel/trectype.nim | 4 +- tests/types/tisop.nim | 48 -------- 30 files changed, 17 insertions(+), 648 deletions(-) delete mode 100644 tests/bind/tdatabind.nim delete mode 100644 tests/closure/texplicit_dummy_closure.nim delete mode 100644 tests/iter/tscheduler.nim delete mode 100644 tests/misc/tgenconstraints.nim delete mode 100644 tests/misc/tmissingnilcheck.nim delete mode 100644 tests/misc/tunsignedcomp.nim delete mode 100644 tests/modules/tnotuniquename2.nim delete mode 100644 tests/modules/trecmod.nim delete mode 100644 tests/navigator/tincludefile.nim delete mode 100644 tests/parallel/t5000.nim delete mode 100644 tests/parallel/treadafterwrite.nim delete mode 100644 tests/system/tio.nim delete mode 100644 tests/template/tmodulealias.nim delete mode 100644 tests/typerel/tno_gcmem_in_shared.nim delete mode 100644 tests/types/tisop.nim diff --git a/tests/assign/toverload_asgn2.nim b/tests/assign/toverload_asgn2.nim index 1104be92b53..50539c2d9dc 100644 --- a/tests/assign/toverload_asgn2.nim +++ b/tests/assign/toverload_asgn2.nim @@ -1,7 +1,7 @@ discard """ output: '''i value 88 2aa''' - disabled: "true" + knownIssue: "possible issue where result is not treated as var Concrete in passAround" """ import moverload_asgn2 diff --git a/tests/bind/tdatabind.nim b/tests/bind/tdatabind.nim deleted file mode 100644 index f6455749c9a..00000000000 --- a/tests/bind/tdatabind.nim +++ /dev/null @@ -1,95 +0,0 @@ -discard """ - disabled: true -""" - -import events -type - TProperty*[T] = object of TObject - getProc: proc(property: TProperty[T]): T {.nimcall.} - setProc: proc(property: var TProperty[T], value: T) {.nimcall.} - value: T - ValueChanged*: TEventHandler - Binders: seq[TProperty[T]] - EEmitter: TEventEmitter - # Not a descriptive name but it was that or TPropertyValueChangeEventArgs. - TValueEventArgs[T] = object of TEventArgs - Property*: TProperty[T] - - -proc newProperty*[T](value: T): TProperty[T] = - var prop: TProperty[T] - - prop.EEmitter = initEventEmitter() - prop.Binders = @[] - prop.ValueChanged = initEventHandler("ValueChanged") - prop.value = value - - proc getter(property: TProperty[T]): T = - return property.value - - prop.getProc = getter - - proc setter(property: var TProperty[T], v: T) = - property.value = v - - # fire event here - var args: TValueEventArgs[T] - args.Property = property - property.EEmitter.emit(property.ValueChanged, args) - - prop.setProc = setter - - return prop - -proc `prop`[T] (p: TProperty[T]): T = - # I'm assuming this is trying to get a value from the property. - # i.e. myVar = myProperty - return p.getProc(p) - -proc `~=`[T] (p: var TProperty[T], v: T) = - # Assuming this is setting the value. - p.setProc(p, v) - -proc `$`[T] (p: TProperty[T]): string = - var value = p.getProc(p) - return $value - -proc propertyBind*[T](p1: var TProperty[T], p2: var TProperty[T]) = - p1.Binders.add(p2) - - # make handler -> handler[T] so trigger even more generics bugs ... - proc handler(e: TEventArgs) = - type TEA = TValueEventArgs[T] - var args = TEA(e) - var val = args.Property.getProc(p1) - for i in countup(0, len(e.Property.ValueChanged.Binders) -1): - var binded = e.Property.ValueChanged.Binders[i] - binded.setProc(binded, val) - - echo("Property 1 has changed to " & $val) - - if p1.ValueChanged.containsHandler(handler) == false: - addHandler(p1.ValueChanged, handler) - -proc `->`[T](p1: var TProperty[T], p2: var TProperty[T]) = - propertyBind(p2,p1) - -when true: - # Initial value testing - var myProp = newProperty(5) - - echo(myProp) - - myProp ~= 7 # Temp operator until overloading of '=' is implemented. - echo(myProp) - - # Binding testing - - var prop1 = newProperty(9) - var prop2: TProperty[int] - - prop2 -> prop1 # Binds prop2 to prop1 - - prop1 ~= 7 - echo(prop2) # Output: 7 - diff --git a/tests/closure/texplicit_dummy_closure.nim b/tests/closure/texplicit_dummy_closure.nim deleted file mode 100644 index 02b9ac7c78c..00000000000 --- a/tests/closure/texplicit_dummy_closure.nim +++ /dev/null @@ -1,25 +0,0 @@ -discard """ - disabled: true -""" - -# This is a regression of the new lambda lifting; detected by Aporia -import asyncio, sockets -import os - -type - Window = object - oneInstSock*: AsyncSocket - IODispatcher*: Dispatcher - -var - win: Window - -proc initSocket() = - win.oneInstSock = asyncSocket() - #win.oneInstSock.handleAccept = - proc test(s: AsyncSocket) = - var client: AsyncSocket - proc dummy(c: AsyncSocket) {.closure.} = - discard - client.handleRead = dummy - test(win.oneInstSock) diff --git a/tests/cpp/tdont_init_instantiation.nim b/tests/cpp/tdont_init_instantiation.nim index fe487fba085..5746549db92 100644 --- a/tests/cpp/tdont_init_instantiation.nim +++ b/tests/cpp/tdont_init_instantiation.nim @@ -1,7 +1,7 @@ discard """ targets: "cpp" output: '''''' - disabled: true + knownIssue: "https://github.com/nim-lang/Nim/issues/5140" """ # bug #5140 diff --git a/tests/effects/toutparam.nim b/tests/effects/toutparam.nim index 1126aa77e79..442414bb111 100644 --- a/tests/effects/toutparam.nim +++ b/tests/effects/toutparam.nim @@ -2,7 +2,7 @@ discard """ cmd: '''nim c --warningAsError:Uninit:on --skipCfg --skipParentCfg $file''' errormsg: "use explicit initialization of 'x' for clarity [Uninit]" line: 24 - disabled: "true" + knownIssue: "parameter name is being clobbered " """ proc gah[T](x: out T) = diff --git a/tests/generics/toverloading_typedesc.nim b/tests/generics/toverloading_typedesc.nim index 5ab7008281d..2b5497ad1bf 100644 --- a/tests/generics/toverloading_typedesc.nim +++ b/tests/generics/toverloading_typedesc.nim @@ -1,6 +1,6 @@ discard """ exitcode: 0 - disabled: '''true''' + """ import moverloading_typedesc import tables diff --git a/tests/global/tglobal.nim b/tests/global/tglobal.nim index d44a62afc55..5ce078215f9 100644 --- a/tests/global/tglobal.nim +++ b/tests/global/tglobal.nim @@ -1,6 +1,6 @@ discard """ output: "in globalaux2: 10\ntotal globals: 2\nint value: 100\nstring value: second" - disabled: "true" + """ import globalaux, globalaux2 diff --git a/tests/iter/titerable.nim b/tests/iter/titerable.nim index f503836d393..598816d5377 100644 --- a/tests/iter/titerable.nim +++ b/tests/iter/titerable.nim @@ -6,7 +6,7 @@ discard """ 8 12 ''' - disabled: "true" + knownIssue: "lambda lifting support for iterToProc plugin; lambda lifting and iterators are likley to go through a bit spec definition and this will either get folded in and its a good signal to know whether we fixed something by happenstance or not." """ # Will eventually fix it... diff --git a/tests/iter/tscheduler.nim b/tests/iter/tscheduler.nim deleted file mode 100644 index f4b04f311ff..00000000000 --- a/tests/iter/tscheduler.nim +++ /dev/null @@ -1,77 +0,0 @@ -discard """ - output: '''a1 5 -a2 10 -a1 3 -a1 1 -a2 8 -a2 6 -a2 4 -a2 2''' - disabled: "true" -""" - -import os, strutils, times, algorithm - - -type TaskFn = iterator (): float - -type Task = object - coro: TaskFn - next_run: float - - -type Scheduler = object - tasks: seq[Task] - - -proc newScheduler(): Scheduler = - var s = Scheduler() - s.tasks = @[] - return s - - -proc start(this: var Scheduler, task: TaskFn) = - var t = Task() - t.coro = task - t.next_run = 0.0 - this.tasks.add(t) - - -proc run(this: var Scheduler) = - while this.tasks.len > 0: - var dead: seq[int] = @[] - for i in this.tasks.low..this.tasks.high: - var task = this.tasks[i] - if finished(task.coro): - dead.add(i) - continue - if task.next_run <= epochTime(): - task.next_run = task.coro() + epochTime() - this.tasks[i] = task - for i in dead: - this.tasks.delete(i) - if this.tasks.len > 0: - sort(this.tasks, proc (t1: Task, t2: Task): int = cmp(t1.next_run, t2.next_run)) - sleep(int((this.tasks[0].next_run - epochTime()) * 1000)) - - -iterator a1(): float {.closure.} = - var k = 5 - while k > 0: - echo "a1 $1" % [$k] - dec k, 2 - yield 0.5 - - -iterator a2(): float {.closure.} = - var k = 10 - while k > 0: - echo "a2 $1" % [$k] - dec k, 2 - yield 1.5 - - -var sched = newScheduler() -sched.start(a1) -sched.start(a2) -sched.run() diff --git a/tests/method/tmultim.nim b/tests/method/tmultim.nim index b6fed024e7a..dc41be54afe 100644 --- a/tests/method/tmultim.nim +++ b/tests/method/tmultim.nim @@ -10,7 +10,7 @@ collide: thing, unit | do nothing ''' joinable: false - disabled: true + """ diff --git a/tests/method/tmultimjs.nim b/tests/method/tmultimjs.nim index 36960f2e143..6c36f824ec1 100644 --- a/tests/method/tmultimjs.nim +++ b/tests/method/tmultimjs.nim @@ -4,7 +4,7 @@ discard """ Hi derived! hello ''' - disabled: true + """ diff --git a/tests/misc/tdllvar.nim b/tests/misc/tdllvar.nim index 68029ddf449..396471cc960 100644 --- a/tests/misc/tdllvar.nim +++ b/tests/misc/tdllvar.nim @@ -1,5 +1,5 @@ discard """ -disabled: true + disabled: true """ import os diff --git a/tests/misc/tgenconstraints.nim b/tests/misc/tgenconstraints.nim deleted file mode 100644 index 829da5173bc..00000000000 --- a/tests/misc/tgenconstraints.nim +++ /dev/null @@ -1,31 +0,0 @@ -discard """ - errormsg: "cannot instantiate T2" - file: "tgenconstraints.nim" - line: 25 - disabled: true -""" - -type - T1[T: int|string] = object - x: T - - T2[T: Ordinal] = object - x: T - -var x1: T1[int] -var x2: T1[string] -var x3: T2[int] - -proc foo[T](x: T): T2[T] {.discardable.} = - var o: T1[T] - -foo(10) - -# XXX: allow type intersections in situation like this -proc bar(x: int|TNumber): T1[type(x)] {.discardable.} = - when type(x) is TNumber: - var o: T2[type(x)] - -bar "test" -bar 100 -bar 1.1 diff --git a/tests/misc/tmissingnilcheck.nim b/tests/misc/tmissingnilcheck.nim deleted file mode 100644 index 461fb18f4dc..00000000000 --- a/tests/misc/tmissingnilcheck.nim +++ /dev/null @@ -1,20 +0,0 @@ -discard """ - disabled: true -""" - -type - PFutureBase = ref object - callback: proc () {.closure.} - -proc newConnection = - iterator newConnectionIter(): PFutureBase {.closure.} = - discard - var newConnectionIterVar = newConnectionIter - var first = newConnectionIterVar() - - proc cb {.closure.} = - discard - - first.callback = cb - -newConnection() diff --git a/tests/misc/tunsignedcomp.nim b/tests/misc/tunsignedcomp.nim deleted file mode 100644 index 970c4ae9de4..00000000000 --- a/tests/misc/tunsignedcomp.nim +++ /dev/null @@ -1,136 +0,0 @@ -discard """ - output: '''''' - disabled: "true" -""" - -# All operations involving uint64 are commented out -# as they're not yet supported. -# All other operations are handled by implicit conversions from uints to ints -# uint64 could be supported but would need special implementation of the operators - -# unsigned < signed - -doAssert 10'u8 < 20'i8 -doAssert 10'u8 < 20'i16 -doAssert 10'u8 < 20'i32 -doAssert 10'u8 < 20'i64 - -doAssert 10'u16 < 20'i8 -doAssert 10'u16 < 20'i16 -doAssert 10'u16 < 20'i32 -doAssert 10'u16 < 20'i64 - -doAssert 10'u32 < 20'i8 -doAssert 10'u32 < 20'i16 -doAssert 10'u32 < 20'i32 -doAssert 10'u32 < 20'i64 - -# doAssert 10'u64 < 20'i8 -# doAssert 10'u64 < 20'i16 -# doAssert 10'u64 < 20'i32 -# doAssert 10'u64 < 20'i64 - -# signed < unsigned -doAssert 10'i8 < 20'u8 -doAssert 10'i8 < 20'u16 -doAssert 10'i8 < 20'u32 -# doAssert 10'i8 < 20'u64 - -doAssert 10'i16 < 20'u8 -doAssert 10'i16 < 20'u16 -doAssert 10'i16 < 20'u32 -# doAssert 10'i16 < 20'u64 - -doAssert 10'i32 < 20'u8 -doAssert 10'i32 < 20'u16 -doAssert 10'i32 < 20'u32 -# doAssert 10'i32 < 20'u64 - -doAssert 10'i64 < 20'u8 -doAssert 10'i64 < 20'u16 -doAssert 10'i64 < 20'u32 -# doAssert 10'i64 < 20'u64 - -# unsigned <= signed -doAssert 10'u8 <= 20'i8 -doAssert 10'u8 <= 20'i16 -doAssert 10'u8 <= 20'i32 -doAssert 10'u8 <= 20'i64 - -doAssert 10'u16 <= 20'i8 -doAssert 10'u16 <= 20'i16 -doAssert 10'u16 <= 20'i32 -doAssert 10'u16 <= 20'i64 - -doAssert 10'u32 <= 20'i8 -doAssert 10'u32 <= 20'i16 -doAssert 10'u32 <= 20'i32 -doAssert 10'u32 <= 20'i64 - -# doAssert 10'u64 <= 20'i8 -# doAssert 10'u64 <= 20'i16 -# doAssert 10'u64 <= 20'i32 -# doAssert 10'u64 <= 20'i64 - -# signed <= unsigned -doAssert 10'i8 <= 20'u8 -doAssert 10'i8 <= 20'u16 -doAssert 10'i8 <= 20'u32 -# doAssert 10'i8 <= 20'u64 - -doAssert 10'i16 <= 20'u8 -doAssert 10'i16 <= 20'u16 -doAssert 10'i16 <= 20'u32 -# doAssert 10'i16 <= 20'u64 - -doAssert 10'i32 <= 20'u8 -doAssert 10'i32 <= 20'u16 -doAssert 10'i32 <= 20'u32 -# doAssert 10'i32 <= 20'u64 - -doAssert 10'i64 <= 20'u8 -doAssert 10'i64 <= 20'u16 -doAssert 10'i64 <= 20'u32 -# doAssert 10'i64 <= 20'u64 - -# signed == unsigned -doAssert 10'i8 == 10'u8 -doAssert 10'i8 == 10'u16 -doAssert 10'i8 == 10'u32 -# doAssert 10'i8 == 10'u64 - -doAssert 10'i16 == 10'u8 -doAssert 10'i16 == 10'u16 -doAssert 10'i16 == 10'u32 -# doAssert 10'i16 == 10'u64 - -doAssert 10'i32 == 10'u8 -doAssert 10'i32 == 10'u16 -doAssert 10'i32 == 10'u32 -# doAssert 10'i32 == 10'u64 - -doAssert 10'i64 == 10'u8 -doAssert 10'i64 == 10'u16 -doAssert 10'i64 == 10'u32 -# doAssert 10'i64 == 10'u64 - -# unsigned == signed -doAssert 10'u8 == 10'i8 -doAssert 10'u8 == 10'i16 -doAssert 10'u8 == 10'i32 -# doAssert 10'u8 == 10'i64 - -doAssert 10'u16 == 10'i8 -doAssert 10'u16 == 10'i16 -doAssert 10'u16 == 10'i32 -# doAssert 10'u16 == 10'i64 - -doAssert 10'u32 == 10'i8 -doAssert 10'u32 == 10'i16 -doAssert 10'u32 == 10'i32 -# doAssert 10'u32 == 10'i64 - -# doAssert 10'u64 == 10'i8 -# doAssert 10'u64 == 10'i16 -# doAssert 10'u64 == 10'i32 -# doAssert 10'u64 == 10'i64 diff --git a/tests/modules/tnotuniquename2.nim b/tests/modules/tnotuniquename2.nim deleted file mode 100644 index e4501bc243f..00000000000 --- a/tests/modules/tnotuniquename2.nim +++ /dev/null @@ -1,8 +0,0 @@ -discard """ - errormsg: "module names need to be unique per Nimble package" - file: "tnotuniquename/mnotuniquename.nim" - disabled: "true" -""" - -import mnotuniquename -import tnotuniquename/mnotuniquename diff --git a/tests/modules/trecmod.nim b/tests/modules/trecmod.nim deleted file mode 100644 index 43e510e8767..00000000000 --- a/tests/modules/trecmod.nim +++ /dev/null @@ -1,8 +0,0 @@ -discard """ - errormsg: "recursive module dependency detected" - file: "mrecmod.nim" - line: 1 - disabled: true -""" -# recursive module -import mrecmod diff --git a/tests/navigator/tincludefile.nim b/tests/navigator/tincludefile.nim deleted file mode 100644 index 818d08a5b52..00000000000 --- a/tests/navigator/tincludefile.nim +++ /dev/null @@ -1,30 +0,0 @@ -discard """ - disabled: true # this test is flakey with testament all - cmd: "nim check $options --defusages:$file,12,7 $file" - nimout: '''def tincludefile_temp.nim(11, 10) -usage tincludefile_temp.nim(12, 8) - ''' -""" - - - - -proc foo(x: int) = - echo x - -foo(3) -echo "yes", 1 != 3 - -#!EDIT!# -discard """ - cmd: "nim check $options --defusages:$file/../minclude.nim,2,2 $file" - nimout: '''def tincludefile_temp.nim(10, 6) -usage minclude.nim(2, 1) - ''' -""" - - -proc foo(x: int) = - echo x - -include minclude diff --git a/tests/objects/tobjpragma.nim b/tests/objects/tobjpragma.nim index 789b3ec4eb3..c9efdd7e47c 100644 --- a/tests/objects/tobjpragma.nim +++ b/tests/objects/tobjpragma.nim @@ -8,7 +8,7 @@ discard """ 2 3 ''' -disabled: "true" + """ # Disabled since some versions of GCC ignore the 'packed' attribute diff --git a/tests/parallel/t5000.nim b/tests/parallel/t5000.nim deleted file mode 100644 index 1dd47a61c77..00000000000 --- a/tests/parallel/t5000.nim +++ /dev/null @@ -1,25 +0,0 @@ -discard """ - output: '''50005000''' - disabled: "true" -""" - -# XXX this seems to deadlock certain Linux machines - -import threadpool, strutils - -proc foo(x: int): string = $x - -proc main() = - var a = newSeq[int]() - for i in 1..10000: - add(a, i) - - var s = 0 - for i in a: - s += parseInt(^spawn(foo(i))) - echo s - -setMaxPoolSize 2 - -parallel: - spawn main() diff --git a/tests/parallel/treadafterwrite.nim b/tests/parallel/treadafterwrite.nim deleted file mode 100644 index 12eb3140241..00000000000 --- a/tests/parallel/treadafterwrite.nim +++ /dev/null @@ -1,31 +0,0 @@ -discard """ - errormsg: "'foo' not disjoint from 'foo'" - line: 23 - disabled: "true" -""" - -# bug #1597 - -import strutils, math, threadpool - -type - BoxedFloat = object - value: float - -proc term(k: float): ptr BoxedFloat = - var temp = 4 * math.pow(-1, k) / (2*k + 1) - result = cast[ptr BoxedFloat](allocShared(sizeof(BoxedFloat))) - result.value = temp - -proc pi(n: int): float = - var ch = newSeq[ptr BoxedFloat](n+1) - parallel: - for k in 0..ch.high: - let foo = (spawn term(float(k))) - assert foo != nil - for k in 0..ch.high: - var temp = ch[k][].value - result += temp - deallocShared(ch[k]) - -echo formatFloat(pi(5000)) diff --git a/tests/pragmas/tpragmas_misc.nim b/tests/pragmas/tpragmas_misc.nim index cea9ff9bade..cc70d60771f 100644 --- a/tests/pragmas/tpragmas_misc.nim +++ b/tests/pragmas/tpragmas_misc.nim @@ -1,5 +1,5 @@ discard """ - disabled: true + disabled: true """ ##[ diff --git a/tests/stdlib/tparsopt.nim b/tests/stdlib/tparsopt.nim index 54a470cb30b..6a462d40768 100644 --- a/tests/stdlib/tparsopt.nim +++ b/tests/stdlib/tparsopt.nim @@ -1,5 +1,5 @@ discard """ -disabled: true + knownIssue: "Design of parse options is dumb. The noise and fielding PRs in that way is more work than it's worth right now. - Ghani, Saem" """ # this file has a type in the name, and it does not really test diff --git a/tests/system/t7894.nim b/tests/system/t7894.nim index 60dbe86cb26..8819c5ca05b 100644 --- a/tests/system/t7894.nim +++ b/tests/system/t7894.nim @@ -1,5 +1,5 @@ discard """ -disabled: true + disabled: true """ # CI integration servers are out of memory for this test diff --git a/tests/system/tio.nim b/tests/system/tio.nim deleted file mode 100644 index 52a21837a04..00000000000 --- a/tests/system/tio.nim +++ /dev/null @@ -1,55 +0,0 @@ -discard """ -outputsub: "" -disabled: true -""" - -import - unittest, osproc, streams, os, strformat, strutils -const STRING_DATA = "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." - -const TEST_FILE = "tests/testdata/string.txt" - -proc echoLoop(str: string): string = - result = "" - let exe = findExe("tests/system/helpers/readall_echo") - echo "exe: ", exe - var process = startProcess(exe) - var input = process.inputStream - input.write(str) - input.close() - var output = process.outputStream - discard process.waitForExit - while not output.atEnd: - result.add(output.readLine) - -block: # io - block: # readAll - block: # stdin - check: - echoLoop(STRING_DATA) == STRING_DATA - block: # file - check: - readFile(TEST_FILE).strip == STRING_DATA - - -proc verifyFileSize(sz: int64) = - # issue 7121, large file size (2-4GB and >4Gb) - const fn = "tmpfile112358" - let size_in_mb = sz div 1_000_000 - - when defined(windows): - discard execProcess(&"fsutil file createnew {fn} {sz}" ) - else: - discard execProcess(&"dd if=/dev/zero of={fn} bs=1000000 count={size_in_mb}") - - doAssert os.getFileSize(fn) == sz # Verify OS filesize by string - - var f = open(fn) - doAssert f.getFileSize() == sz # Verify file handle filesize - f.close() - - os.removeFile(fn) - -#disable tests for automatic testers -#for s in [50_000_000'i64, 3_000_000_000, 5_000_000_000]: -# verifyFileSize(s) diff --git a/tests/template/tmodulealias.nim b/tests/template/tmodulealias.nim deleted file mode 100644 index 79b5ec9c622..00000000000 --- a/tests/template/tmodulealias.nim +++ /dev/null @@ -1,19 +0,0 @@ -discard """ - disabled: true -""" - -when defined(windows): - import winlean -else: - import posix - -when defined(windows): - template orig: expr = - winlean -else: - template orig: expr = - posix - -proc socket(domain, typ, protocol: int): int = - result = orig.socket(ord(domain), ord(typ), ord(protocol))) - diff --git a/tests/typerel/tno_gcmem_in_shared.nim b/tests/typerel/tno_gcmem_in_shared.nim deleted file mode 100644 index dd8a1cb945e..00000000000 --- a/tests/typerel/tno_gcmem_in_shared.nim +++ /dev/null @@ -1,23 +0,0 @@ -discard """ - errormsg: "shared memory may not refer to GC'ed thread local memory" - line: 14 - disabled: true -""" - -type - Region = object - Foo = Region ptr int - - MyObject = object - a, b: string - - Bar[T] = shared ptr T - Bzar = Bar[MyObject] - -proc bar(x: Region ptr int) = - discard - -var - s: Foo - -bar s diff --git a/tests/typerel/trectuple.nim b/tests/typerel/trectuple.nim index 334c4a91140..6be1a9cbb7e 100644 --- a/tests/typerel/trectuple.nim +++ b/tests/typerel/trectuple.nim @@ -1,7 +1,7 @@ discard """ errormsg: "illegal recursion in type 'TNode'" - line: 8 - disabled: true + line: 9 + """ type diff --git a/tests/typerel/trectype.nim b/tests/typerel/trectype.nim index 9313faa2054..497a3073577 100644 --- a/tests/typerel/trectype.nim +++ b/tests/typerel/trectype.nim @@ -1,6 +1,6 @@ discard """ - errormsg: "internal error: cannot generate C type for: PA" - disabled: true + errormsg: "illegal recursion in type 'PA'" + """ # Test recursive type descriptions # (mainly for the C code generator) diff --git a/tests/types/tisop.nim b/tests/types/tisop.nim deleted file mode 100644 index 5f9cba0d8c9..00000000000 --- a/tests/types/tisop.nim +++ /dev/null @@ -1,48 +0,0 @@ -discard """ - disabled: true -""" - -import typetraits - -type - TRecord = (tuple) or (object) - - TFoo[T, U] = object - x: int - - when T is string: - y: float - else: - y: string - - when U is TRecord: - z: float - - E = enum A, B, C - -macro m(t: typedesc): typedesc = - if t is enum: - result = string - else: - result = int - -var f: TFoo[int, int] -static: doAssert(f.y.type.name == "string") - -when compiles(f.z): - {.error: "Foo should not have a `z` field".} - -proc p(a, b: auto) = - when a.type is int: - static: doAssert false - - var f: TFoo[m(a.type), b.type] - static: - doAssert f.x.type.name == "int" - echo f.y.type.name - doAssert f.y.type.name == "float" - echo f.z.type.name - doAssert f.z.type.name == "float" - -p(A, f) -