diff options
author | Damien George <damien@micropython.org> | 2023-08-01 22:54:52 +1000 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2023-08-07 12:37:48 +1000 |
commit | 6b78a1bf00b4d95b018e64f84bc1f5a36502940e (patch) | |
tree | e40ac02870824bade31b979b3eb0efc46b831902 /tests/extmod/select_poll_fd.py | |
parent | 3f417e894309ee769b80aea85e9a45a826482c64 (diff) | |
download | micropython-6b78a1bf00b4d95b018e64f84bc1f5a36502940e.tar.gz micropython-6b78a1bf00b4d95b018e64f84bc1f5a36502940e.zip |
tests/extmod: Add coverage tests for select module.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/extmod/select_poll_fd.py')
-rw-r--r-- | tests/extmod/select_poll_fd.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/extmod/select_poll_fd.py b/tests/extmod/select_poll_fd.py new file mode 100644 index 0000000000..fab9c0e0e9 --- /dev/null +++ b/tests/extmod/select_poll_fd.py @@ -0,0 +1,44 @@ +# Test select.poll in combination with file descriptors. + +try: + import select, errno + + select.poll # Raises AttributeError for CPython implementations without poll() +except (ImportError, AttributeError): + print("SKIP") + raise SystemExit + +# Check that poll supports registering file descriptors (integers). +try: + select.poll().register(0) +except OSError: + print("SKIP") + raise SystemExit + +# Register invalid file descriptor. +try: + select.poll().register(-1) +except ValueError: + print("ValueError") + +# Test polling stdout, it should be writable. +poller = select.poll() +poller.register(1) +poller.modify(1, select.POLLOUT) +print(poller.poll()) + +# Unregister then re-register. +poller.unregister(1) +poller.register(1, select.POLLIN) + +# Poll for input, should return an empty list. +print(poller.poll(0)) + +# Test registering a very large number of file descriptors. +poller = select.poll() +for fd in range(6000): + poller.register(fd) +try: + poller.poll() +except OSError as er: + print(er.errno == errno.EINVAL) |