mirror of
https://github.com/nim-lang/Nim.git
synced 2026-08-28 09:31:38 +00:00
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:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user