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

vttest #361

Closed
ghost opened this issue Apr 24, 2021 · 6 comments
Closed

vttest #361

ghost opened this issue Apr 24, 2021 · 6 comments
Labels
compatibility Issues with VT/terminal compatibility

Comments

@ghost
Copy link

ghost commented Apr 24, 2021

If you haven't run across vttest yet, just wanted to point it out. Feel free to close this issue if it is not a project priority.

If you do want to dig in, some notes:

  1. Tests 1, 2, 3.8 (VT100 character sets), 6, and 8 need to be passed before you have full coverage of nearly all terminfo-based applications. For these you will need the rightmost margin VT100 line wrap behavior, and remember that cursor position commands reset that flag.
  2. Double-width / double-height (test 4), and VT52 (test 7) can wait. No one uses them AFAIK.
  3. VAX / VMS systems rely on the default "no argument" forms of the sequences, e.g. things like "ESC [12;h". EVERY sequence has a default argument that needs to be handled.
  4. Scrolling regions need to be honored/ignored as per the VT100 specification.
  5. Control characters must be handled separately from the rest of your parser.

There is one spot where a vttest-compliant terminal conflicts with modern convention: SGR 38/48 (RGB colors, T.416 / ISO 8613-3). If you chose to go with vttest compliance then it leads to ugly blinking sequences; modern users will prefer the RGB support instead.

@a-kenji
Copy link
Contributor

a-kenji commented Apr 24, 2021

Thank you very much, this is incredibly helpful!

@a-kenji a-kenji added the compatibility Issues with VT/terminal compatibility label Apr 24, 2021
@qballer
Copy link
Member

qballer commented Apr 24, 2021

We actually played around with vttest we have noticed also that a few terminal emulators don't pass them so we didn't pursue this, thought it can bring a lot of value

@SaintFenix
Copy link
Contributor

#408 shows that the current builds have reached support for vttest 1

@imsnif has there been discussion for passing more of the tests? or has that been moved on from?

@imsnif
Copy link
Member

imsnif commented Apr 30, 2021

Thanks for the poke @SaintFenix ! I've been meaning to reply to this issue and just forgot. :)

@klamonte, thank you for this issue - it has been incredibly helpful. I previously played a little bit with vttest but was discouraged seeing as every terminal emulator I tried did not pass it in one way or another (alacritty, urxvt and even xterm). After you opened this issue though, I decided it might be valuable to pick it up again.

So my goal now is to try to get Zellij to behave the same way alacritty does in vttest. I already got it to pass test 1 here: #408 and plan to continue iterating through this. It has already proven helpful by solving one or two compatibility issues that were open in this repository.

I hope it's okay if I ask you some questions here if some behaviours down the line are unclear to me. I found that gleaning the right behaviour for certain events has been quite challenging at times :)

@ghost
Copy link
Author

ghost commented Apr 30, 2021

@imsnif No problem, would love to help! I don't check github extremely frequently but will aim to keep poking my head in more often.

xterm is generally expected to the be "always passing", but for things like reverse-on-bold-on-blink it behaves differently that DOS would have, so for my terminals I have gone with the DOS behavior, I just like it more. :) (BTW I really like where this project is going, and added a link to it.)

If you're looking for a good Windows-based terminal to compare to, mintty is great. Some others I test occasionally are here.

@imsnif
Copy link
Member

imsnif commented Apr 14, 2022

Zellij has cleared VTTest (at least as far as xterm itself does) a while ago, so closing this issue. Thanks for all the help!

@imsnif imsnif closed this as completed Apr 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compatibility Issues with VT/terminal compatibility
Projects
None yet
Development

No branches or pull requests

4 participants