summaryrefslogtreecommitdiffstatshomepage
path: root/tests/extmod/select_poll_custom.py
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2023-08-14 13:45:53 +1000
committerDamien George <damien@micropython.org>2023-08-14 18:48:47 +1000
commitf6af48416d6423016fd4395fd3260ba66f56cf56 (patch)
tree9aad94bece9802b693997640e586da097ce9698f /tests/extmod/select_poll_custom.py
parent24a6e951ec7696b8d18d95fe5da36f7e489913d0 (diff)
downloadmicropython-f6af48416d6423016fd4395fd3260ba66f56cf56.tar.gz
micropython-f6af48416d6423016fd4395fd3260ba66f56cf56.zip
extmod/modselect: Properly track number of poll objects that are fd's.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'tests/extmod/select_poll_custom.py')
-rw-r--r--tests/extmod/select_poll_custom.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/tests/extmod/select_poll_custom.py b/tests/extmod/select_poll_custom.py
index 0cbb610327..b854a8a14d 100644
--- a/tests/extmod/select_poll_custom.py
+++ b/tests/extmod/select_poll_custom.py
@@ -77,7 +77,26 @@ try:
except OSError as er:
print("OSError", er.errno)
+# Register then unregister a socket (a native stream), then test
+# that the Python object is still pollable.
+s2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+x.poll_state = _MP_STREAM_POLL_RD
+poller.register(s2)
+poller.unregister(s2)
+print_poll_output(poller.poll())
+
+# Test registering and unregistering multiple times.
+for _ in range(2):
+ poller.unregister(s)
+ poller.unregister(x)
+ poller.register(s2)
+ poller.register(s, select.POLLIN)
+ poller.register(x, select.POLLIN)
+ poller.unregister(s2)
+ print_poll_output(poller.poll())
+
+# Clean up.
poller.unregister(x)
poller.unregister(s)
-
+s2.close()
s.close()