X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Ftests%2Ftest_silcmime.c;h=d3b7d35d9fe956a74dc03d51087c703eb11b8760;hb=e7b6c157b80152bf9fb9266e6bdd93f9fb0db776;hp=65567cdb9ff25f514b1f43f37b7274d47cd25d22;hpb=40f8443d8d3a6577336ee66d18e04d9ac4d956bb;p=silc.git diff --git a/lib/silcutil/tests/test_silcmime.c b/lib/silcutil/tests/test_silcmime.c index 65567cdb..d3b7d35d 100644 --- a/lib/silcutil/tests/test_silcmime.c +++ b/lib/silcutil/tests/test_silcmime.c @@ -19,10 +19,12 @@ int main(int argc, char **argv) if (argc > 1 && !strcmp(argv[1], "-d")) { silc_log_debug(TRUE); silc_log_debug_hexdump(TRUE); - silc_log_set_debug_string("*mime*"); + silc_log_set_debug_string("*mime*,*errno*"); } - /* Simple MIME test */ + /* + * Simple MIME test + */ SILC_LOG_DEBUG(("Allocating MIME message context")); mime = silc_mime_alloc(); if (!mime) @@ -60,7 +62,38 @@ int main(int argc, char **argv) silc_free(enc); silc_mime_free(mime); - /* Multipart test, with nesting */ + /* + * Empty data area, only headers present + */ + SILC_LOG_DEBUG(("Allocating MIME message context")); + mime = silc_mime_alloc(); + if (!mime) + goto err; + SILC_LOG_DEBUG(("Adding Content-Transfer-Encoding: binary")); + silc_mime_add_field(mime, "Content-Transfer-Encoding", "binary"); + SILC_LOG_DEBUG(("No data area, only header present")); + SILC_LOG_DEBUG(("Encoding MIME context")); + enc = silc_mime_encode(mime, &enc_len); + if (!enc) + goto err; + SILC_LOG_DEBUG(("Encoded MIME message: \n%s", enc)); + silc_mime_free(mime); + SILC_LOG_DEBUG(("Decoding MIME message")); + mime = silc_mime_decode(NULL, enc, enc_len); + if (!mime) + goto err; + SILC_LOG_DEBUG(("Re-encoding MIME context")); + silc_free(enc); + enc = silc_mime_encode(mime, &enc_len); + if (!enc) + goto err; + SILC_LOG_HEXDUMP(("Re-encoded MIME message:"), enc, enc_len); + silc_free(enc); + silc_mime_free(mime); + + /* + * Multipart test, with nesting + */ SILC_LOG_DEBUG(("Allocating MIME message context")); mime = silc_mime_alloc(); if (!mime) @@ -106,7 +139,7 @@ int main(int argc, char **argv) part = silc_mime_alloc(); if (!part) goto err; - SILC_LOG_DEBUG(("Adding MIME data, 10 A's + 1 B")); + SILC_LOG_DEBUG(("Adding MIME data (NO HEADERS), 10 A's + 1 B")); for (i = 0; i < 10; i++) tmp[i] = 'A'; tmp[10] = 'B'; @@ -116,6 +149,16 @@ int main(int argc, char **argv) goto err; SILC_LOG_DEBUG(("Allocating part")); part = silc_mime_alloc(); + if (!part) + goto err; + SILC_LOG_DEBUG(("Adding Content-Type: image/foobar")); + SILC_LOG_DEBUG(("No data area, only header")); + silc_mime_add_field(part, "Content-Type", "image/foobar"); + SILC_LOG_DEBUG(("Adding part to MIME message")); + if (!silc_mime_add_multipart(mime, part)) + goto err; + SILC_LOG_DEBUG(("Allocating part")); + part = silc_mime_alloc(); if (!part) goto err; SILC_LOG_DEBUG(("Adding part to MIME message")); @@ -171,7 +214,9 @@ int main(int argc, char **argv) } silc_mime_free(mime); - /* Fragmentation test */ + /* + * Fragmentation test + */ SILC_LOG_DEBUG(("Allocating MIME assembler")); ass = silc_mime_assembler_alloc(); if (!ass) @@ -222,6 +267,7 @@ int main(int argc, char **argv) SILC_LOG_DEBUG(("Error encoding")); SILC_LOG_DEBUG(("Encoded MIME message: \n%s", enc)); silc_free(enc); + silc_mime_free(part); } } silc_mime_partial_free(frag);