MAINT Add pytest.mark.xfail_browsers and use it to reduce boilerplate. Use a decorator to indicate which browsers we want to xfail test. This works for `run_in_pyodide` as well as normal tests.
import pytest
from pyodide_test_runner import run_in_pyodide


@pytest.mark.parametrize(
    "pattern,name,flags,expected",
    [
        ("foo", "bar", 0, False),
        ("f*", "foo", 0, True),
        ("f*bar", "f/bar", 0, True),
        ("f*bar", "f/bar", "fnmatch.FNM_PATHNAME", False),
    ],
)
def test_fnmatch(selenium_module_scope, pattern, name, flags, expected):
    selenium = selenium_module_scope
    selenium.load_package("cffi_example")
    result = selenium.run(
        f"""
        from cffi_example import fnmatch
        fnmatch.fnmatch({pattern!r}, {name!r}, {flags})
        """
    )
    assert result == expected


@run_in_pyodide(
    packages=["cffi_example"],
    selenium_fixture_name="selenium_module_scope",
)
def test_person():
    from cffi_example.person import Person

    p = Person("Alex", "Smith", 72)
    assert p.get_age() == 72
    assert p.get_full_name() == "Alex Smith"

    p = Person("x" * 100, "y" * 100, 72)
    assert p.get_full_name() == "x" * 100

import pytest
from pyodide_test_runner import run_in_pyodide


@pytest.mark.parametrize(
    "pattern,name,flags,expected",
    [
        ("foo", "bar", 0, False),
        ("f*", "foo", 0, True),
        ("f*bar", "f/bar", 0, True),
        ("f*bar", "f/bar", "fnmatch.FNM_PATHNAME", False),
    ],
)
def test_fnmatch(selenium_module_scope, pattern, name, flags, expected):
    selenium = selenium_module_scope
    selenium.load_package("cffi_example")
    result = selenium.run(
        f"""
        from cffi_example import fnmatch
        fnmatch.fnmatch({pattern!r}, {name!r}, {flags})
        """
    )
    assert result == expected


@run_in_pyodide(
    packages=["cffi_example"],
    selenium_fixture_name="selenium_module_scope",
)
def test_person():
    from cffi_example.person import Person

    p = Person("Alex", "Smith", 72)
    assert p.get_age() == 72
    assert p.get_full_name() == "Alex Smith"

    p = Person("x" * 100, "y" * 100, 72)
    assert p.get_full_name() == "x" * 100
