commit: 4918cc1a5e4458a8f3831a6c0e0900ee72e73932
Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 13 16:33:08 2025 +0000
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Sat Dec 13 16:33:08 2025 +0000
URL: https://gitweb.gentoo.org/proj/steve.git/commit/?id=4918cc1a
Add writing tests
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>
test/test_steve.py | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/test/test_steve.py b/test/test_steve.py
index 585c534..3ca81d0 100644
--- a/test/test_steve.py
+++ b/test/test_steve.py
@@ -1,6 +1,9 @@
+import errno
import multiprocessing
import os
+import pytest
+
def test_basic(steve):
steve.start(["-j", "5"])
@@ -24,6 +27,40 @@ def test_too_many(steve):
non_blocking_read_test(steve.dev_path)
+def test_read_write_read(steve):
+ steve.start(["-j", "5"])
+ with steve.dev_path.open("r+b") as f:
+ os.set_blocking(f.fileno(), False)
+ tokens = f.read(6)
+ assert len(tokens) == 5
+ f.write(tokens[:2])
+ tokens = tokens[2:] + f.read(6)
+ assert len(tokens) == 5
+ f.write(tokens)
+
+
+def test_write_one_extra(steve):
+ steve.start(["-j", "5"])
+ with steve.dev_path.open("r+b") as f:
+ # writing one is fine
+ f.write(b"+")
+ os.set_blocking(f.fileno(), False)
+ tokens = f.read(7)
+ assert len(tokens) == 6
+ f.write(tokens[1:])
+
+
+def test_write_too_many(steve):
+ steve.start(["-j", "5"])
+ with steve.dev_path.open("r+b") as f:
+ tokens = f.read(5)
+ assert len(tokens) == 5
+ os.write(f.fileno(), tokens)
+ with pytest.raises(OSError) as err:
+ os.write(f.fileno(), b"12")
+ assert err.value.errno == errno.ENOSPC
+
+
def test_per_process_limit(steve):
steve.start(["-j", "12", "-p", "5"])
with steve.dev_path.open("r+b") as f: