Compare commits

...
Sign in to create a new pull request.

2 commits

Author SHA1 Message Date
Dominik Picheta
0f8a7e178d Fixes NIM_PREFIX_DIR affecting testing logs. 2018-08-28 14:56:03 +01:00
Dominik Picheta
f566e8bcd1 Attempt to fix travis. 2018-08-28 14:26:45 +01:00
2 changed files with 30 additions and 24 deletions

View file

@ -11,6 +11,7 @@ cache:
install:
- export CHOOSENIM_CHOOSE_VERSION="#7bb93c730ea87f"
- export NIM_LIB_PREFIX="$HOME/.choosenim/toolchains/nim-"$CHOOSENIM_CHOOSE_VERSION
- |
curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh
sh init.sh -y

View file

@ -52,7 +52,12 @@ template verify(res: (string, int)) =
check r[1] == QuitSuccess
proc processOutput(output: string): seq[string] =
output.strip.splitLines().filter((x: string) => (x.len > 0))
output.strip.splitLines().filter(
(x: string) => (
x.len > 0 and
"Using env var NIM_LIB_PREFIX" notin x
)
)
proc inLines(lines: seq[string], line: string): bool =
for i in lines:
@ -87,7 +92,7 @@ test "can validate package structure (#144)":
cd "packageStructure/" & package:
let (output, exitCode) = execNimble(["install", "-y"])
check exitCode == QuitSuccess
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check(not inLines(lines, "warning"))
# Test that warnings are produced for the incorrectly structured packages.
@ -95,7 +100,7 @@ test "can validate package structure (#144)":
cd "packageStructure/" & package:
let (output, exitCode) = execNimble(["install", "-y"])
check exitCode == QuitSuccess
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
checkpoint(output)
case package
of "x":
@ -135,7 +140,7 @@ test "issue 113 (uninstallation problems)":
# Try to remove c.
let (output, exitCode) = execNimble(["remove", "-y", "c"])
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode != QuitSuccess
check inLines(lines, "cannot uninstall c (0.1.0) because b (0.1.0) depends on it")
@ -189,7 +194,7 @@ test "can refresh with custom urls":
let (output, exitCode) = execNimble(["refresh", "--verbose"])
checkpoint(output)
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check inLines(lines, "config file at")
check inLines(lines, "official package list")
@ -206,7 +211,7 @@ test "can refresh with local package list":
path = "$1"
""".unindent % (getCurrentDir() / "issue368" / "packages.json"))
let (output, exitCode) = execNimble(["refresh", "--verbose"])
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check inLines(lines, "config file at")
check inLines(lines, "Copying")
check inLines(lines, "Package list copied.")
@ -219,7 +224,7 @@ test "package list source required":
name = "local"
""")
let (output, exitCode) = execNimble(["refresh", "--verbose"])
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check inLines(lines, "config file at")
check inLines(lines, "Package list 'local' requires either url or path")
check exitCode == QuitFailure
@ -233,7 +238,7 @@ test "package list can only have one source":
url = "http://nim-lang.org/nimble/packages.json"
""")
let (output, exitCode) = execNimble(["refresh", "--verbose"])
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check inLines(lines, "config file at")
check inLines(lines, "Attempted to specify `url` and `path` for the same package list 'local'")
check exitCode == QuitFailure
@ -247,7 +252,7 @@ suite "nimscript":
cd "nimscript":
let (output, exitCode) = execNimble(["install", "-y"])
check exitCode == QuitSuccess
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check lines[0].startsWith("Before PkgDir:")
check lines[0].endsWith("tests/nimscript")
check lines[^1].startsWith("After PkgDir:")
@ -256,28 +261,28 @@ suite "nimscript":
test "can execute nimscript tasks":
cd "nimscript":
let (output, exitCode) = execNimble("--verbose", "work")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check lines[^1] == "10"
test "can use nimscript's setCommand":
cd "nimscript":
let (output, exitCode) = execNimble("--verbose", "cTest")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check "Execution finished".normalize in lines[^1].normalize
test "can use nimscript's setCommand with flags":
cd "nimscript":
let (output, exitCode) = execNimble("--debug", "cr")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check inLines(lines, "Hello World")
test "can use nimscript with repeated flags (issue #329)":
cd "nimscript":
let (output, exitCode) = execNimble("--debug", "repeated")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
var found = false
for line in lines:
@ -294,7 +299,7 @@ suite "nimscript":
test "can use pre/post hooks":
cd "nimscript":
let (output, exitCode) = execNimble("hooks")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check inLines(lines, "First")
check inLines(lines, "middle")
@ -303,7 +308,7 @@ suite "nimscript":
test "pre hook can prevent action":
cd "nimscript":
let (output, exitCode) = execNimble("hooks2")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check(not inLines(lines, "Shouldn't happen"))
check inLines(lines, "Hook prevented further execution")
@ -311,7 +316,7 @@ suite "nimscript":
test "nimble script api":
cd "nimscript":
let (output, exitCode) = execNimble("api")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode == QuitSuccess
check inLines(lines, "PKG_DIR: " & getCurrentDir())
@ -324,7 +329,7 @@ test "can reject same version dependencies":
"install", "-y", "https://github.com/nimble-test/packagebin.git")
# We look at the error output here to avoid out-of-order problems caused by
# stderr output being generated and flushed without first flushing stdout
let ls = outp.strip.splitLines()
let ls = outp.strip.processOutput()
check exitCode != QuitSuccess
check "Cannot satisfy the dependency on PackageA 0.2.0 and PackageA 0.5.0" in
ls[ls.len-1]
@ -347,20 +352,20 @@ test "issue #27":
test "issue #126":
cd "issue126/a":
let (output, exitCode) = execNimble("install", "-y")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode != QuitSuccess # TODO
check inLines(lines, "issue-126 is an invalid package name: cannot contain '-'")
cd "issue126/b":
let (output1, exitCode1) = execNimble("install", "-y")
let lines1 = output1.strip.splitLines()
let lines1 = output1.strip.processOutput()
check exitCode1 != QuitSuccess
check inLines(lines1, "The .nimble file name must match name specified inside")
test "issue #108":
cd "issue108":
let (output, exitCode) = execNimble("build")
let lines = output.strip.splitLines()
let lines = output.strip.processOutput()
check exitCode != QuitSuccess
check inLines(lines, "Nothing to build")
@ -403,7 +408,7 @@ test "issue #349":
proc checkName(name: string) =
let (outp, code) = execNimble("init", "-y", name)
let msg = outp.strip.splitLines()
let msg = outp.strip.processOutput()
check code == QuitFailure
check inLines(msg,
"\"$1\" is an invalid package name: reserved name" % name)
@ -431,7 +436,7 @@ test "can uninstall":
block:
let (outp, exitCode) = execNimble("uninstall", "-y", "issue27b")
let ls = outp.strip.splitLines()
let ls = outp.strip.processOutput()
check exitCode != QuitSuccess
check "Cannot uninstall issue27b (0.1.0) because issue27a (0.1.0) depends" &
" on it" in ls[ls.len-1]
@ -587,7 +592,7 @@ suite "develop feature":
let path = installDir / "pkgs" / "hybrid-#head" / "hybrid.nimble-link"
check fileExists(path)
let split = readFile(path).splitLines()
let split = readFile(path).processOutput()
check split.len == 2
check split[0].endsWith("develop/hybrid/hybrid.nimble")
check split[1].endsWith("develop/hybrid")
@ -602,7 +607,7 @@ suite "develop feature":
let path = installDir / "pkgs" / "srcdirtest-#head" /
"srcdirtest.nimble-link"
check fileExists(path)
let split = readFile(path).splitLines()
let split = readFile(path).processOutput()
check split.len == 2
check split[0].endsWith("develop/srcdirtest/srcdirtest.nimble")
check split[1].endsWith("develop/srcdirtest/src")