Skip to content

[FR] Integrate xfail #33

Closed
Closed

Description

@webknjaz

I have a test that SEGFAULTs under random envs (usually only in one or two jobs in the matrix). So I decided to use forked to isolate it and marked it with xfail as follows:

@pytest.mark.xfail(
    reason='This test causes SEGFAULT, flakily.',
    strict=False,
)
@pytest.mark.forked
def test_exec_command(ssh_channel):
    """Test getting the output of a remotely executed command."""
    ...

But, despite my expectations, when it crashes, pytest shows it as a failure and not as XFAIL.

Could you please clarify whether this behavior is intended or is it a bug? (looks like a bug to me)

Am I doing anything wrong? Am I missing something here?

(Ref: https://github.com/ansible/pylibssh/runs/728770734?check_suite_focus=true#step:9:120)

Activity

  1. RonnyPfannschmidt commented on Jun 2, 2020

    @RonnyPfannschmidt
    Member

    Segfaults are currently not integrated

  2. webknjaz commented on Jun 2, 2020

    @webknjaz
    MemberAuthor

    Is it hard to integrate them?

  3. changed the title [-][BUG?] Clarify `xfail` compatibility[/-] [+][FR] Integrate `xfail`[/+] on Jun 2, 2020
  4. RonnyPfannschmidt commented on Jun 2, 2020

    @RonnyPfannschmidt
    Member

    i have no idea, i haven't worked on it and i don't plan to maintain/work on pytest-forked i only took it out of xdist to enable dropping the boxed feature from xdist itself

  5. webknjaz commented on Jun 2, 2020

    @webknjaz
    MemberAuthor

    @RonnyPfannschmidt where can I see how xfail is processed? I'm trying to figure out how things work in src/_pytest/mark/structures.py but it seems like it's probably not the place where I can hack into...

    I want to contribute but struggling to find a starting point.

  6. RonnyPfannschmidt commented on Jun 2, 2020

    @RonnyPfannschmidt
    Member

    I vaguely recall that xfail is processed in the skipping plugin

  7. webknjaz commented on Jun 5, 2020

    @webknjaz
    MemberAuthor

    So it turned out that for xfail to work, I need to set outcome = 'skipped' and wasxfail = 'the reason message' attrs on the report object.

  8. webknjaz commented on Jun 5, 2020

    @webknjaz
    MemberAuthor

    So it turned out that for xfail to work, I need to set outcome = 'skipped' and wasxfail = 'the reason message' attrs on the report object.

    Opened an issue about this pytest-dev/pytest#7327

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions