chiark / gitweb /
bus: add support for serializing to gvariant
[elogind.git] / src / libsystemd-bus / test-bus-memfd.c
index 3300470..b9d6a25 100644 (file)
@@ -20,6 +20,7 @@
 ***/
 
 #include <sys/mman.h>
+#include <sys/uio.h>
 
 #include "log.h"
 #include "macro.h"
@@ -49,7 +50,7 @@ int main(int argc, char *argv[]) {
         strcpy(s, "----- world");
 
         r = sd_memfd_set_sealed(m, 1);
-        assert_se(r == -EPERM);
+        assert_se(r == -ETXTBSY);
 
         assert_se(write(sd_memfd_get_fd(m), "he", 2) == 2);
         assert_se(write(sd_memfd_get_fd(m), "XXX", 3) == 3);
@@ -101,7 +102,7 @@ int main(int argc, char *argv[]) {
 
         /* we did truncate it to 6 */
         r = sd_memfd_get_size(m, &sz);
-        assert_se(sz == 6);
+        assert_se(r >= 0 && sz == 6);
 
         /* map it, check content */
         r = sd_memfd_map(m, 0, 12, (void **)&s);
@@ -116,7 +117,7 @@ int main(int argc, char *argv[]) {
 
         /* we cannot break the seal, it is mapped */
         r = sd_memfd_set_sealed(m, 0);
-        assert_se(r == -EPERM);
+        assert_se(r == -ETXTBSY);
 
         /* unmap it; become the single owner */
         assert_se(munmap(s, 12) == 0);
@@ -151,8 +152,7 @@ int main(int argc, char *argv[]) {
         iov[1].iov_len = 3;
         iov[2].iov_base = (char *)"GHI";
         iov[2].iov_len = 3;
-        assert_se(lseek(fd, 0, SEEK_SET) == 0);
-        assert_se(writev(fd, iov, 3) == 9);
+        assert_se(pwritev(fd, iov, 3, 0) == 9);
 
         /* readv it back */
         iov[0].iov_base = bufv[0];
@@ -161,8 +161,7 @@ int main(int argc, char *argv[]) {
         iov[1].iov_len = 3;
         iov[2].iov_base = bufv[2];
         iov[2].iov_len = 3;
-        assert_se(lseek(fd, 0, SEEK_SET) == 0);
-        assert_se(readv(fd, iov, 3) == 9);
+        assert_se(preadv(fd, iov, 3, 0) == 9);
 
         /* check content */
         assert_se(memcmp(bufv[0], "ABC", 3) == 0);