tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

Description

@nathanwilliams-ct

See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
$ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
snip setup
===================================================================================== test session starts ======================================================================================
platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
cachedir: .tox/py314/.pytest_cache
rootdir: /var/home/nathanwilliams/buildstream
configfile: setup.cfg
plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
timeout: 1800.0s
timeout method: signal
timeout func_only: False
collected 1 item

tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

===================================================================================== slowest 20 durations =====================================================================================
9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

(1 durations < 0.005s hidden. Use -vv to show these durations.)
====================================================================================== 1 passed in 9.18s =======================================================================================
snip teardown
compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

Interesting. Did you try it without the console? (e.g. tox ... | cat)

Dead:
$ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
snip setup
============================= test session starts ==============================
platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
cachedir: .tox/py314/.pytest_cache
rootdir: /var/home/nathanwilliams/buildstream
configfile: setup.cfg
plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
timeout: 1800.0s
timeout method: signal
timeout func_only: False
collecting ... collected 1 item

tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

=================================== FAILURES ===================================
_____________ test_failed_build_log[interactive/failed-build.bst] ______________

element_name = 'interactive/failed-build.bst'
build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

@pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
@pytest.mark.datafiles(DATA_DIR)
@pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
def test_failed_build_log(element_name, build_session):
build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
build_session.sendline("log")
# Send a few carriage returns to get to the end of the pager
build_session.sendline(os.linesep * 20)
# Assert that we got something from the logs
build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
# Quit the pager
build_session.send("q")
# Quit the session
 build_session.expect_exact("Choice: [continue]:")

tests/integration/interactive_build.py:108:


.tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
return exp.expect_loop(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^
.tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
return self.eof(e)
^^^^^^^^^^^


self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
err = EOF('End Of File (EOF). Exception style platform.')

def eof(self, err=None):
spawn = self.spawn
spawn.before = spawn._before.getvalue()
spawn._buffer = spawn.buffer_type()
spawn._before = spawn.buffer_type()
spawn.after = EOF
index = self.searcher.eof_index
if index >= 0:
spawn.match = EOF
spawn.match_index = index
return index
else:
spawn.match = None
spawn.match_index = None
msg = str(spawn)
msg += '\nsearcher: %s' % self.searcher
if err is not None:
msg = str(err) + '\n' + msg
exc = EOF(msg)
exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
 raise exc

E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
E buffer (last 100 chars): b''
E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
E after: <class 'pexpect.exceptions.EOF'>
E match: None
E match_index: None
E exitstatus: None
E flag_eof: True
E pid: 67734
E child_fd: 13
E closed: False
E timeout: 30
E delimiter: <class 'pexpect.exceptions.EOF'>
E logfile: None
E logfile_read: None
E logfile_send: None
E maxread: 2000
E ignorecase: False
E searchwindowsize: None
E delaybeforesend: 0.05
E delayafterclose: 0.1
E delayafterterminate: 0.1
E searcher: searcher_string:
E 0: b'Choice: [continue]:'

.tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
============================= slowest 20 durations =============================
8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

(1 durations < 0.005s hidden. Use -vv to show these durations.)
=========================== short test summary info ============================
FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
============================== 1 failed in 9.01s ===============================
snip teardown

Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
A change in buildstream?

Activity

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

    bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
      Skip to content

      tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

      Description

      @nathanwilliams-ct

      See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

      TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
      Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

      Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

      Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
      $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
      snip setup
      ===================================================================================== test session starts ======================================================================================
      platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
      cachedir: .tox/py314/.pytest_cache
      rootdir: /var/home/nathanwilliams/buildstream
      configfile: setup.cfg
      plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
      timeout: 1800.0s
      timeout method: signal
      timeout func_only: False
      collected 1 item

      tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

      ===================================================================================== slowest 20 durations =====================================================================================
      9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
      0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

      (1 durations < 0.005s hidden. Use -vv to show these durations.)
      ====================================================================================== 1 passed in 9.18s =======================================================================================
      snip teardown
      compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

      Interesting. Did you try it without the console? (e.g. tox ... | cat)

      Dead:
      $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
      snip setup
      ============================= test session starts ==============================
      platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
      cachedir: .tox/py314/.pytest_cache
      rootdir: /var/home/nathanwilliams/buildstream
      configfile: setup.cfg
      plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
      timeout: 1800.0s
      timeout method: signal
      timeout func_only: False
      collecting ... collected 1 item

      tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

      =================================== FAILURES ===================================
      _____________ test_failed_build_log[interactive/failed-build.bst] ______________

      element_name = 'interactive/failed-build.bst'
      build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

      @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
      @pytest.mark.datafiles(DATA_DIR)
      @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
      def test_failed_build_log(element_name, build_session):
      build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
      build_session.sendline("log")
      # Send a few carriage returns to get to the end of the pager
      build_session.sendline(os.linesep * 20)
      # Assert that we got something from the logs
      build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
      # Quit the pager
      build_session.send("q")
      # Quit the session
      
       build_session.expect_exact("Choice: [continue]:")
      

      tests/integration/interactive_build.py:108:


      .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
      return exp.expect_loop(timeout)
      ^^^^^^^^^^^^^^^^^^^^^^^^
      .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
      return self.eof(e)
      ^^^^^^^^^^^


      self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
      err = EOF('End Of File (EOF). Exception style platform.')

      def eof(self, err=None):
      spawn = self.spawn
      spawn.before = spawn._before.getvalue()
      spawn._buffer = spawn.buffer_type()
      spawn._before = spawn.buffer_type()
      spawn.after = EOF
      index = self.searcher.eof_index
      if index >= 0:
      spawn.match = EOF
      spawn.match_index = index
      return index
      else:
      spawn.match = None
      spawn.match_index = None
      msg = str(spawn)
      msg += '\nsearcher: %s' % self.searcher
      if err is not None:
      msg = str(err) + '\n' + msg
      exc = EOF(msg)
      exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
      
       raise exc
      

      E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
      E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
      E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
      E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
      E buffer (last 100 chars): b''
      E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
      E after: <class 'pexpect.exceptions.EOF'>
      E match: None
      E match_index: None
      E exitstatus: None
      E flag_eof: True
      E pid: 67734
      E child_fd: 13
      E closed: False
      E timeout: 30
      E delimiter: <class 'pexpect.exceptions.EOF'>
      E logfile: None
      E logfile_read: None
      E logfile_send: None
      E maxread: 2000
      E ignorecase: False
      E searchwindowsize: None
      E delaybeforesend: 0.05
      E delayafterclose: 0.1
      E delayafterterminate: 0.1
      E searcher: searcher_string:
      E 0: b'Choice: [continue]:'

      .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
      ============================= slowest 20 durations =============================
      8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
      0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

      (1 durations < 0.005s hidden. Use -vv to show these durations.)
      =========================== short test summary info ============================
      FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
      ============================== 1 failed in 9.01s ===============================
      snip teardown

      Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
      A change in buildstream?

      Activity

      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

        bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

        Type

        No type

        Projects

        No projects

          Relationships

          None yet

          Development

          No branches or pull requests

          Issue actions

          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
          Skip to content

          tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

          Description

          @nathanwilliams-ct

          See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

          TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
          Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

          Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

          Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
          $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
          snip setup
          ===================================================================================== test session starts ======================================================================================
          platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
          cachedir: .tox/py314/.pytest_cache
          rootdir: /var/home/nathanwilliams/buildstream
          configfile: setup.cfg
          plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
          timeout: 1800.0s
          timeout method: signal
          timeout func_only: False
          collected 1 item

          tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

          ===================================================================================== slowest 20 durations =====================================================================================
          9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
          0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

          (1 durations < 0.005s hidden. Use -vv to show these durations.)
          ====================================================================================== 1 passed in 9.18s =======================================================================================
          snip teardown
          compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

          Interesting. Did you try it without the console? (e.g. tox ... | cat)

          Dead:
          $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
          snip setup
          ============================= test session starts ==============================
          platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
          cachedir: .tox/py314/.pytest_cache
          rootdir: /var/home/nathanwilliams/buildstream
          configfile: setup.cfg
          plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
          timeout: 1800.0s
          timeout method: signal
          timeout func_only: False
          collecting ... collected 1 item

          tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

          =================================== FAILURES ===================================
          _____________ test_failed_build_log[interactive/failed-build.bst] ______________

          element_name = 'interactive/failed-build.bst'
          build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

          @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
          @pytest.mark.datafiles(DATA_DIR)
          @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
          def test_failed_build_log(element_name, build_session):
          build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
          build_session.sendline("log")
          # Send a few carriage returns to get to the end of the pager
          build_session.sendline(os.linesep * 20)
          # Assert that we got something from the logs
          build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
          # Quit the pager
          build_session.send("q")
          # Quit the session
          
           build_session.expect_exact("Choice: [continue]:")
          

          tests/integration/interactive_build.py:108:


          .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
          return exp.expect_loop(timeout)
          ^^^^^^^^^^^^^^^^^^^^^^^^
          .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
          return self.eof(e)
          ^^^^^^^^^^^


          self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
          err = EOF('End Of File (EOF). Exception style platform.')

          def eof(self, err=None):
          spawn = self.spawn
          spawn.before = spawn._before.getvalue()
          spawn._buffer = spawn.buffer_type()
          spawn._before = spawn.buffer_type()
          spawn.after = EOF
          index = self.searcher.eof_index
          if index >= 0:
          spawn.match = EOF
          spawn.match_index = index
          return index
          else:
          spawn.match = None
          spawn.match_index = None
          msg = str(spawn)
          msg += '\nsearcher: %s' % self.searcher
          if err is not None:
          msg = str(err) + '\n' + msg
          exc = EOF(msg)
          exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
          
           raise exc
          

          E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
          E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
          E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
          E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
          E buffer (last 100 chars): b''
          E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
          E after: <class 'pexpect.exceptions.EOF'>
          E match: None
          E match_index: None
          E exitstatus: None
          E flag_eof: True
          E pid: 67734
          E child_fd: 13
          E closed: False
          E timeout: 30
          E delimiter: <class 'pexpect.exceptions.EOF'>
          E logfile: None
          E logfile_read: None
          E logfile_send: None
          E maxread: 2000
          E ignorecase: False
          E searchwindowsize: None
          E delaybeforesend: 0.05
          E delayafterclose: 0.1
          E delayafterterminate: 0.1
          E searcher: searcher_string:
          E 0: b'Choice: [continue]:'

          .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
          ============================= slowest 20 durations =============================
          8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
          0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

          (1 durations < 0.005s hidden. Use -vv to show these durations.)
          =========================== short test summary info ============================
          FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
          ============================== 1 failed in 9.01s ===============================
          snip teardown

          Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
          A change in buildstream?

          Activity

          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

            bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

            Type

            No type

            Projects

            No projects

              Relationships

              None yet

              Development

              No branches or pull requests

              Issue actions

              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
              Skip to content

              tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

              Description

              @nathanwilliams-ct

              See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

              TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
              Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

              Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

              Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
              $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
              snip setup
              ===================================================================================== test session starts ======================================================================================
              platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
              cachedir: .tox/py314/.pytest_cache
              rootdir: /var/home/nathanwilliams/buildstream
              configfile: setup.cfg
              plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
              timeout: 1800.0s
              timeout method: signal
              timeout func_only: False
              collected 1 item

              tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

              ===================================================================================== slowest 20 durations =====================================================================================
              9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
              0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

              (1 durations < 0.005s hidden. Use -vv to show these durations.)
              ====================================================================================== 1 passed in 9.18s =======================================================================================
              snip teardown
              compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

              Interesting. Did you try it without the console? (e.g. tox ... | cat)

              Dead:
              $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
              snip setup
              ============================= test session starts ==============================
              platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
              cachedir: .tox/py314/.pytest_cache
              rootdir: /var/home/nathanwilliams/buildstream
              configfile: setup.cfg
              plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
              timeout: 1800.0s
              timeout method: signal
              timeout func_only: False
              collecting ... collected 1 item

              tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

              =================================== FAILURES ===================================
              _____________ test_failed_build_log[interactive/failed-build.bst] ______________

              element_name = 'interactive/failed-build.bst'
              build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

              @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
              @pytest.mark.datafiles(DATA_DIR)
              @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
              def test_failed_build_log(element_name, build_session):
              build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
              build_session.sendline("log")
              # Send a few carriage returns to get to the end of the pager
              build_session.sendline(os.linesep * 20)
              # Assert that we got something from the logs
              build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
              # Quit the pager
              build_session.send("q")
              # Quit the session
              
               build_session.expect_exact("Choice: [continue]:")
              

              tests/integration/interactive_build.py:108:


              .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
              return exp.expect_loop(timeout)
              ^^^^^^^^^^^^^^^^^^^^^^^^
              .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
              return self.eof(e)
              ^^^^^^^^^^^


              self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
              err = EOF('End Of File (EOF). Exception style platform.')

              def eof(self, err=None):
              spawn = self.spawn
              spawn.before = spawn._before.getvalue()
              spawn._buffer = spawn.buffer_type()
              spawn._before = spawn.buffer_type()
              spawn.after = EOF
              index = self.searcher.eof_index
              if index >= 0:
              spawn.match = EOF
              spawn.match_index = index
              return index
              else:
              spawn.match = None
              spawn.match_index = None
              msg = str(spawn)
              msg += '\nsearcher: %s' % self.searcher
              if err is not None:
              msg = str(err) + '\n' + msg
              exc = EOF(msg)
              exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
              
               raise exc
              

              E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
              E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
              E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
              E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
              E buffer (last 100 chars): b''
              E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
              E after: <class 'pexpect.exceptions.EOF'>
              E match: None
              E match_index: None
              E exitstatus: None
              E flag_eof: True
              E pid: 67734
              E child_fd: 13
              E closed: False
              E timeout: 30
              E delimiter: <class 'pexpect.exceptions.EOF'>
              E logfile: None
              E logfile_read: None
              E logfile_send: None
              E maxread: 2000
              E ignorecase: False
              E searchwindowsize: None
              E delaybeforesend: 0.05
              E delayafterclose: 0.1
              E delayafterterminate: 0.1
              E searcher: searcher_string:
              E 0: b'Choice: [continue]:'

              .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
              ============================= slowest 20 durations =============================
              8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
              0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

              (1 durations < 0.005s hidden. Use -vv to show these durations.)
              =========================== short test summary info ============================
              FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
              ============================== 1 failed in 9.01s ===============================
              snip teardown

              Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
              A change in buildstream?

              Activity

              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

                bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

                Type

                No type

                Projects

                No projects

                  Relationships

                  None yet

                  Development

                  No branches or pull requests

                  Issue actions

                  , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
                  Skip to content

                  tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

                  Description

                  @nathanwilliams-ct

                  See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

                  TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
                  Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

                  Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

                  Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
                  $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
                  snip setup
                  ===================================================================================== test session starts ======================================================================================
                  platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                  cachedir: .tox/py314/.pytest_cache
                  rootdir: /var/home/nathanwilliams/buildstream
                  configfile: setup.cfg
                  plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                  timeout: 1800.0s
                  timeout method: signal
                  timeout func_only: False
                  collected 1 item

                  tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

                  ===================================================================================== slowest 20 durations =====================================================================================
                  9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                  0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                  (1 durations < 0.005s hidden. Use -vv to show these durations.)
                  ====================================================================================== 1 passed in 9.18s =======================================================================================
                  snip teardown
                  compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

                  Interesting. Did you try it without the console? (e.g. tox ... | cat)

                  Dead:
                  $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
                  snip setup
                  ============================= test session starts ==============================
                  platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                  cachedir: .tox/py314/.pytest_cache
                  rootdir: /var/home/nathanwilliams/buildstream
                  configfile: setup.cfg
                  plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                  timeout: 1800.0s
                  timeout method: signal
                  timeout func_only: False
                  collecting ... collected 1 item

                  tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

                  =================================== FAILURES ===================================
                  _____________ test_failed_build_log[interactive/failed-build.bst] ______________

                  element_name = 'interactive/failed-build.bst'
                  build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

                  @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
                  @pytest.mark.datafiles(DATA_DIR)
                  @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
                  def test_failed_build_log(element_name, build_session):
                  build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
                  build_session.sendline("log")
                  # Send a few carriage returns to get to the end of the pager
                  build_session.sendline(os.linesep * 20)
                  # Assert that we got something from the logs
                  build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
                  # Quit the pager
                  build_session.send("q")
                  # Quit the session
                  
                   build_session.expect_exact("Choice: [continue]:")
                  

                  tests/integration/interactive_build.py:108:


                  .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
                  return exp.expect_loop(timeout)
                  ^^^^^^^^^^^^^^^^^^^^^^^^
                  .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
                  return self.eof(e)
                  ^^^^^^^^^^^


                  self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
                  err = EOF('End Of File (EOF). Exception style platform.')

                  def eof(self, err=None):
                  spawn = self.spawn
                  spawn.before = spawn._before.getvalue()
                  spawn._buffer = spawn.buffer_type()
                  spawn._before = spawn.buffer_type()
                  spawn.after = EOF
                  index = self.searcher.eof_index
                  if index >= 0:
                  spawn.match = EOF
                  spawn.match_index = index
                  return index
                  else:
                  spawn.match = None
                  spawn.match_index = None
                  msg = str(spawn)
                  msg += '\nsearcher: %s' % self.searcher
                  if err is not None:
                  msg = str(err) + '\n' + msg
                  exc = EOF(msg)
                  exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
                  
                   raise exc
                  

                  E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
                  E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
                  E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
                  E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
                  E buffer (last 100 chars): b''
                  E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
                  E after: <class 'pexpect.exceptions.EOF'>
                  E match: None
                  E match_index: None
                  E exitstatus: None
                  E flag_eof: True
                  E pid: 67734
                  E child_fd: 13
                  E closed: False
                  E timeout: 30
                  E delimiter: <class 'pexpect.exceptions.EOF'>
                  E logfile: None
                  E logfile_read: None
                  E logfile_send: None
                  E maxread: 2000
                  E ignorecase: False
                  E searchwindowsize: None
                  E delaybeforesend: 0.05
                  E delayafterclose: 0.1
                  E delayafterterminate: 0.1
                  E searcher: searcher_string:
                  E 0: b'Choice: [continue]:'

                  .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
                  ============================= slowest 20 durations =============================
                  8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                  0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                  (1 durations < 0.005s hidden. Use -vv to show these durations.)
                  =========================== short test summary info ============================
                  FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                  ============================== 1 failed in 9.01s ===============================
                  snip teardown

                  Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
                  A change in buildstream?

                  Activity

                  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

                    bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

                    Type

                    No type

                    Projects

                    No projects

                      Relationships

                      None yet

                      Development

                      No branches or pull requests

                      Issue actions

                      , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                      Skip to content

                      tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

                      Description

                      @nathanwilliams-ct

                      See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

                      TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
                      Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

                      Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

                      Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
                      $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
                      snip setup
                      ===================================================================================== test session starts ======================================================================================
                      platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                      cachedir: .tox/py314/.pytest_cache
                      rootdir: /var/home/nathanwilliams/buildstream
                      configfile: setup.cfg
                      plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                      timeout: 1800.0s
                      timeout method: signal
                      timeout func_only: False
                      collected 1 item

                      tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

                      ===================================================================================== slowest 20 durations =====================================================================================
                      9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                      0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                      (1 durations < 0.005s hidden. Use -vv to show these durations.)
                      ====================================================================================== 1 passed in 9.18s =======================================================================================
                      snip teardown
                      compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

                      Interesting. Did you try it without the console? (e.g. tox ... | cat)

                      Dead:
                      $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
                      snip setup
                      ============================= test session starts ==============================
                      platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                      cachedir: .tox/py314/.pytest_cache
                      rootdir: /var/home/nathanwilliams/buildstream
                      configfile: setup.cfg
                      plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                      timeout: 1800.0s
                      timeout method: signal
                      timeout func_only: False
                      collecting ... collected 1 item

                      tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

                      =================================== FAILURES ===================================
                      _____________ test_failed_build_log[interactive/failed-build.bst] ______________

                      element_name = 'interactive/failed-build.bst'
                      build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

                      @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
                      @pytest.mark.datafiles(DATA_DIR)
                      @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
                      def test_failed_build_log(element_name, build_session):
                      build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
                      build_session.sendline("log")
                      # Send a few carriage returns to get to the end of the pager
                      build_session.sendline(os.linesep * 20)
                      # Assert that we got something from the logs
                      build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
                      # Quit the pager
                      build_session.send("q")
                      # Quit the session
                      
                       build_session.expect_exact("Choice: [continue]:")
                      

                      tests/integration/interactive_build.py:108:


                      .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
                      return exp.expect_loop(timeout)
                      ^^^^^^^^^^^^^^^^^^^^^^^^
                      .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
                      return self.eof(e)
                      ^^^^^^^^^^^


                      self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
                      err = EOF('End Of File (EOF). Exception style platform.')

                      def eof(self, err=None):
                      spawn = self.spawn
                      spawn.before = spawn._before.getvalue()
                      spawn._buffer = spawn.buffer_type()
                      spawn._before = spawn.buffer_type()
                      spawn.after = EOF
                      index = self.searcher.eof_index
                      if index >= 0:
                      spawn.match = EOF
                      spawn.match_index = index
                      return index
                      else:
                      spawn.match = None
                      spawn.match_index = None
                      msg = str(spawn)
                      msg += '\nsearcher: %s' % self.searcher
                      if err is not None:
                      msg = str(err) + '\n' + msg
                      exc = EOF(msg)
                      exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
                      
                       raise exc
                      

                      E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
                      E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
                      E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
                      E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
                      E buffer (last 100 chars): b''
                      E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
                      E after: <class 'pexpect.exceptions.EOF'>
                      E match: None
                      E match_index: None
                      E exitstatus: None
                      E flag_eof: True
                      E pid: 67734
                      E child_fd: 13
                      E closed: False
                      E timeout: 30
                      E delimiter: <class 'pexpect.exceptions.EOF'>
                      E logfile: None
                      E logfile_read: None
                      E logfile_send: None
                      E maxread: 2000
                      E ignorecase: False
                      E searchwindowsize: None
                      E delaybeforesend: 0.05
                      E delayafterclose: 0.1
                      E delayafterterminate: 0.1
                      E searcher: searcher_string:
                      E 0: b'Choice: [continue]:'

                      .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
                      ============================= slowest 20 durations =============================
                      8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                      0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                      (1 durations < 0.005s hidden. Use -vv to show these durations.)
                      =========================== short test summary info ============================
                      FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                      ============================== 1 failed in 9.01s ===============================
                      snip teardown

                      Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
                      A change in buildstream?

                      Activity

                      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

                        bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

                        Type

                        No type

                        Projects

                        No projects

                          Relationships

                          None yet

                          Development

                          No branches or pull requests

                          Issue actions

                          , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
                          Skip to content

                          tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

                          Description

                          @nathanwilliams-ct

                          See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

                          TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
                          Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

                          Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

                          Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
                          $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
                          snip setup
                          ===================================================================================== test session starts ======================================================================================
                          platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                          cachedir: .tox/py314/.pytest_cache
                          rootdir: /var/home/nathanwilliams/buildstream
                          configfile: setup.cfg
                          plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                          timeout: 1800.0s
                          timeout method: signal
                          timeout func_only: False
                          collected 1 item

                          tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

                          ===================================================================================== slowest 20 durations =====================================================================================
                          9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                          0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                          (1 durations < 0.005s hidden. Use -vv to show these durations.)
                          ====================================================================================== 1 passed in 9.18s =======================================================================================
                          snip teardown
                          compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

                          Interesting. Did you try it without the console? (e.g. tox ... | cat)

                          Dead:
                          $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
                          snip setup
                          ============================= test session starts ==============================
                          platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                          cachedir: .tox/py314/.pytest_cache
                          rootdir: /var/home/nathanwilliams/buildstream
                          configfile: setup.cfg
                          plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                          timeout: 1800.0s
                          timeout method: signal
                          timeout func_only: False
                          collecting ... collected 1 item

                          tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

                          =================================== FAILURES ===================================
                          _____________ test_failed_build_log[interactive/failed-build.bst] ______________

                          element_name = 'interactive/failed-build.bst'
                          build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

                          @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
                          @pytest.mark.datafiles(DATA_DIR)
                          @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
                          def test_failed_build_log(element_name, build_session):
                          build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
                          build_session.sendline("log")
                          # Send a few carriage returns to get to the end of the pager
                          build_session.sendline(os.linesep * 20)
                          # Assert that we got something from the logs
                          build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
                          # Quit the pager
                          build_session.send("q")
                          # Quit the session
                          
                           build_session.expect_exact("Choice: [continue]:")
                          

                          tests/integration/interactive_build.py:108:


                          .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
                          return exp.expect_loop(timeout)
                          ^^^^^^^^^^^^^^^^^^^^^^^^
                          .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
                          return self.eof(e)
                          ^^^^^^^^^^^


                          self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
                          err = EOF('End Of File (EOF). Exception style platform.')

                          def eof(self, err=None):
                          spawn = self.spawn
                          spawn.before = spawn._before.getvalue()
                          spawn._buffer = spawn.buffer_type()
                          spawn._before = spawn.buffer_type()
                          spawn.after = EOF
                          index = self.searcher.eof_index
                          if index >= 0:
                          spawn.match = EOF
                          spawn.match_index = index
                          return index
                          else:
                          spawn.match = None
                          spawn.match_index = None
                          msg = str(spawn)
                          msg += '\nsearcher: %s' % self.searcher
                          if err is not None:
                          msg = str(err) + '\n' + msg
                          exc = EOF(msg)
                          exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
                          
                           raise exc
                          

                          E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
                          E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
                          E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
                          E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
                          E buffer (last 100 chars): b''
                          E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
                          E after: <class 'pexpect.exceptions.EOF'>
                          E match: None
                          E match_index: None
                          E exitstatus: None
                          E flag_eof: True
                          E pid: 67734
                          E child_fd: 13
                          E closed: False
                          E timeout: 30
                          E delimiter: <class 'pexpect.exceptions.EOF'>
                          E logfile: None
                          E logfile_read: None
                          E logfile_send: None
                          E maxread: 2000
                          E ignorecase: False
                          E searchwindowsize: None
                          E delaybeforesend: 0.05
                          E delayafterclose: 0.1
                          E delayafterterminate: 0.1
                          E searcher: searcher_string:
                          E 0: b'Choice: [continue]:'

                          .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
                          ============================= slowest 20 durations =============================
                          8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                          0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                          (1 durations < 0.005s hidden. Use -vv to show these durations.)
                          =========================== short test summary info ============================
                          FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                          ============================== 1 failed in 9.01s ===============================
                          snip teardown

                          Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
                          A change in buildstream?

                          Activity

                          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

                            bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

                            Type

                            No type

                            Projects

                            No projects

                              Relationships

                              None yet

                              Development

                              No branches or pull requests

                              Issue actions

                              , 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
                              Skip to content

                              tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] fails in non interactive mode #2180

                              Description

                              @nathanwilliams-ct

                              See: https://gitlab.com/BuildStream/buildstream-docker-images/-/merge_requests/238#note_3715370970

                              TLDR from matrix: CI failing because the latest fedora 43 container had python 3.14.2, and now it's 3.14.7, and buildstream doesn't work with 3.14.7?
                              Looks like !240 (merged) is potential fix, to later fix Buildstream compatibility with 3.14.7

                              Which means this MR is blocked until !240 (merged) or other MR fixes the CI job.

                              Interesting running the test locally against Buildstream master, we don't hit the same failure with python 3.14.7
                              $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration
                              snip setup
                              ===================================================================================== test session starts ======================================================================================
                              platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                              cachedir: .tox/py314/.pytest_cache
                              rootdir: /var/home/nathanwilliams/buildstream
                              configfile: setup.cfg
                              plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                              timeout: 1800.0s
                              timeout method: signal
                              timeout func_only: False
                              collected 1 item

                              tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] PASSED [100%]

                              ===================================================================================== slowest 20 durations =====================================================================================
                              9.05s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                              0.08s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                              (1 durations < 0.005s hidden. Use -vv to show these durations.)
                              ====================================================================================== 1 passed in 9.18s =======================================================================================
                              snip teardown
                              compared to: https://gitlab.com/BuildStream/buildstream-docker-images/-/jobs/16010720616#L3798

                              Interesting. Did you try it without the console? (e.g. tox ... | cat)

                              Dead:
                              $ uvx --python 3.14.7 tox -e py314 run -- tests/integration/interactive_build.py::test_failed_build_log --no-cov --integration | cat
                              snip setup
                              ============================= test session starts ==============================
                              platform linux -- Python 3.14.7, pytest-9.0.3, pluggy-1.6.0 -- /var/home/nathanwilliams/buildstream/.tox/py314/bin/python
                              cachedir: .tox/py314/.pytest_cache
                              rootdir: /var/home/nathanwilliams/buildstream
                              configfile: setup.cfg
                              plugins: xdist-3.8.0, timeout-2.4.0, env-1.6.0, datafiles-3.0.1, cov-7.1.0
                              timeout: 1800.0s
                              timeout method: signal
                              timeout func_only: False
                              collecting ... collected 1 item

                              tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst] FAILED [100%]

                              =================================== FAILURES ===================================
                              _____________ test_failed_build_log[interactive/failed-build.bst] ______________

                              element_name = 'interactive/failed-build.bst'
                              build_session = <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>

                              @pytest.mark.skipif(not HAVE_SANDBOX, reason="Only available with a functioning sandbox")
                              @pytest.mark.datafiles(DATA_DIR)
                              @pytest.mark.parametrize("element_name", ["interactive/failed-build.bst"])
                              def test_failed_build_log(element_name, build_session):
                              build_session.expect_exact("Choice: [continue]:", timeout=PEXPECT_TIMEOUT_LONG)
                              build_session.sendline("log")
                              # Send a few carriage returns to get to the end of the pager
                              build_session.sendline(os.linesep * 20)
                              # Assert that we got something from the logs
                              build_session.expect("FAILURE interactive/failed-build.bst: Running (build-)?commands")
                              # Quit the pager
                              build_session.send("q")
                              # Quit the session
                              
                               build_session.expect_exact("Choice: [continue]:")
                              

                              tests/integration/interactive_build.py:108:


                              .tox/py314/lib/python3.14/site-packages/pexpect/spawnbase.py:432: in expect_exact
                              return exp.expect_loop(timeout)
                              ^^^^^^^^^^^^^^^^^^^^^^^^
                              .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:179: in expect_loop
                              return self.eof(e)
                              ^^^^^^^^^^^


                              self = <pexpect.expect.Expecter object at 0x7fcd1cb8ca50>
                              err = EOF('End Of File (EOF). Exception style platform.')

                              def eof(self, err=None):
                              spawn = self.spawn
                              spawn.before = spawn._before.getvalue()
                              spawn._buffer = spawn.buffer_type()
                              spawn._before = spawn.buffer_type()
                              spawn.after = EOF
                              index = self.searcher.eof_index
                              if index >= 0:
                              spawn.match = EOF
                              spawn.match_index = index
                              return index
                              else:
                              spawn.match = None
                              spawn.match_index = None
                              msg = str(spawn)
                              msg += '\nsearcher: %s' % self.searcher
                              if err is not None:
                              msg = str(err) + '\n' + msg
                              exc = EOF(msg)
                              exc.__cause__ = None # in Python 3.x we can use "raise exc from None"
                              
                               raise exc
                              

                              E pexpect.exceptions.EOF: End Of File (EOF). Exception style platform.
                              E <pexpect.pty_spawn.spawn object at 0x7fcd1ccef8c0>
                              E command: /var/home/nathanwilliams/buildstream/.tox/py314/bin/bst
                              E args: ['/var/home/nathanwilliams/buildstream/.tox/py314/bin/bst', '--directory', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0', '--config', '/var/home/nathanwilliams/buildstream/.tox/py314/tmp/test_failed_build_log_interact0/buildstream.conf', '--no-colors', 'build', 'interactive/failed-build.bst']
                              E buffer (last 100 chars): b''
                              E before (last 100 chars): b' Queue: processed 3, skipped 0, failed 0 \r\n Build Queue: processed 2, skipped 0, failed 1 \r\n\r\n\r\nq'
                              E after: <class 'pexpect.exceptions.EOF'>
                              E match: None
                              E match_index: None
                              E exitstatus: None
                              E flag_eof: True
                              E pid: 67734
                              E child_fd: 13
                              E closed: False
                              E timeout: 30
                              E delimiter: <class 'pexpect.exceptions.EOF'>
                              E logfile: None
                              E logfile_read: None
                              E logfile_send: None
                              E maxread: 2000
                              E ignorecase: False
                              E searchwindowsize: None
                              E delaybeforesend: 0.05
                              E delayafterclose: 0.1
                              E delayafterterminate: 0.1
                              E searcher: searcher_string:
                              E 0: b'Choice: [continue]:'

                              .tox/py314/lib/python3.14/site-packages/pexpect/expect.py:122: EOF
                              ============================= slowest 20 durations =============================
                              8.79s call tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                              0.09s setup tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]

                              (1 durations < 0.005s hidden. Use -vv to show these durations.)
                              =========================== short test summary info ============================
                              FAILED tests/integration/interactive_build.py::test_failed_build_log[interactive/failed-build.bst]
                              ============================== 1 failed in 9.01s ===============================
                              snip teardown

                              Fails same way in 3.14.6, 3.14.5, 3.14.4, 3.14.3 and 3.14.2
                              A change in buildstream?

                              Activity

                              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

                                bugSomething isn't workingtestsAn issue with our tests, or plugin testing APIs

                                Type

                                No type

                                Projects

                                No projects

                                  Relationships

                                  None yet

                                  Development

                                  No branches or pull requests

                                  Issue actions