aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ChangeLog6
-rw-r--r--tests/gpg/t-support.h15
-rw-r--r--tests/gpgsm/t-support.h16
3 files changed, 34 insertions, 3 deletions
diff --git a/tests/ChangeLog b/tests/ChangeLog
index fcdf1565..ab9a60aa 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2009-06-22 Marcus Brinkmann <[email protected]>
+
+ * gpg/t-support.h (passphrase_cb): Implement write() according to
+ the book to silence compiler warning.
+ * gpgsm/t-support.h (passphrase_cb): Likewise.
+
2009-06-16 Werner Koch <[email protected]>
* gpg/pgp-import.c: New.
diff --git a/tests/gpg/t-support.h b/tests/gpg/t-support.h
index 13475f29..6e282a34 100644
--- a/tests/gpg/t-support.h
+++ b/tests/gpg/t-support.h
@@ -80,7 +80,20 @@ passphrase_cb (void *opaque, const char *uid_hint, const char *passphrase_info,
DWORD written;
WriteFile ((HANDLE) fd, "abc\n", 4, &written, 0);
#else
- write (fd, "abc\n", 4);
+ int res;
+ char *pass = "abc\n";
+ int passlen = strlen (pass);
+ int off = 0;
+
+ do
+ {
+ res = write (fd, &pass[off], passlen - off);
+ if (res > 0)
+ off += res;
+ }
+ while (res > 0 && off != passlen);
+
+ return off == passlen ? 0 : gpgme_error_from_errno (errno);
#endif
return 0;
diff --git a/tests/gpgsm/t-support.h b/tests/gpgsm/t-support.h
index 07f00c38..6dc14569 100644
--- a/tests/gpgsm/t-support.h
+++ b/tests/gpgsm/t-support.h
@@ -62,8 +62,20 @@ gpgme_error_t
passphrase_cb (void *opaque, const char *uid_hint, const char *passphrase_info,
int last_was_bad, int fd)
{
- write (fd, "abc\n", 4);
- return 0;
+ int res;
+ char *pass = "abc\n";
+ int passlen = strlen (pass);
+ int off = 0;
+
+ do
+ {
+ res = write (fd, &pass[off], passlen - off);
+ if (res > 0)
+ off += res;
+ }
+ while (res > 0 && off != passlen);
+
+ return off == passlen ? 0 : gpgme_error_from_errno (errno);
}