apainintheneck / crystal-linenoise

Crystal bindings for the Linenoise library
https://apainintheneck.github.io/crystal-linenoise/
MIT License
0 stars 0 forks source link

Find an alternative to `expect` that supports UTF-8 and runs on CI #28

Open apainintheneck opened 4 months ago

apainintheneck commented 4 months ago

expect seemed like a good enough way to test that Linenoise completions were working correctly but I ran into two problems with it. First, I couldn't get it working on CI so I had to just make sure to run it locally. That was inconvenient but not that big of a deal. Second, I just found out that the default expect on macOS doesn't support UTF-8 characters by default which means that I can't automatically test new PRs like https://github.com/apainintheneck/crystal-linenoise/pull/27.

Ideally, there'd be a library in Crystal to do this but I'm not aware of any of them. Likely, I'll have to use something written in another language or maybe port something to Crystal. There are definitely a bunch of options out there.

apainintheneck commented 4 months ago

Here are some alternatives by language:

None of them provide the exact same interface as expect so the tests themselves will have to be updated anyway. The shell ones are most attractive though I'd have to see how they build on CI. The Python one could maybe work for the same reason. I wonder how hard it would be to port one of the lang-specific libraries to Crystal to get this working.