aboutsummaryrefslogtreecommitdiffstats
path: root/tests/t-data.c
diff options
context:
space:
mode:
authorMarcus Brinkmann <[email protected]>2001-10-22 14:19:25 +0000
committerMarcus Brinkmann <[email protected]>2001-10-22 14:19:25 +0000
commitd4fb115bda4a870ad0b28c6fec34814ff07ad115 (patch)
treeca06c51d4c59511cc2db90a8b4ff67a7b9e3a83e /tests/t-data.c
parent2001-10-22 Marcus Brinkmann <[email protected]> (diff)
downloadgpgme-d4fb115bda4a870ad0b28c6fec34814ff07ad115.tar.gz
gpgme-d4fb115bda4a870ad0b28c6fec34814ff07ad115.zip
2001-10-22 Marcus Brinkmann <[email protected]>
* t-data.c (write_test): New function. (main): Invoke write_test for all rounds except TEST_OUT_CB.
Diffstat (limited to 'tests/t-data.c')
-rw-r--r--tests/t-data.c44
1 files changed, 42 insertions, 2 deletions
diff --git a/tests/t-data.c b/tests/t-data.c
index f7d6e4cc..47a8926b 100644
--- a/tests/t-data.c
+++ b/tests/t-data.c
@@ -71,13 +71,14 @@ typedef enum
} round_t;
const char *text = "Just GNU it!\n";
+const char *text2 = "Just GNU it!\nJust GNU it!\n";
int
read_cb (void *cb_value, char *buffer, size_t count, size_t *nread)
{
static int off = 0;
- round_t round = *((round_t *) cb_value);
int amount = strlen (text) - off;
+ /* round_t round = *((round_t *) cb_value); */
if (!buffer && !count && !nread)
{
@@ -152,6 +153,44 @@ read_test (round_t round, GpgmeData data)
read_once_test (round, data);
}
+void
+write_test (round_t round, GpgmeData data)
+{
+ GpgmeError err;
+ char buffer[1024];
+ int read;
+
+ err = gpgme_data_write (data, text, strlen (text));
+ fail_if_err (err);
+
+ read_once_test (round, data);
+ err = gpgme_data_rewind (data);
+ fail_if_err (err);
+
+ if (round == TEST_INOUT_NONE)
+ read_once_test (round, data);
+ else
+ {
+ err = gpgme_data_read (data, buffer, sizeof (buffer), &read);
+ fail_if_err (err);
+
+ if (read != strlen (text2) || strncmp (buffer, text2, strlen (text2)))
+ {
+ fprintf (stderr, "%s:%d: (%i) gpgme_data_read returned wrong data\n",
+ __FILE__, __LINE__, round);
+ exit (1);
+ }
+
+ err = gpgme_data_read (data, buffer, sizeof (buffer), &read);
+ if (err != GPGME_EOF)
+ {
+ fprintf (stderr, "%s:%d: (%i) gpgme_data_read did not signal EOF\n",
+ __FILE__, __LINE__, round);
+ exit (1);
+ }
+ }
+}
+
int
main (int argc, char **argv )
{
@@ -276,7 +315,8 @@ main (int argc, char **argv )
exit (1);
}
read_test (round, data);
-
+ if (round != TEST_OUT_CB)
+ write_test (round, data);
gpgme_data_release (data);
}
return 0;