fix testament regression: installed testament works again with testament r path (#16767)

* fix testament regression: installed testament works again with testament r path

* fixup
This commit is contained in:
Timothee Cour
2021-01-20 05:04:08 -08:00
committed by GitHub
parent 00d9176e91
commit 2b5841cd2b
3 changed files with 31 additions and 11 deletions

View File

@@ -24,13 +24,30 @@ const
# robust way to derive other paths here
# We don't depend on PATH so this is robust to having multiple nim binaries
nimRootDir* = sourcePath.parentDir.parentDir.parentDir.parentDir ## root of Nim repo
testsFname* = "tests"
stdlibDir* = nimRootDir / "lib"
systemPath* = stdlibDir / "system.nim"
testsDir* = nimRootDir / "tests"
testsDir* = nimRootDir / testsFname
buildDir* = nimRootDir / "build"
## refs #10268: all testament generated files should go here to avoid
## polluting .gitignore
proc splitTestFile*(file: string): tuple[cat: string, path: string] =
## At least one directory is required in the path, to use as a category name
runnableExamples:
doAssert splitTestFile("tests/fakedir/tfakename.nim") == ("fakedir", "tests/fakedir/tfakename.nim".unixToNativePath)
for p in file.parentDirs(inclusive = false):
let parent = p.parentDir
if parent.lastPathPart == testsFname:
result.cat = p.lastPathPart
let dir = getCurrentDir()
if file.isRelativeTo(dir):
result.path = file.relativePath(dir)
else:
result.path = file
return result
doAssert false, "file must match this pattern: '/pathto/tests/dir/**/tfile.nim', got: '" & file & "'"
static:
# sanity check
doAssert fileExists(systemPath)