summary refs log tree commit diff stats
path: root/tests/stdlib/tparsopt.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/stdlib/tparsopt.nim')
-rw-r--r--tests/stdlib/tparsopt.nim35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/stdlib/tparsopt.nim b/tests/stdlib/tparsopt.nim
new file mode 100644
index 000000000..f3a9a9798
--- /dev/null
+++ b/tests/stdlib/tparsopt.nim
@@ -0,0 +1,35 @@
+discard """
+disabled: true
+"""
+
+# this file has a type in the name, and it does not really test
+# parseopt module, because tester has no support to set arguments. Test the
+# new parseopt module. Therefore it is disabled.
+
+import
+  parseopt
+
+import std/[assertions, syncio]
+
+proc writeHelp() =
+  writeLine(stdout, "Usage: tparsopt [options] filename [options]")
+
+proc writeVersion() =
+  writeLine(stdout, "Version: 1.0.0")
+
+var
+  filename = ""
+for kind, key, val in getopt():
+  case kind
+  of cmdArgument:
+    filename = key
+  of cmdLongOption, cmdShortOption:
+    case key
+    of "help", "h": writeHelp()
+    of "version", "v": writeVersion()
+    else:
+      writeLine(stdout, "Unknown command line option: ", key, ": ", val)
+  of cmdEnd: doAssert(false) # cannot happen
+if filename == "":
+  # no filename has been given, so we show the help:
+  writeHelp()