testament: test nimble packages is beginning to work
This commit is contained in:
parent
9fa116b6e1
commit
6e1d2df74e
3 changed files with 36 additions and 32 deletions
|
|
@ -471,7 +471,8 @@ proc getPackageDir(package: string): string =
|
||||||
else:
|
else:
|
||||||
result = commandOutput[0].string
|
result = commandOutput[0].string
|
||||||
|
|
||||||
iterator listPackages(filter: PackageFilter): tuple[name, url: string] =
|
iterator listPackages(filter: PackageFilter): tuple[name, url, cmd: string] =
|
||||||
|
const defaultCmd = "nimble test"
|
||||||
let packageList = parseFile(packageIndex)
|
let packageList = parseFile(packageIndex)
|
||||||
for package in packageList.items:
|
for package in packageList.items:
|
||||||
if package.hasKey("url"):
|
if package.hasKey("url"):
|
||||||
|
|
@ -481,12 +482,12 @@ iterator listPackages(filter: PackageFilter): tuple[name, url: string] =
|
||||||
case filter
|
case filter
|
||||||
of pfCoreOnly:
|
of pfCoreOnly:
|
||||||
if "nim-lang" in normalize(url):
|
if "nim-lang" in normalize(url):
|
||||||
yield (name, url)
|
yield (name, url, defaultCmd)
|
||||||
of pfExtraOnly:
|
of pfExtraOnly:
|
||||||
if name in important_packages.packages:
|
for n, cmd, commit in important_packages.packages.items:
|
||||||
yield (name, url)
|
if name == n: yield (name, url, cmd)
|
||||||
of pfAll:
|
of pfAll:
|
||||||
yield (name, url)
|
yield (name, url, defaultCmd)
|
||||||
|
|
||||||
proc makeSupTest(test, options: string, cat: Category): TTest =
|
proc makeSupTest(test, options: string, cat: Category): TTest =
|
||||||
result.cat = cat
|
result.cat = cat
|
||||||
|
|
@ -504,8 +505,9 @@ proc testNimblePackages(r: var TResults, cat: Category, filter: PackageFilter) =
|
||||||
return
|
return
|
||||||
|
|
||||||
let packageFileTest = makeSupTest("PackageFileParsed", "", cat)
|
let packageFileTest = makeSupTest("PackageFileParsed", "", cat)
|
||||||
|
var keepDir = false
|
||||||
try:
|
try:
|
||||||
for name, url in listPackages(filter):
|
for name, url, cmd in listPackages(filter):
|
||||||
var test = makeSupTest(url, "", cat)
|
var test = makeSupTest(url, "", cat)
|
||||||
let buildPath = "pkgstemp" / name
|
let buildPath = "pkgstemp" / name
|
||||||
let installProcess = startProcess("git", "", ["clone", url, buildPath])
|
let installProcess = startProcess("git", "", ["clone", url, buildPath])
|
||||||
|
|
@ -513,12 +515,15 @@ proc testNimblePackages(r: var TResults, cat: Category, filter: PackageFilter) =
|
||||||
installProcess.close
|
installProcess.close
|
||||||
if installStatus != QuitSuccess:
|
if installStatus != QuitSuccess:
|
||||||
r.addResult(test, targetC, "", "", reInstallFailed)
|
r.addResult(test, targetC, "", "", reInstallFailed)
|
||||||
|
keepDir = true
|
||||||
else:
|
else:
|
||||||
let buildProcess = startProcess(nimbleExe, buildPath, ["test"])
|
let cmdArgs = parseCmdLine(cmd)
|
||||||
|
let buildProcess = startProcess(cmdArgs[0], buildPath, cmdArgs[1..^1])
|
||||||
let buildStatus = waitForExitEx(buildProcess)
|
let buildStatus = waitForExitEx(buildProcess)
|
||||||
buildProcess.close
|
buildProcess.close
|
||||||
if buildStatus != QuitSuccess:
|
if buildStatus != QuitSuccess:
|
||||||
r.addResult(test, targetC, "", "", reBuildFailed)
|
r.addResult(test, targetC, "", "", reBuildFailed)
|
||||||
|
keepDir = true
|
||||||
else:
|
else:
|
||||||
r.addResult(test, targetC, "", "", reSuccess)
|
r.addResult(test, targetC, "", "", reSuccess)
|
||||||
r.addResult(packageFileTest, targetC, "", "", reSuccess)
|
r.addResult(packageFileTest, targetC, "", "", reSuccess)
|
||||||
|
|
@ -526,7 +531,7 @@ proc testNimblePackages(r: var TResults, cat: Category, filter: PackageFilter) =
|
||||||
echo("[Warning] - Cannot run nimble tests: Invalid package file.")
|
echo("[Warning] - Cannot run nimble tests: Invalid package file.")
|
||||||
r.addResult(packageFileTest, targetC, "", "", reBuildFailed)
|
r.addResult(packageFileTest, targetC, "", "", reBuildFailed)
|
||||||
finally:
|
finally:
|
||||||
removeDir("pkgstemp")
|
if not keepDir: removeDir("pkgstemp")
|
||||||
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -1,29 +1,28 @@
|
||||||
import strutils
|
import strutils
|
||||||
|
|
||||||
const
|
template pkg(name: string; cmd = "nimble test"; version = ""): untyped =
|
||||||
packages* = """
|
packages.add((name, cmd, version))
|
||||||
karax
|
|
||||||
glob
|
var packages*: seq[tuple[name, cmd, version: string]] = @[]
|
||||||
""".splitWhitespace()
|
|
||||||
|
pkg "karax"
|
||||||
|
pkg "cligen"
|
||||||
|
pkg "glob"
|
||||||
|
pkg "regex"
|
||||||
|
pkg "freeimage", "nim c freeimage.nim"
|
||||||
|
pkg "zero_functional"
|
||||||
|
pkg "nimpy", "nim c nimpy.nim"
|
||||||
|
pkg "nimongo", "nimble test_ci"
|
||||||
|
pkg "inim"
|
||||||
|
|
||||||
|
pkg "sdl1", "nim c src/sdl.nim"
|
||||||
|
pkg "iterutils"
|
||||||
|
pkg "gnuplot"
|
||||||
|
pkg "c2nim"
|
||||||
|
|
||||||
#[
|
#[
|
||||||
jester
|
|
||||||
cligen
|
|
||||||
libffi
|
|
||||||
nimongo
|
|
||||||
nimx
|
|
||||||
karax
|
|
||||||
freeimage
|
|
||||||
regex
|
|
||||||
nimpy
|
|
||||||
zero_functional
|
|
||||||
arraymancer
|
arraymancer
|
||||||
inim
|
|
||||||
c2nim
|
|
||||||
sdl1
|
|
||||||
iterutils
|
|
||||||
gnuplot
|
|
||||||
nimpb
|
nimpb
|
||||||
lazy
|
jester
|
||||||
choosenim
|
nimx
|
||||||
]#
|
]#
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
import parseutils, strutils, os, osproc, streams, parsecfg
|
import parseutils, strutils, os, osproc, streams, parsecfg
|
||||||
|
|
||||||
var compilerPrefix* = "compiler" / "nim" ## built via ./koch tests
|
var compilerPrefix* = "compiler" / "nim" # XXX Change this, it's wrong.
|
||||||
|
|
||||||
let isTravis* = existsEnv("TRAVIS")
|
let isTravis* = existsEnv("TRAVIS")
|
||||||
let isAppVeyor* = existsEnv("APPVEYOR")
|
let isAppVeyor* = existsEnv("APPVEYOR")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue