]> granicus.if.org Git - graphviz/commitdiff
add a test case demonstrating a GVPR regression
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 19 Feb 2022 20:41:08 +0000 (12:41 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 20 Feb 2022 19:54:39 +0000 (11:54 -0800)
rtest/test_regression.py

index fe7d515f2c9d6a273cec6cf98322a5d9c5e1e177..908358529f74a6939019a9fa86efdd5725f2102a 100644 (file)
@@ -1536,3 +1536,24 @@ def test_bitarray():
     cflags += ["-std=gnu99", "-Wall", "-Wextra", "-Werror"]
 
   _, _ = run_c(src, cflags=cflags)
+
+@pytest.mark.xfail(strict=True) # FIXME
+@pytest.mark.skipif(shutil.which("gvpr") is None, reason="gvpr not available")
+def test_gvpr_usage():
+  """
+  gvpr usage information should be included when erroring on a malformed command
+  """
+
+  # create a temporary directory, under which we know no files will exist
+  with tempfile.TemporaryDirectory() as tmp:
+
+    # ask GVPR to process a non-existent file
+    with subprocess.Popen(["gvpr", "-f", "nofile"], stderr=subprocess.PIPE,
+                          cwd=tmp, universal_newlines=True) as p:
+      _, stderr = p.communicate()
+
+      assert p.returncode != 0, "GVPR accepted a non-existent file"
+
+  # the stderr output should have contained full usage instructions
+  assert "-o <ofile> - write output to <ofile>; stdout by default" in stderr, \
+    "truncated or malformed GVPR usage information"