diff options
-rw-r--r-- | compiler/semmacrosanity.nim | 4 | ||||
-rw-r--r-- | lib/impure/db_sqlite.nim | 2 | ||||
-rw-r--r-- | tests/macros/tmacro1.nim (renamed from tests/macro/tmacro1.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacro2.nim (renamed from tests/macro/tmacro2.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacro3.nim (renamed from tests/macro/tmacro3.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacro4.nim (renamed from tests/macro/tmacro4.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacro5.nim (renamed from tests/macro/tmacro5.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacroaspragma.nim (renamed from tests/macro/tmacroaspragma.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacrogenerics.nim (renamed from tests/macro/tmacrogenerics.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacros1.nim (renamed from tests/macro/tmacros1.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacrostmt.nim (renamed from tests/macro/tmacrostmt.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tmacrotypes.nim (renamed from tests/macro/tmacrotypes.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tnimrodnode_for_runtime.nim (renamed from tests/macro/tnimrodnode_for_runtime.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tprintf.nim (renamed from tests/macro/tprintf.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tquotewords.nim (renamed from tests/macro/tquotewords.nim) | 0 | ||||
-rw-r--r-- | tests/macros/trecmacro.nim (renamed from tests/macro/trecmacro.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tstringinterp.nim (renamed from tests/macro/tstringinterp.nim) | 0 | ||||
-rw-r--r-- | tests/macros/tvtable.nim (renamed from tests/macro/tvtable.nim) | 0 | ||||
-rw-r--r-- | tests/testament/backend.nim | 6 | ||||
-rw-r--r-- | tests/testament/htmlgen.nim | 50 | ||||
-rw-r--r-- | tests/testament/tester.nim | 8 |
21 files changed, 39 insertions, 31 deletions
diff --git a/compiler/semmacrosanity.nim b/compiler/semmacrosanity.nim index eff944bac..1bece95c2 100644 --- a/compiler/semmacrosanity.nim +++ b/compiler/semmacrosanity.nim @@ -43,12 +43,12 @@ proc annotateType*(n: PNode, t: PType) = n.typ = t for i in 0 .. <n.len: let field = x.n.ithField(i) - if field.isNil: globalError n.info, "invalid " & $i & "th field" + if field.isNil: globalError n.info, "invalid field at index " & $i else: annotateType(n.sons[i], field.typ) elif x.kind == tyTuple: n.typ = t for i in 0 .. <n.len: - if i >= x.len: globalError n.info, "invalid " & $i & "th field" + if i >= x.len: globalError n.info, "invalid field at index " & $i else: annotateType(n.sons[i], x.sons[i]) elif x.kind == tyProc and x.callConv == ccClosure: n.typ = t diff --git a/lib/impure/db_sqlite.nim b/lib/impure/db_sqlite.nim index c27efc358..a3499a6df 100644 --- a/lib/impure/db_sqlite.nim +++ b/lib/impure/db_sqlite.nim @@ -76,7 +76,7 @@ proc tryExec*(db: TDbConn, query: TSqlQuery, proc exec*(db: TDbConn, query: TSqlQuery, args: varargs[string, `$`]) {. tags: [FReadDB, FWriteDb].} = ## executes the query and raises EDB if not successful. - if not TryExec(db, query, args): dbError(db) + if not tryExec(db, query, args): dbError(db) proc newRow(L: int): TRow = newSeq(result, L) diff --git a/tests/macro/tmacro1.nim b/tests/macros/tmacro1.nim index 3a67c2611..3a67c2611 100644 --- a/tests/macro/tmacro1.nim +++ b/tests/macros/tmacro1.nim diff --git a/tests/macro/tmacro2.nim b/tests/macros/tmacro2.nim index 8515322d5..8515322d5 100644 --- a/tests/macro/tmacro2.nim +++ b/tests/macros/tmacro2.nim diff --git a/tests/macro/tmacro3.nim b/tests/macros/tmacro3.nim index 162212326..162212326 100644 --- a/tests/macro/tmacro3.nim +++ b/tests/macros/tmacro3.nim diff --git a/tests/macro/tmacro4.nim b/tests/macros/tmacro4.nim index 10a23b159..10a23b159 100644 --- a/tests/macro/tmacro4.nim +++ b/tests/macros/tmacro4.nim diff --git a/tests/macro/tmacro5.nim b/tests/macros/tmacro5.nim index 39324e497..39324e497 100644 --- a/tests/macro/tmacro5.nim +++ b/tests/macros/tmacro5.nim diff --git a/tests/macro/tmacroaspragma.nim b/tests/macros/tmacroaspragma.nim index 0e5c352b3..0e5c352b3 100644 --- a/tests/macro/tmacroaspragma.nim +++ b/tests/macros/tmacroaspragma.nim diff --git a/tests/macro/tmacrogenerics.nim b/tests/macros/tmacrogenerics.nim index 5ae59e0da..5ae59e0da 100644 --- a/tests/macro/tmacrogenerics.nim +++ b/tests/macros/tmacrogenerics.nim diff --git a/tests/macro/tmacros1.nim b/tests/macros/tmacros1.nim index 3c814ad6d..3c814ad6d 100644 --- a/tests/macro/tmacros1.nim +++ b/tests/macros/tmacros1.nim diff --git a/tests/macro/tmacrostmt.nim b/tests/macros/tmacrostmt.nim index d9c70197d..d9c70197d 100644 --- a/tests/macro/tmacrostmt.nim +++ b/tests/macros/tmacrostmt.nim diff --git a/tests/macro/tmacrotypes.nim b/tests/macros/tmacrotypes.nim index 7697dba27..7697dba27 100644 --- a/tests/macro/tmacrotypes.nim +++ b/tests/macros/tmacrotypes.nim diff --git a/tests/macro/tnimrodnode_for_runtime.nim b/tests/macros/tnimrodnode_for_runtime.nim index e73c8430f..e73c8430f 100644 --- a/tests/macro/tnimrodnode_for_runtime.nim +++ b/tests/macros/tnimrodnode_for_runtime.nim diff --git a/tests/macro/tprintf.nim b/tests/macros/tprintf.nim index c8fb51cdc..c8fb51cdc 100644 --- a/tests/macro/tprintf.nim +++ b/tests/macros/tprintf.nim diff --git a/tests/macro/tquotewords.nim b/tests/macros/tquotewords.nim index 76b8d8af7..76b8d8af7 100644 --- a/tests/macro/tquotewords.nim +++ b/tests/macros/tquotewords.nim diff --git a/tests/macro/trecmacro.nim b/tests/macros/trecmacro.nim index 28b6db530..28b6db530 100644 --- a/tests/macro/trecmacro.nim +++ b/tests/macros/trecmacro.nim diff --git a/tests/macro/tstringinterp.nim b/tests/macros/tstringinterp.nim index f030213e0..f030213e0 100644 --- a/tests/macro/tstringinterp.nim +++ b/tests/macros/tstringinterp.nim diff --git a/tests/macro/tvtable.nim b/tests/macros/tvtable.nim index 51894618c..51894618c 100644 --- a/tests/macro/tvtable.nim +++ b/tests/macros/tvtable.nim diff --git a/tests/testament/backend.nim b/tests/testament/backend.nim index 87ac10b1f..bc1f92eba 100644 --- a/tests/testament/backend.nim +++ b/tests/testament/backend.nim @@ -49,10 +49,10 @@ proc createDb() = # """, []) type - MachineId* = distinct int64 + MachineId = distinct int64 CommitId = distinct int64 -proc `$`*(id: MachineId): string {.borrow.} +proc `$`(id: MachineId): string {.borrow.} proc `$`(id: CommitId): string {.borrow.} var @@ -61,7 +61,7 @@ var proc `()`(cmd: string{lit}): string = cmd.execProcess.string.strip -proc getMachine*: MachineId = +proc getMachine: MachineId = var name = "hostname"() if name.len == 0: name = when defined(posix): getenv"HOSTNAME".string diff --git a/tests/testament/htmlgen.nim b/tests/testament/htmlgen.nim index e42b88070..bc2d8bd37 100644 --- a/tests/testament/htmlgen.nim +++ b/tests/testament/htmlgen.nim @@ -109,42 +109,46 @@ div.tabContent.hide { display: none; } proc td(s: string): string = result = "<td>" & s.substr(0, 200).XMLEncode & "</td>" -proc generateHtml*(filename: string) = +proc getCommit(db: TDbConn, c: int): string = + var commit = c + for thisCommit in db.rows(sql"select id from [Commit] order by id desc"): + if commit == 0: result = thisCommit[0] + inc commit + if result.isNil: + quit "cannot determine commit " & $c + +proc generateHtml*(filename: string, commit: int) = const selRow = """select name, category, target, action, expected, given, result - from TestResult - where [commit] = ? and machine = ? - order by category""" + from TestResult + where [commit] = ? and machine = ? + order by category""" var db = open(connection="testament.db", user="testament", password="", database="testament") + # search for proper commit: + let lastCommit = db.getCommit(commit) + var outfile = open(filename, fmWrite) outfile.write(HtmlBegin) - let thisMachine = backend.getMachine() - outfile.write() - let machine = db.getRow(sql"select name, os, cpu from machine where id = ?", - thisMachine) - outfile.write("<p><b>$#</b></p>" % machine.join(" ")) + let commit = db.getValue(sql"select hash from [Commit] where id = ?", + lastCommit) + let branch = db.getValue(sql"select branch from [Commit] where id = ?", + lastCommit) + outfile.write("<p><b>$# $#</b></p>" % [branch, commit]) + # generate navigation: outfile.write("""<ul id="tabs">""") - - for thisCommit in db.rows(sql"select id from [Commit] order by id desc"): - let lastCommit = thisCommit[0] - let commit = db.getValue(sql"select hash from [Commit] where id = ?", - lastCommit) - let branch = db.getValue(sql"select branch from [Commit] where id = ?", - lastCommit) - - outfile.writeln """<li><a href="#$#">$#: $#</a></li>""" % [ - lastCommit, branch, commit] + for m in db.rows(sql"select id, name, os, cpu from Machine order by id"): + outfile.writeln """<li><a href="#$#">$#: $#, $#</a></li>""" % m outfile.write("</ul>") - for thisCommit in db.rows(sql"select id from [Commit] order by id desc"): - let lastCommit = thisCommit[0] - outfile.write("""<div class="tabContent" id="$#">""" % lastCommit) + for currentMachine in db.rows(sql"select id from Machine order by id"): + let m = currentMachine[0] + outfile.write("""<div class="tabContent" id="$#">""" % m) outfile.write(TableHeader) - for row in db.rows(sql(selRow), lastCommit, thisMachine): + for row in db.rows(sql(selRow), lastCommit, m): outfile.write("<tr>") for x in row: outfile.write(x.td) diff --git a/tests/testament/tester.nim b/tests/testament/tester.nim index 8abea8224..54a6de2d0 100644 --- a/tests/testament/tester.nim +++ b/tests/testament/tester.nim @@ -22,7 +22,9 @@ const Command: all run all tests c|category <category> run all the tests of a certain category - html generate $1 from the database + html [commit] generate $1 from the database; uses the latest + commit or a specific one (use -1 for the commit + before latest etc) Arguments: arguments are passed to the compiler Options: @@ -254,7 +256,9 @@ proc main() = p.next processCategory(r, cat, p.cmdLineRest.string) of "html": - generateHtml(resultsFile) + var commit = 0 + discard parseInt(p.cmdLineRest.string, commit) + generateHtml(resultsFile, commit) else: quit usage |