9 static guchar data[DATA_SIZE];
12 test_incremental (gboolean line_break)
14 char text[DATA_SIZE * 2];
16 guchar data2[DATA_SIZE];
18 gsize len, decoded_len, max;
25 for (i = 0; i < NUM_BLOCKS; i++)
26 len += g_base64_encode_step (data + i * BLOCK_SIZE, BLOCK_SIZE,
27 line_break, text + len, &state, &save);
28 len += g_base64_encode_close (line_break, text + len, &state, &save);
31 max = DATA_SIZE * 4 / 3 + DATA_SIZE * 4 / (3 * 72) + 7;
33 max = DATA_SIZE * 4 / 3 + 6;
36 g_print ("To long encoded length: got %d, expected max %d\n",
47 int chunk_len = MAX (32, len);
48 decoded_len += g_base64_decode_step (p,
51 &state, &decoder_save);
56 if (decoded_len != DATA_SIZE)
58 g_print ("Wrong decoded length: got %d, expected %d\n",
59 decoded_len, DATA_SIZE);
63 if (memcmp (data, data2, DATA_SIZE) != 0)
65 g_print ("Wrong decoded base64 data\n");
77 text = g_base64_encode (data, DATA_SIZE);
78 data2 = g_base64_decode (text, &len);
83 g_print ("Wrong decoded length: got %d, expected %d\n",
88 if (memcmp (data, data2, DATA_SIZE) != 0)
90 g_print ("Wrong decoded base64 data\n");
96 main (int argc, char *argv[])
99 for (i = 0; i < DATA_SIZE; i++)
103 test_incremental (FALSE);
104 test_incremental (TRUE);