Closed Azure-stars closed 3 months ago
对于 echo 测例的支持分为 release 版本和 debug 版本两个部分:
release 版本:需要终端支持正常回显:
release
echo
./batch ./echo 127.0.0.1:8080
debug 版本:Futex返回参数判断:该错误在 RELEASE 版本的可执行文件不会出现,但是对于 DEBUG 版本的文件,会做更多的检查。此时 Futex 原先的调用检查不甚完善会导致报错。 可以通过 LTP 测例来进行检查。测试方式:echo的 debug版本不会在进入 socket 之前报错。
debug
Futex
对于 tinydb 需要支持STDIN输入多个字符、READ 系统调用规范化:原先的标准输入是为了支持 Busybox 存在,默认每一次读入只会返回一个字符。但是对于 Tokio 的 echo而言,每次读入返回需要判断是否为一个有效的请求,并且需要按照系统调用的格式返回有效的数据,否则 echo 会卡死在 READ 系统调用。 测试方式:./batch ./tinydb 127.0.0.1:8080可以正确完成输入并且发送请求
STDIN
./batch ./tinydb 127.0.0.1:8080
涉及pr:
对于 echo 测例的支持分为 release 版本和 debug 版本两个部分:
release
版本:需要终端支持正常回显:echo
测例,进行输入之后会将输入发送给对方,并且 recv 同一个字符输出到标准输出,但是Starry 目前是逐个输入立即返回,所以没有办法区分换行,体现为输入之后立即被输出覆盖。并且回车也没有正常换行。 测试方式:./batch ./echo 127.0.0.1:8080
,期望在打入一行输入按下回车之后可以在新的一行打出输出。debug
版本:Futex
返回参数判断:该错误在 RELEASE 版本的可执行文件不会出现,但是对于 DEBUG 版本的文件,会做更多的检查。此时 Futex 原先的调用检查不甚完善会导致报错。 可以通过 LTP 测例来进行检查。测试方式:echo
的debug
版本不会在进入 socket 之前报错。对于 tinydb 需要支持
STDIN
输入多个字符、READ 系统调用规范化:原先的标准输入是为了支持 Busybox 存在,默认每一次读入只会返回一个字符。但是对于 Tokio 的echo
而言,每次读入返回需要判断是否为一个有效的请求,并且需要按照系统调用的格式返回有效的数据,否则echo
会卡死在 READ 系统调用。 测试方式:./batch ./tinydb 127.0.0.1:8080
可以正确完成输入并且发送请求