aboutsummaryrefslogtreecommitdiff
path: root/test/functional/lua/ssh_spec.lua
Commit message (Collapse)AuthorAge
* fix(ssh): compare table length in the SSH config #41637Volodymyr Chernetskyi2026-09-03
| | | | | | | | | | | | | | | | | | Problem: `parse_ssh_config()` compares tables against a freshly allocated empty table. - In `parse_multiple_values()`, the guard which avoids flushing an empty accumulator never applies. Runs of separators and trailing whitespace push empty strings into the results, and `is_valid()` does not filter them. `Host alpha beta ` parses as `{ 'alpha', '', 'beta' }`. - In `parse_value()`, the condition reduces to `chr == '"' and quoted`. `quoted` starts false and only that branch sets it, so it can never become true: quotes are never recognised and are inserted literally, and the unterminated-quote check is unreachable. Solution: Compare `#val` instead. Add a test for repeated and trailing separators. AI-assisted
* test(harness): migrate away from magic globalsJustin M. Keyes2026-07-21
| | | | | | | | | | | | | | | | | | | | | Problem: The magic globals `it`, `describe`, etc., are more trouble than they are worth. - Hooking into `after_each` requires `getfenv()` hacks. - They confuse luals/emmylua, because the top-level `.luarc.json` isn't merged with `test/.luarc.json` (apparently a luals limitation?) - They totally defeat discoverability because the user just has to "know" about the various magic symbols. So they harm DX, which means they serve no purpose at all. Solution: - Expose the test API from `testutil`, so tests can call `t.it()`, `t.describe()`, etc., in the conventional way. - Drop `getfenv()` hacks. - Drop the `setfenv()` injection in `load_chunk`. - Drop `test/_meta.lua`.
* feat(ssh): SSH configuration parser #35027Siddhant Agarwal2025-08-17