summary refs log tree commit diff stats
path: root/tests/newconfig
diff options
context:
space:
mode:
Diffstat (limited to 'tests/newconfig')
-rw-r--r--tests/newconfig/bar/config.nims0
-rw-r--r--tests/newconfig/bar/mfoo.nim0
-rw-r--r--tests/newconfig/bar/mfoo.nim.cfg0
-rw-r--r--tests/newconfig/bar/mfoo.nims0
-rw-r--r--tests/newconfig/bar/nim.cfg0
-rw-r--r--tests/newconfig/foo2/mfoo2.customext2
-rw-r--r--tests/newconfig/mconfigcheck.nims9
-rw-r--r--tests/newconfig/mymath.nim4
-rw-r--r--tests/newconfig/tfoo.nim13
-rw-r--r--tests/newconfig/tfoo.nims108
10 files changed, 136 insertions, 0 deletions
diff --git a/tests/newconfig/bar/config.nims b/tests/newconfig/bar/config.nims
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/newconfig/bar/config.nims
diff --git a/tests/newconfig/bar/mfoo.nim b/tests/newconfig/bar/mfoo.nim
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/newconfig/bar/mfoo.nim
diff --git a/tests/newconfig/bar/mfoo.nim.cfg b/tests/newconfig/bar/mfoo.nim.cfg
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/newconfig/bar/mfoo.nim.cfg
diff --git a/tests/newconfig/bar/mfoo.nims b/tests/newconfig/bar/mfoo.nims
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/newconfig/bar/mfoo.nims
diff --git a/tests/newconfig/bar/nim.cfg b/tests/newconfig/bar/nim.cfg
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/tests/newconfig/bar/nim.cfg
diff --git a/tests/newconfig/foo2/mfoo2.customext b/tests/newconfig/foo2/mfoo2.customext
new file mode 100644
index 000000000..66c8b1d15
--- /dev/null
+++ b/tests/newconfig/foo2/mfoo2.customext
@@ -0,0 +1,2 @@
+doAssert defined(nimscript)
+echo "123"
diff --git a/tests/newconfig/mconfigcheck.nims b/tests/newconfig/mconfigcheck.nims
new file mode 100644
index 000000000..8df6715f6
--- /dev/null
+++ b/tests/newconfig/mconfigcheck.nims
@@ -0,0 +1,9 @@
+mode = ScriptMode.Verbose
+proc build() =
+  echo "building nim... "
+  exec "sleep 10"
+  exec "nonexistant command"
+  echo getCurrentDir()
+
+echo "hello"
+build()
diff --git a/tests/newconfig/mymath.nim b/tests/newconfig/mymath.nim
new file mode 100644
index 000000000..5668b448b
--- /dev/null
+++ b/tests/newconfig/mymath.nim
@@ -0,0 +1,4 @@
+
+
+proc ln*(x: float): float =
+  return 0.5
diff --git a/tests/newconfig/tfoo.nim b/tests/newconfig/tfoo.nim
new file mode 100644
index 000000000..0c6ded470
--- /dev/null
+++ b/tests/newconfig/tfoo.nim
@@ -0,0 +1,13 @@
+discard """
+  cmd: "nim default --hint:cc:off --hint:cc $file"
+  output: '''hello world! 0.5 true'''
+  nimout: '''[NimScript] exec: gcc -v'''
+"""
+
+when not defined(definedefine):
+  {.fatal: "wrong nim script configuration".}
+
+import math, mfriends
+
+discard gen[int]()
+echo "hello world! ", ln 2.0, " ", compileOption("opt", "speed")
diff --git a/tests/newconfig/tfoo.nims b/tests/newconfig/tfoo.nims
new file mode 100644
index 000000000..f22caaacd
--- /dev/null
+++ b/tests/newconfig/tfoo.nims
@@ -0,0 +1,108 @@
+
+mode = ScriptMode.Whatif
+
+exec "gcc -v"
+
+--define:release
+
+--forceBuild
+--path: "../generics"
+
+warning("uninit", off)
+
+block: # supported syntaxes for hint,warning,switch
+  --hint:processing
+  hint("processing", on)
+  hint("processing", off)
+  switch("hint", "processing")
+  switch("hint", "processing:on")
+  switch("hint", "processing:off")
+  switch("hint", "[processing]")
+  switch("hint", "[processing]:on")
+  switch("hint", "[processing]:off") # leave it off
+
+  --warning:UnusedImport
+  switch("warning", "UnusedImport:off")
+  switch("warning", "UnusedImport:on")
+  switch("warning", "[UnusedImport]:off")
+  switch("warning", "[UnusedImport]:on")
+  switch("warning", "[UnusedImport]")
+  switch("warning", "UnusedImport") # leave it on
+
+#--verbosity:2
+patchFile("stdlib", "math", "mymath")
+
+task listDirs, "lists every subdirectory":
+  for x in listDirs("."):
+    echo "DIR ", x
+
+task default, "default target":
+  --define: definedefine
+  setCommand "c"
+
+# bug #6327
+doAssert(existsEnv("dummy") == false)
+
+# issue #7283
+putEnv("dummy", "myval")
+doAssert(existsEnv("dummy"))
+doAssert(getEnv("dummy") == "myval")
+delEnv("dummy")
+doAssert(existsEnv("dummy") == false)
+
+# issue #7393
+let wd = getCurrentDir()
+cd("..")
+doAssert wd != getCurrentDir()
+cd(wd)
+doAssert wd == getCurrentDir()
+
+when false:
+  # this doesn't work in a 'koch testintall' environment
+  doAssert findExe("nim") != ""
+
+# general tests
+mode = ScriptMode.Verbose
+
+doAssert getCommand() == "c"
+setCommand("cpp")
+doAssert getCommand() == "cpp"
+setCommand("c")
+
+doAssert cmpic("HeLLO", "hello") == 0
+
+doAssert fileExists("tests/newconfig/tfoo.nims") == true
+doAssert dirExists("tests") == true
+
+doAssert fileExists("tests/newconfig/tfoo.nims") == true
+doAssert dirExists("tests") == true
+
+discard selfExe()
+
+when defined(windows):
+  doAssert toExe("nim") == "nim.exe"
+  doAssert toDll("nim") == "nim.dll"
+else:
+  doAssert toExe("nim") == "nim"
+  doAssert toDll("nim") == "libnim.so"
+
+rmDir("tempXYZ")
+doAssertRaises(OSError):
+  rmDir("tempXYZ", checkDir = true)
+doAssert dirExists("tempXYZ") == false
+mkDir("tempXYZ")
+doAssert dirExists("tempXYZ") == true
+doAssert fileExists("tempXYZ/koch.nim") == false
+
+when false:
+  # this doesn't work in a 'koch testintall' environment
+  cpFile("koch.nim", "tempXYZ/koch.nim")
+  doAssert fileExists("tempXYZ/koch.nim") == true
+  cpDir("nimsuggest", "tempXYZ/.")
+  doAssert dirExists("tempXYZ/tests") == true
+  doAssert fileExists("tempXYZ/nimsuggest.nim") == true
+  rmFile("tempXYZ/koch.nim")
+  doAssert fileExists("tempXYZ/koch.nim") == false
+
+rmDir("tempXYZ")
+doAssert dirExists("tempXYZ") == false