[Libguestfs] [libnbd PATCH 1/2] python: Fix test 505

Eric Blake eblake at redhat.com
Wed Aug 14 18:54:33 UTC 2019


The logic in this test was wrong, but masked by other problems still
existing in our python bindings.  The fourth test claims to fail
during only chunk, but passed '42' as the user_data for callback which
requires that err.value be 0; if .chunk had actually failed, err.value
should be non-zero.

We're overloading a single user_data int to try and control two
orthogonal things (what to expect in err, and whether to fail); let's
instead make the callback user_data a tuple.

Fixes: e7d29712
---
 python/t/505-aio-pread-callback.py | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/python/t/505-aio-pread-callback.py b/python/t/505-aio-pread-callback.py
index 8d71c38..3a90a0c 100644
--- a/python/t/505-aio-pread-callback.py
+++ b/python/t/505-aio-pread-callback.py
@@ -34,19 +34,19 @@ def chunk (user_data, buf2, offset, s, err):
     assert s == nbd.READ_DATA

 def callback (user_data, err):
-    print ("in callback, user_data %d" % user_data)
-    if user_data <= 43:
+    print ("in callback, user_data %d,%d" % user_data)
+    if user_data[0] == 42:
         assert err.value == 0
     else:
         assert err.value == errno.EPROTO
     err.value = errno.ENOMEM
-    assert user_data == 42
+    assert user_data[1] == 42

 # First try: succeed in both callbacks
 buf = nbd.Buffer (512)
 cookie = h.aio_pread_structured (buf, 0,
                                  lambda *args: chunk (42, *args),
-                                 lambda *args: callback (42, *args))
+                                 lambda *args: callback ((42, 42), *args))
 while not (h.aio_command_completed (cookie)):
     h.poll (-1)

@@ -60,7 +60,7 @@ assert buf == expected
 buf = nbd.Buffer (512)
 cookie = h.aio_pread_structured (buf, 0,
                                  lambda *args: chunk (42, *args),
-                                 lambda *args: callback (43, *args))
+                                 lambda *args: callback ((42, 43), *args))
 try:
     while not (h.aio_command_completed (cookie)):
         h.poll (-1)
@@ -72,7 +72,7 @@ except nbd.Error as ex:
 buf = nbd.Buffer (512)
 cookie = h.aio_pread_structured (buf, 0,
                                  lambda *args: chunk (43, *args),
-                                 lambda *args: callback (44, *args))
+                                 lambda *args: callback ((43, 43), *args))
 try:
     while not (h.aio_command_completed (cookie)):
         h.poll (-1)
@@ -84,7 +84,7 @@ except nbd.Error as ex:
 buf = nbd.Buffer (512)
 cookie = h.aio_pread_structured (buf, 0,
                                  lambda *args: chunk (43, *args),
-                                 lambda *args: callback (42, *args))
+                                 lambda *args: callback ((43, 42), *args))
 try:
     while not (h.aio_command_completed (cookie)):
         h.poll (-1)
-- 
2.20.1




More information about the Libguestfs mailing list