call check_backend_support directly from backend fixture (#3666)

diff --git a/tests/conftest.py b/tests/conftest.py
index c21f4dc..c5efbd3 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -21,24 +21,14 @@
         mark.kwargs["interface"]
         for mark in request.node.get_marker("requires_backend_interface")
     ]
-    if all(
+    if not all(
         isinstance(openssl_backend, iface) for iface in required_interfaces
     ):
-        return openssl_backend
-    pytest.skip(
-        "OpenSSL doesn't implement required interfaces: {0}".format(
-            required_interfaces
+        pytest.skip(
+            "OpenSSL doesn't implement required interfaces: {0}".format(
+                required_interfaces
+            )
         )
-    )
 
-
[email protected]
-def pytest_runtest_setup(item):
-    check_backend_support(item)
-
-
-def pytest_addoption(parser):
-    parser.addoption(
-        "--backend", action="store", metavar="NAME",
-        help="Only run tests matching the backend NAME."
-    )
+    check_backend_support(openssl_backend, request)
+    return openssl_backend
diff --git a/tests/test_utils.py b/tests/test_utils.py
index 2b5a2af..a1fa80b 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -32,10 +32,9 @@
     supported = pretend.stub(
         kwargs={"only_if": lambda backend: False, "skip_message": "Nope"}
     )
-    item = pretend.stub(keywords={"supported": [supported]},
-                        funcargs={"backend": True})
+    item = pretend.stub(keywords={"supported": [supported]})
     with pytest.raises(pytest.skip.Exception) as exc_info:
-        check_backend_support(item)
+        check_backend_support(True, item)
     assert exc_info.value.args[0] == "Nope (True)"
 
 
@@ -43,19 +42,8 @@
     supported = pretend.stub(
         kwargs={"only_if": lambda backend: True, "skip_message": "Nope"}
     )
-    item = pretend.stub(keywords={"supported": [supported]},
-                        funcargs={"backend": True})
-    assert check_backend_support(item) is None
-
-
-def test_check_backend_support_no_backend():
-    supported = pretend.stub(
-        kwargs={"only_if": "notalambda", "skip_message": "Nope"}
-    )
-    item = pretend.stub(keywords={"supported": supported},
-                        funcargs={})
-    with pytest.raises(ValueError):
-        check_backend_support(item)
+    item = pretend.stub(keywords={"supported": [supported]})
+    assert check_backend_support(None, item) is None
 
 
 def test_load_nist_vectors():
diff --git a/tests/utils.py b/tests/utils.py
index 136b060..455b6bf 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -25,17 +25,14 @@
 )
 
 
-def check_backend_support(item):
+def check_backend_support(backend, item):
     supported = item.keywords.get("supported")
-    if supported and "backend" in item.funcargs:
+    if supported:
         for mark in supported:
-            if not mark.kwargs["only_if"](item.funcargs["backend"]):
+            if not mark.kwargs["only_if"](backend):
                 pytest.skip("{0} ({1})".format(
-                    mark.kwargs["skip_message"], item.funcargs["backend"]
+                    mark.kwargs["skip_message"], backend
                 ))
-    elif supported:
-        raise ValueError("This mark is only available on methods that take a "
-                         "backend")
 
 
 @contextmanager