testament: test nimble packages is beginning to work

This commit is contained in:
Araq
2019-02-04 15:59:10 +01:00
parent 9fa116b6e1
commit 6e1d2df74e
3 changed files with 36 additions and 32 deletions

View File

@@ -471,7 +471,8 @@ proc getPackageDir(package: string): string =
else:
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)
for package in packageList.items:
if package.hasKey("url"):
@@ -481,12 +482,12 @@ iterator listPackages(filter: PackageFilter): tuple[name, url: string] =
case filter
of pfCoreOnly:
if "nim-lang" in normalize(url):
yield (name, url)
yield (name, url, defaultCmd)
of pfExtraOnly:
if name in important_packages.packages:
yield (name, url)
for n, cmd, commit in important_packages.packages.items:
if name == n: yield (name, url, cmd)
of pfAll:
yield (name, url)
yield (name, url, defaultCmd)
proc makeSupTest(test, options: string, cat: Category): TTest =
result.cat = cat
@@ -504,8 +505,9 @@ proc testNimblePackages(r: var TResults, cat: Category, filter: PackageFilter) =
return
let packageFileTest = makeSupTest("PackageFileParsed", "", cat)
var keepDir = false
try:
for name, url in listPackages(filter):
for name, url, cmd in listPackages(filter):
var test = makeSupTest(url, "", cat)
let buildPath = "pkgstemp" / name
let installProcess = startProcess("git", "", ["clone", url, buildPath])
@@ -513,12 +515,15 @@ proc testNimblePackages(r: var TResults, cat: Category, filter: PackageFilter) =
installProcess.close
if installStatus != QuitSuccess:
r.addResult(test, targetC, "", "", reInstallFailed)
keepDir = true
else:
let buildProcess = startProcess(nimbleExe, buildPath, ["test"])
let cmdArgs = parseCmdLine(cmd)
let buildProcess = startProcess(cmdArgs[0], buildPath, cmdArgs[1..^1])
let buildStatus = waitForExitEx(buildProcess)
buildProcess.close
if buildStatus != QuitSuccess:
r.addResult(test, targetC, "", "", reBuildFailed)
keepDir = true
else:
r.addResult(test, 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.")
r.addResult(packageFileTest, targetC, "", "", reBuildFailed)
finally:
removeDir("pkgstemp")
if not keepDir: removeDir("pkgstemp")
# ----------------------------------------------------------------------------

View File

@@ -1,29 +1,28 @@
import strutils
const
packages* = """
karax
glob
""".splitWhitespace()
template pkg(name: string; cmd = "nimble test"; version = ""): untyped =
packages.add((name, cmd, version))
var packages*: seq[tuple[name, cmd, version: string]] = @[]
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
inim
c2nim
sdl1
iterutils
gnuplot
nimpb
lazy
choosenim
]#
jester
nimx
]#

View File

@@ -9,7 +9,7 @@
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 isAppVeyor* = existsEnv("APPVEYOR")