diff options
author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2024-05-22 21:47:25 +0200 |
---|---|---|
committer | Thijs Schreijer <thijs@thijsschreijer.nl> | 2024-05-22 21:47:25 +0200 |
commit | 34e1632092d1a9695b539d0244ce948194ed76c9 (patch) | |
tree | b0569e3c2cf051069e385cbfa8f8e31e6b6fa712 | |
parent | 2746189f0a504d5929f8aa69edcc116dbbeff105 (diff) | |
download | luasystem-34e1632092d1a9695b539d0244ce948194ed76c9.tar.gz luasystem-34e1632092d1a9695b539d0244ce948194ed76c9.tar.bz2 luasystem-34e1632092d1a9695b539d0244ce948194ed76c9.zip |
add tests for get/setnonblock
-rw-r--r-- | spec/04-term_spec.lua | 46 |
1 files changed, 42 insertions, 4 deletions
diff --git a/spec/04-term_spec.lua b/spec/04-term_spec.lua index eb975b5..c649579 100644 --- a/spec/04-term_spec.lua +++ b/spec/04-term_spec.lua | |||
@@ -306,18 +306,56 @@ describe("Terminal:", function() | |||
306 | 306 | ||
307 | 307 | ||
308 | 308 | ||
309 | pending("getnonblock()", function() | 309 | describe("getnonblock()", function() |
310 | 310 | ||
311 | pending("sets the consoleflags, if called with flags", function() | 311 | nix_it("gets the non-blocking flag", function() |
312 | local nb, err = system.getnonblock(io.stdin) | ||
313 | assert.is_nil(err) | ||
314 | assert.is_boolean(nb) | ||
315 | end) | ||
316 | |||
317 | win_it("gets the non-blocking flag, always false", function() | ||
318 | local nb, err = system.getnonblock(io.stdin) | ||
319 | assert.is_nil(err) | ||
320 | assert.is_false(nb) | ||
312 | end) | 321 | end) |
313 | 322 | ||
314 | end) | 323 | end) |
315 | 324 | ||
316 | 325 | ||
317 | 326 | ||
318 | pending("setnonblock()", function() | 327 | describe("setnonblock()", function() |
319 | 328 | ||
320 | pending("sets the consoleflags, if called with flags", function() | 329 | nix_it("sets the non-blocking flag", function() |
330 | local old_nb = system.getnonblock(io.stdin) | ||
331 | assert.is.boolean(old_nb) | ||
332 | |||
333 | finally(function() | ||
334 | system.setnonblock(io.stdin, old_nb) -- ensure we restore the original one | ||
335 | end) | ||
336 | |||
337 | local new_nb = not old_nb | ||
338 | |||
339 | local success, err = system.setnonblock(io.stdin, new_nb) | ||
340 | assert.is_nil(err) | ||
341 | assert.is_true(success) | ||
342 | |||
343 | local updated_nb = assert(system.getnonblock(io.stdin)) | ||
344 | assert.equals(new_nb, updated_nb) | ||
345 | end) | ||
346 | |||
347 | |||
348 | win_it("sets the non-blocking flag, always succeeds", function() | ||
349 | local success, err = system.setnonblock(io.stdin, true) | ||
350 | assert.is_nil(err) | ||
351 | assert.is_true(success) | ||
352 | end) | ||
353 | |||
354 | |||
355 | it("returns an error if called with an invalid argument", function() | ||
356 | assert.has.error(function() | ||
357 | system.setnonblock("invalid") | ||
358 | end, "bad argument #1 to 'setnonblock' (FILE* expected, got string)") | ||
321 | end) | 359 | end) |
322 | 360 | ||
323 | end) | 361 | end) |