<div dir="ltr"><div><div>The nodes under /dev/pts/ are allocated on demand, so there isn't a fixed pts/number. When a process opens /dev/ptmx (controlling end), a /dev/pts/<num> node would be allocated. Another process can then open the pts end and communicate with the controlling end.</div><div></div></div><div><br></div><div>What my test is doing is to just open a tty-esque device and try to talk to it.<br></div><div>It could be an actual serial port like /dev/ttyUSB0 or pseudo tty such as /dev/pts/<num>. For the test purpose, it doesn't really matter what it is, as long as it is a character device that behaves like a tty.</div><div><br></div><div>If you are asking about a regression test, I think something like this is enough to reproduce what I'm seeing: (the pty,link= option tells socat to make a symlink that points to the dynamically allocated pts, this gives the pts node a somewhat predictable name)</div><div>* (shell 1) socat - pty,link=/tmp/a</div><div>* (shell 2) toybox nc -f /tmp/a</div><div>* Now anything typed in (shell 1) would also appear in (shell 2) and vice versa.</div><div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, May 16, 2024 at 2:41 AM Rob Landley <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 5/11/24 02:11, Yi-Yo Chiang wrote:<br>
> On Sat, May 11, 2024 at 1:30 AM Rob Landley <<a href="mailto:rob@landley.net" target="_blank">rob@landley.net</a><br>
> <mailto:<a href="mailto:rob@landley.net" target="_blank">rob@landley.net</a>>> wrote:<br>
> <br>
>     What's your use case triggering this patch? Because without that, I go off on<br>
>     various design tangents, as seen below:<br>
> <br>
> I just wanted some tool to communicate with a pty or socket node on android.<br>
> Wanted a program to be able to send/recv towards a duplex data stream. (more<br>
> precisely I want a command that does exactly what pollinate() does)<br>
> Since socat nor minicom is available on Android, I'm just using `stty raw -echo<br>
> && nc -f` to "talk" to my pty.<br>
> <br>
> Why didn't I use <> redirector? Because I wasn't aware of that feature before<br>
> reading this mail...<br>
> Let me fiddle with it a bit:<br>
> <br>
> cat <>/dev/pts/0<br>
>> Shows the pts output, but my input doesn't get passed back<br>
<br>
Sorry for sitting on this, my confusion here is I don't know what /dev/pts/0<br>
means in your test, and the pts man page isn't illuminating. It doesn't seem to<br>
be special, it just seems to be the first one allocated? (So who allocated it on<br>
android?)<br>
<br>
According to "tty" in a random command line tab that one's using /dev/pts/17,<br>
and ps ax | grep pts/0 says it's PID 14597 a random bash instance, so I don't<br>
think the test lines up on a debian+xfce laptop.<br>
<br>
What is your test trying to _do_? (What process are you talking to?)<br>
<br>
> yeah like you said it should had fall through and be like -l. <br>
> However digging the git history the fall through line got removed<br>
> here <a href="https://github.com/landley/toybox/commit/67bf48c1cb3ed55249c27e6f02f5c938b20e027d" rel="noreferrer" target="_blank">https://github.com/landley/toybox/commit/67bf48c1cb3ed55249c27e6f02f5c938b20e027d</a><br>
> which is unintentional I think?<br>
<br>
Yeah, lack of automated regression testing for this, which is why I want to<br>
understand and fix the test...<br>
<br>
Rob<br>
</blockquote></div></div>