Skip to content

fprime_test_api: Continuing after a breakpoint from pdb.set_trace() results in event search failures #4707

@bevinduckett

Description

@bevinduckett
F´ Version 89a9e32 Bump werkzeug from 3.0.6 to 3.1.4 (#4480)
Affected Component fprime gds integration library

Problem Description

I've been experimenting with using pdb.set_trace() to set a break point in a test that uses fprime_test_api and am experiencing odd behavior and wondering if anyone else has seen this. Before the break point, fprime_test_api.send_and_assert_event is finding events as expected, if I wait a second or two at the break point and then resume fprime_test_api.send_and_assert_event continues to work but if I wait longer (e.g. 30 seconds or a minute because I'm trying to check previous events) before resuming all fprime_test_api.send_and_assert_event  calls fail (in some cases I can see that the commands being sent still generate the expected events in the web UI, in others I stop seeing new events show up in the web UI)

For example, if there's two send_and_assert_event() calls that both work if done without a pdb in between

fprime_test_api.send_and_assert_event(cmd, events=event_list, timeout=30)
fprime_test_api.send_and_assert_event(cmd, events=event_list, timeout=30)

adding pdb.set_trace() in between them works if I continue as soon as I get the interactive prompt, but if I let it set for a bit continuing results in an assertion failure when the event list is checked

fprime_test_api.send_and_assert_event(cmd1, events=event_list1, timeout=30)
import pdb; pdb.set_trace()
fprime_test_api.send_and_assert_event(cmd2, events=event_list2, timeout=30)

Context / Environment

Execute fprime-util version-check and share the output.

Operating System: Linux
CPU Architecture: x86_64
Platform: Linux-4.18.0-553.100.1.el8_10.x86_64-x86_64-with-glibc2.28
Python version: 3.9.25
CMake version: 3.26.0
Pip version: 26.0
Pip packages:
    fprime-tools==4.0.2a2
    fprime-gds==4.0.2a11.dev20+gad302b44e
    fprime-fpp==3.1.0a12
Project submodules:
    https://github.com/nasa/fpp.git @ v3.1.0a11-175-ge23d8412b
    https://github.com/nasa/fprime.git @ v4.0.1a1-103-g89a9e3247b
    https://github.com/fprime-community/fprime-baremetal @ b94a572
    https://github.com/fprime-community/fprime-vorago @ 91a7435

How to Reproduce

  1. Create a test case that sends a simple cmd (e.g. a no-op) twice using send_and_assert_event
  2. Run pytest & verify the test case passes
  3. Add import pdb; pdb.set_trace() between the two send_and_assert_event calls
  4. Run pytest, wait 30 seconds after getting the interactive prompt, then type c to resume test execution (the second call should fail)

Expected Behavior

Setting a break point shouldn't prevent resuming the test

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions