Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test: Pty host process and persistent local terminals #117265

Closed
3 tasks done
meganrogge opened this issue Feb 22, 2021 · 0 comments
Closed
3 tasks done

Test: Pty host process and persistent local terminals #117265

meganrogge opened this issue Feb 22, 2021 · 0 comments

Comments

@meganrogge
Copy link
Contributor

meganrogge commented Feb 22, 2021

Refs #20013, #74620, #116464, #116948

Complexity: 5

Authors: @Tyriar, @meganrogge

Create Issue


A large amount of changes have happened to the terminal this iteration, here's the high level summary:

  • Terminal processes moved from under the renderer process to under a "pty host" process on the shared process
  • The pty host process is monitored and will restart itself if it dies, its responsiveness is also monitored and the user is presented with a dialog to restart the pty host if detected
  • Terminals will reconnect when restarting a local window, restoring the tabs and their buffers

Core test case:

Open a VS Code window and create tabs of split terminals. Reload the window.

The following should persist:

  • Active tab
  • For each tab, the active instance
  • The relative widths (horizontal) or heights (vertical) of the terminals in a tab
  • The buffer/process data

Please also try the following:

  • Hide the panel then reload:
    • using the command / keybinding
    • by dragging it
  • Re-orient the terminal panel to be vertical instead of horizontal
  • Open 2 windows
    • Open a terminal in each
    • Close one of the windows, the terminals in the other window should remain functional
    • Do the same for windows with and without open folders
  • Terminals are reconnected per workspace. If you open folderA and open some terminals, then open folderB in the same window, you should not reconnect to those folderA terminals. When you open folderA again, then you get those terminals and not folderB terminals. Same logic with a window with no folder open.
  • To test flow control, make sure the setting is on (default), then run programs in the terminal that produce a lot of data, for example:
    yes
    while true; do echo test; done
    base64 /dev/urandom
    tree
    ls -lR ~
    
    Confirm that Ctrl+C works and is responsive
  • Kill a terminal process and see if it's handled well
  • Kill the pty host and see if it's handled well, try this 6 times to make sure we eventually stop restarting the pty host
  • Make the pty host unresponsive if you're testing Windows by doing this repro and make sure it's handled well
  • Make sure restoring still works on remote terminals (not much should have changed here, so mainly just sanity check it with the core test case)
  • Anything else you can think of to break things
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants