diff --git a/docs/examples/fifo/fifo.sh b/docs/examples/fifo/fifo.sh
deleted file mode 100644
index 1024222..0000000
--- a/docs/examples/fifo/fifo.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/bash
-
-python3 $SBY_MAIN -f fifo.sby basic cover noverific
-
-if [[ $? -ne 0 ]] ; then
-    exit 1
-fi
-
-python3 $SBY_MAIN -f fifo.sby nofullskip
-
-if [[ $? -ne 2 ]] ; then
-    exit 1
-fi
diff --git a/docs/examples/fifo/fifo_extra_tests.sby b/docs/examples/fifo/fifo_extra_tests.sby
new file mode 100644
index 0000000..183def5
--- /dev/null
+++ b/docs/examples/fifo/fifo_extra_tests.sby
@@ -0,0 +1,18 @@
+--pycode-begin--
+# This is for our test infrastructure and not part of the example
+
+# Read fifo.sby and patch it on the fly:
+for line in open("fifo.sby"):
+    line = line.rstrip()
+
+    # change the tasks to run as tests
+    if line.endswith(": default"):
+        line = "nofullskip noverific : default"
+
+    output(line)
+
+    # add expect fail to the failing tasks
+    if line == "[options]":
+        output("nofullskip: expect fail")
+
+--pycode-end--
diff --git a/tests/make/test_rules.py b/tests/make/test_rules.py
index c1b8e84..8e91bfd 100644
--- a/tests/make/test_rules.py
+++ b/tests/make/test_rules.py
@@ -18,7 +18,8 @@ sby_dir = sby_file.parent
 
 taskinfo = json.loads(
     subprocess.check_output(
-        [sys.executable, os.getenv("SBY_MAIN"), "--dumptaskinfo", sby_file]
+        [sys.executable, os.getenv("SBY_MAIN"), "--dumptaskinfo", sby_file.name],
+        cwd=sby_dir,
     )
 )