From 051a99d494010e16a2e50f45719901dff92300eb Mon Sep 17 00:00:00 2001 From: Ramon Nou Date: Thu, 13 Mar 2025 15:26:06 +0100 Subject: [PATCH 1/2] update syscall tests to assert non-negative return values and remove skip markers from shell tests --- tests/integration/forwarding/test_map.py | 18 +++++++-------- .../operations/test_read_operations.py | 16 +++++++------- .../operations/test_unlink_operations.py | 4 ++-- .../operations/test_write_operations.py | 10 ++++----- .../rename/test_rename_operation.py | 22 +++++++++---------- tests/integration/shell/test_concat.py | 9 ++++++-- tests/integration/shell/test_cp.py | 2 +- tests/integration/shell/test_stat.py | 2 +- .../syscalls/test_error_operations.py | 20 ++++++++--------- tests/integration/syscalls/test_syscalls.py | 2 +- 10 files changed, 55 insertions(+), 50 deletions(-) diff --git a/tests/integration/forwarding/test_map.py b/tests/integration/forwarding/test_map.py index 6618be744..92eae8fa5 100644 --- a/tests/integration/forwarding/test_map.py +++ b/tests/integration/forwarding/test_map.py @@ -59,7 +59,7 @@ def test_two_io_nodes(gkfwd_daemon_factory, gkfwd_client_factory): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -72,7 +72,7 @@ def test_two_io_nodes(gkfwd_daemon_factory, gkfwd_client_factory): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = c00.read(file, len(buf)) @@ -88,7 +88,7 @@ def test_two_io_nodes(gkfwd_daemon_factory, gkfwd_client_factory): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -101,7 +101,7 @@ def test_two_io_nodes(gkfwd_daemon_factory, gkfwd_client_factory): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = c01.read(file, len(buf)) @@ -154,7 +154,7 @@ def test_two_io_nodes_remap(gkfwd_daemon_factory, gkfwd_client_factory): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -184,7 +184,7 @@ def test_two_io_nodes_remap(gkfwd_daemon_factory, gkfwd_client_factory): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file buf = b'24' @@ -218,7 +218,7 @@ def test_two_io_nodes_operations(gkfwd_daemon_factory, gkfwd_client_factory): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -231,7 +231,7 @@ def test_two_io_nodes_operations(gkfwd_daemon_factory, gkfwd_client_factory): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = c00.read(file, len(buf)) @@ -244,7 +244,7 @@ def test_two_io_nodes_operations(gkfwd_daemon_factory, gkfwd_client_factory): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = c01.read(file, len(buf)) diff --git a/tests/integration/operations/test_read_operations.py b/tests/integration/operations/test_read_operations.py index 40f1439b0..d3635465e 100644 --- a/tests/integration/operations/test_read_operations.py +++ b/tests/integration/operations/test_read_operations.py @@ -49,7 +49,7 @@ def test_read(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -62,7 +62,7 @@ def test_read(gkfs_daemon, gkfs_client): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = gkfs_client.read(file, len(buf)) @@ -79,7 +79,7 @@ def test_pread(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -92,7 +92,7 @@ def test_pread(gkfs_daemon, gkfs_client): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file at offset 1024 ret = gkfs_client.pread(file, len(buf), 1024) @@ -109,7 +109,7 @@ def test_readv(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf_0 = b'42' @@ -123,7 +123,7 @@ def test_readv(gkfs_daemon, gkfs_client): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = gkfs_client.readv(file, len(buf_0), len(buf_1)) @@ -141,7 +141,7 @@ def test_preadv(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf_0 = b'42' @@ -155,7 +155,7 @@ def test_preadv(gkfs_daemon, gkfs_client): os.O_RDONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # read the file ret = gkfs_client.preadv(file, len(buf_0), len(buf_1), 1024) diff --git a/tests/integration/operations/test_unlink_operations.py b/tests/integration/operations/test_unlink_operations.py index 874561243..22cff1bc4 100644 --- a/tests/integration/operations/test_unlink_operations.py +++ b/tests/integration/operations/test_unlink_operations.py @@ -60,7 +60,7 @@ def test_unlink(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -89,7 +89,7 @@ def test_unlink(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # > 4 chunks ret = gkfs_client.write_validate(file, 2097153) diff --git a/tests/integration/operations/test_write_operations.py b/tests/integration/operations/test_write_operations.py index a9693a4bc..42c62c28d 100644 --- a/tests/integration/operations/test_write_operations.py +++ b/tests/integration/operations/test_write_operations.py @@ -48,7 +48,7 @@ def test_write(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 buf = b'42' ret = gkfs_client.write(file, buf, len(buf)) @@ -61,7 +61,7 @@ def test_write(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY | os.O_APPEND, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 str1 = b'Hello' str2 = b', World!' @@ -93,7 +93,7 @@ def test_pwrite(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 buf = b'42' # write at the offset 1024 @@ -109,7 +109,7 @@ def test_writev(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 buf_0 = b'42' buf_1 = b'24' @@ -125,7 +125,7 @@ def test_pwritev(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 buf_0 = b'42' buf_1 = b'24' diff --git a/tests/integration/rename/test_rename_operation.py b/tests/integration/rename/test_rename_operation.py index 4c425f50d..c5b6f702a 100644 --- a/tests/integration/rename/test_rename_operation.py +++ b/tests/integration/rename/test_rename_operation.py @@ -49,7 +49,7 @@ def test_rename(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.access(file, os.R_OK) assert ret.retval == 0 @@ -85,7 +85,7 @@ def test_rename(gkfs_daemon, gkfs_client): # Read contents of file2 ret = gkfs_client.open(file2, os.O_RDONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.read(file2, len(buf)) assert ret.retval == len(buf) @@ -103,7 +103,7 @@ def test_rename_inverse(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 @@ -133,7 +133,7 @@ def test_rename_inverse(gkfs_daemon, gkfs_client): # Read contents of file2 ret = gkfs_client.open(file4, os.O_RDONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.read(file4, len(buf)) assert ret.retval == len(buf) @@ -154,7 +154,7 @@ def test_chain_rename(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -182,7 +182,7 @@ def test_chain_rename(gkfs_daemon, gkfs_client): # Read contents of file2 ret = gkfs_client.open(fileb, os.O_RDONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.read(fileb, len(buf)) assert ret.retval == len(buf) @@ -240,7 +240,7 @@ def test_cyclic_rename(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -275,7 +275,7 @@ def test_cyclic_rename(gkfs_daemon, gkfs_client): assert ret.retval == -1 # Read contents of filee ret = gkfs_client.open(fileold, os.O_RDONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.read(fileold, len(buf)) assert ret.retval == len(buf) @@ -292,7 +292,7 @@ def test_rename_plus_trunc(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -331,7 +331,7 @@ def test_rename_plus_lseek(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' @@ -363,7 +363,7 @@ def test_rename_delete(gkfs_daemon, gkfs_client): os.O_CREAT | os.O_WRONLY, stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) - assert ret.retval == 10000 + assert ret.retval != -1 # write a buffer we know buf = b'42' diff --git a/tests/integration/shell/test_concat.py b/tests/integration/shell/test_concat.py index f1b26b080..2a9d21f28 100644 --- a/tests/integration/shell/test_concat.py +++ b/tests/integration/shell/test_concat.py @@ -32,7 +32,7 @@ from harness.logger import logger large_file_01 = 'large_file_01' large_file_02 = 'large_file_02' -@pytest.mark.skip(reason="using >> to concatenate files seems to hang clients") +#@pytest.mark.skip(reason="using >> to concatenate files seems to hang clients") def test_concat(gkfs_daemon, gkfs_shell, file_factory): """Concatenate two large files""" @@ -64,5 +64,10 @@ def test_concat(gkfs_daemon, gkfs_shell, file_factory): assert cmd.parsed_stdout.digest == lf02.md5sum() ##XXX hangs! - cmd = gkfs_client.bash('cat', gkfs_daemon.mountdir / large_file_01, '>>', gkfs_daemon.mountdir / large_file_02) + cmd = gkfs_shell.script( + f""" + {gkfs_shell.patched_environ} cat {gkfs_daemon.mountdir / large_file_01} >> {gkfs_daemon.mountdir / large_file_02} + """, intercept_shell=False) + + # cmd = gkfs_client.bash('cat', gkfs_daemon.mountdir / large_file_01, '>>', gkfs_daemon.mountdir / large_file_02) assert cmd.exit_code == 0 diff --git a/tests/integration/shell/test_cp.py b/tests/integration/shell/test_cp.py index a98de3967..acebc2d69 100644 --- a/tests/integration/shell/test_cp.py +++ b/tests/integration/shell/test_cp.py @@ -31,7 +31,7 @@ from harness.logger import logger file01 = 'file01' -@pytest.mark.skip(reason="shell tests seem to hang clients at times") +#@pytest.mark.skip(reason="shell tests seem to hang clients at times") def test_cp(gkfs_daemon, gkfs_shell, file_factory): """Copy a file into gkfs using the shell""" diff --git a/tests/integration/shell/test_stat.py b/tests/integration/shell/test_stat.py index 84027149d..51ab18404 100644 --- a/tests/integration/shell/test_stat.py +++ b/tests/integration/shell/test_stat.py @@ -83,7 +83,7 @@ def test_stat_script(gkfs_daemon, gkfs_shell, file_factory): assert cmd.exit_code == 0 -@pytest.mark.skip(reason="shell tests seem to hang clients at times") +#@pytest.mark.skip(reason="shell tests seem to hang clients at times") def test_stat_command(gkfs_daemon, gkfs_shell, file_factory): """ Copy a file into gkfs using the shell and check that it diff --git a/tests/integration/syscalls/test_error_operations.py b/tests/integration/syscalls/test_error_operations.py index 23311f108..a72b85189 100644 --- a/tests/integration/syscalls/test_error_operations.py +++ b/tests/integration/syscalls/test_error_operations.py @@ -61,7 +61,7 @@ def test_open_error(gkfs_daemon, gkfs_client): # Create file and recreate ret = gkfs_client.open(file, os.O_CREAT | os.O_EXCL | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.open(file, os.O_CREAT | os.O_EXCL | os.O_WRONLY) assert ret.retval == -1 @@ -70,22 +70,22 @@ def test_open_error(gkfs_daemon, gkfs_client): # Create file and recreate ret = gkfs_client.open(file2, os.O_CREAT | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 # Undefined in man ret = gkfs_client.open(file2, os.O_CREAT | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 # RDWR ret = gkfs_client.open(file2, os.O_RDWR) - assert ret.retval == 10000 + assert ret.retval != -1 # RD ret = gkfs_client.open(file2, os.O_RDONLY) - assert ret.retval == 10000 + assert ret.retval != -1 # Truncate the file ret = gkfs_client.open(file2, os.O_TRUNC | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 # Open unexistent file ret = gkfs_client.open(file3, os.O_WRONLY) @@ -93,7 +93,7 @@ def test_open_error(gkfs_daemon, gkfs_client): assert ret.errno == errno.ENOENT ret = gkfs_client.open(file3, os.O_CREAT | stat.S_IFSOCK | os.O_EXCL | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 def test_access_error(gkfs_daemon, gkfs_client): @@ -101,7 +101,7 @@ def test_access_error(gkfs_daemon, gkfs_client): file2 = gkfs_daemon.mountdir / "file2" ret = gkfs_client.open(file, os.O_CREAT | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 # Access, flags are not being used ret = gkfs_client.access(file2, os.R_OK) @@ -150,7 +150,7 @@ def test_check_parents(gkfs_daemon, gkfs_client): # Create file ret = gkfs_client.open(file2, os.O_CREAT | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 # Create file over a file ret = gkfs_client.open(file3, os.O_CREAT | os.O_WRONLY) @@ -162,7 +162,7 @@ def test_dup(gkfs_daemon, gkfs_client): file = gkfs_daemon.mountdir / "file" ret = gkfs_client.open(file, os.O_CREAT | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.dup_validate(file) assert ret.retval == 0 diff --git a/tests/integration/syscalls/test_syscalls.py b/tests/integration/syscalls/test_syscalls.py index 6c4749a8b..434c9ce67 100644 --- a/tests/integration/syscalls/test_syscalls.py +++ b/tests/integration/syscalls/test_syscalls.py @@ -45,7 +45,7 @@ def test_syscalls(gkfs_daemon, gkfs_client): file = gkfs_daemon.mountdir / "file" ret = gkfs_client.open(file, os.O_CREAT | os.O_WRONLY) - assert ret.retval == 10000 + assert ret.retval != -1 ret = gkfs_client.syscall_coverage(file) -- GitLab From 0096e6d8b2c33ee234e925f0802e398ab55f09be Mon Sep 17 00:00:00 2001 From: Ramon Nou Date: Thu, 13 Mar 2025 15:38:27 +0100 Subject: [PATCH 2/2] update CHANGELOG to reflect test return value changes and script test improvements --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a24c4e0cc..208dfc2f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,9 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - Added cppcheck code checking capabilities ([!214](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/214)) ### Changed - - + - Tests check ret for -1 instead of 10000 fd ([!320](https://storage.bsc.es/gitlab/hpc/gekkofs/-/merge_requests/320)) + - Allow some more script tests to run as pthread_at_fork solved some issues. + ### Fixed -- GitLab