This is an automated email from the git hooks/post-receive script.
teigland pushed a commit to branch rhel83
in repository sanlock.
commit 058ad1c7e4566696475241ea0897bbf799144d1c
Author: Benny Zlotnik <bzlotnik(a)redhat.com>
AuthorDate: Wed Dec 9 19:14:36 2020 +0200
python: improve lvb tests
- Remove null byte test, it is now tested in the basic test
- Add test for reading less than sector size
Testing storage with 4k sector size needs more work.
Signed-off-by: Benny Zlotnik <bzlotnik(a)redhat.com>
Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
---
tests/python_test.py | 64 ++++++++++++++++++----------------------------------
1 file changed, 22 insertions(+), 42 deletions(-)
diff --git a/tests/python_test.py b/tests/python_test.py
index 5e034a7..448b043 100644
--- a/tests/python_test.py
+++ b/tests/python_test.py
@@ -800,70 +800,50 @@ def test_acquire_path_length(no_sanlock_daemon):
def test_lvb(tmpdir, sanlock_daemon):
ls_path = str(tmpdir.join("ls_name"))
util.create_file(ls_path, MiB)
-
res_path = str(tmpdir.join("res_name"))
util.create_file(res_path, MiB)
-
sanlock.write_lockspace(b"ls_name", ls_path, offset=0, iotimeout=1)
sanlock.add_lockspace(b"ls_name", 1, ls_path, offset=0, iotimeout=1)
-
disks = [(res_path, 0)]
sanlock.write_resource(b"ls_name", b"res_name", disks)
fd = sanlock.register()
- sanlock.acquire(b"ls_name", b"res_name", disks, slkfd=fd, lvb=True)
- sanlock.set_lvb(b"ls_name", b"res_name", disks, b"{gen:0}")
+ lvb_data = b"first\0second"
+ lvb_sector = lvb_data.ljust(512, b"\0")
- result = sanlock.get_lvb(b"ls_name", b"res_name", disks)
+ sanlock.acquire(b"ls_name", b"res_name", disks, slkfd=fd, lvb=True)
+ sanlock.set_lvb(b"ls_name", b"res_name", disks, lvb_sector)
sanlock.release(b"ls_name", b"res_name", disks, slkfd=fd)
- assert result == b"{gen:0}"
+ # Test reading complete sector (typical usage).
+ sanlock.acquire(b"ls_name", b"res_name", disks, slkfd=fd, lvb=True)
+ result = sanlock.get_lvb(b"ls_name", b"res_name", disks, len(lvb_sector))
+ sanlock.release(b"ls_name", b"res_name", disks, slkfd=fd)
-def test_lvb_value_too_long(tmpdir, sanlock_daemon):
- ls_path = str(tmpdir.join("ls_name"))
- util.create_file(ls_path, MiB)
-
- res_path = str(tmpdir.join("res_name"))
- util.create_file(res_path, MiB)
-
- sanlock.write_lockspace(b"ls_name", ls_path, offset=0, iotimeout=1)
- sanlock.add_lockspace(b"ls_name", 1, ls_path, offset=0, iotimeout=1)
-
- disks = [(res_path, 0)]
- sanlock.write_resource(b"ls_name", b"res_name", disks)
+ assert result == lvb_sector
- fd = sanlock.register()
+ # Test reading less than sector size.
- long_val = b"a" * 513
sanlock.acquire(b"ls_name", b"res_name", disks, slkfd=fd, lvb=True)
- with raises_sanlock_errno(errno.E2BIG):
- sanlock.set_lvb(b"ls_name", b"res_name", disks, long_val)
-
+ result = sanlock.get_lvb(b"ls_name", b"res_name", disks, len(lvb_data))
sanlock.release(b"ls_name", b"res_name", disks, slkfd=fd)
+ assert result == lvb_data
-def test_lvb_null_bytes(tmpdir, sanlock_daemon):
- ls_path = str(tmpdir.join("ls_name"))
- util.create_file(ls_path, MiB)
-
- res_path = str(tmpdir.join("res_name"))
- util.create_file(res_path, MiB)
-
- sanlock.write_lockspace(b"ls_name", ls_path, offset=0, iotimeout=1)
- sanlock.add_lockspace(b"ls_name", 1, ls_path, offset=0, iotimeout=1)
+ # Test failure to write more then sector size.
- disks = [(res_path, 0)]
- sanlock.write_resource(b"ls_name", b"res_name", disks)
+ sanlock.acquire(b"ls_name", b"res_name", disks, slkfd=fd, lvb=True)
+ with raises_sanlock_errno(errno.E2BIG):
+ sanlock.set_lvb(b"ls_name", b"res_name", disks, lvb_sector + b"x")
- fd = sanlock.register()
- sanlock.acquire(b"ls_name", b"res_name", disks, slkfd=fd, lvb=True)
- sanlock.set_lvb(b"ls_name", b"res_name", disks, b"{ge\x00:0}")
+def test_lvb_invalid_value():
+ disks = [("/no/such/path", 0)]
- result = sanlock.get_lvb(b"ls_name", b"res_name", disks)
- sanlock.release(b"ls_name", b"res_name", disks, slkfd=fd)
+ with pytest.raises(ValueError):
+ sanlock.get_lvb(b"ls_name", b"res_name", disks, 0)
- # Check that the string we passed is terminated by the null-byte
- assert result == b"{ge"
+ with pytest.raises(ValueError):
+ sanlock.get_lvb(b"ls_name", b"res_name", disks, 4097)
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.