diff options
Diffstat (limited to 'camel/tests/mime-filter/test-charset.c')
-rw-r--r-- | camel/tests/mime-filter/test-charset.c | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/camel/tests/mime-filter/test-charset.c b/camel/tests/mime-filter/test-charset.c deleted file mode 100644 index 301cf3b2b7..0000000000 --- a/camel/tests/mime-filter/test-charset.c +++ /dev/null @@ -1,140 +0,0 @@ -/* - test-crlf.c - - Test the CamelMimeFilterCharset class -*/ - -#include <stdio.h> -#include <string.h> -#include <sys/types.h> -#include <dirent.h> - -#include "camel-test.h" - -#include <camel/camel-stream-fs.h> -#include <camel/camel-stream-mem.h> -#include <camel/camel-stream-filter.h> -#include <camel/camel-mime-filter-charset.h> - -#define d(x) x - -#define CHUNK_SIZE 4096 - -int -main (int argc, char **argv) -{ - ssize_t comp_progress, comp_correct_chunk, comp_filter_chunk; - char comp_correct[CHUNK_SIZE], comp_filter[CHUNK_SIZE]; - CamelStream *source; - CamelStream *correct; - CamelStreamFilter *filter; - CamelMimeFilter *f; - struct dirent *dent; - int i, test = 0; - DIR *dir; - - camel_test_init(argc, argv); - - dir = opendir (SOURCEDIR); - - while ((dent = readdir (dir))) { - char *outfile, *charset, *work; - const char *ext; - - ext = strrchr (dent->d_name, '.'); - if (!(!strncmp (dent->d_name, "charset-", 8) && ext && !strcmp (ext, ".in"))) - continue; - - work = g_strdup_printf ("Charset filter, test case %d (%s)", test++, dent->d_name); - camel_test_start (work); - g_free (work); - - if (!(source = camel_stream_fs_new_with_name (dent->d_name, 0, O_RDONLY))) { - camel_test_fail ("Failed to open input case in \"%s\"", dent->d_name); - continue; - } - - outfile = g_strdup_printf ("%.*s.out", ext - dent->d_name, dent->d_name); - - if (!(correct = camel_stream_fs_new_with_name (outfile, 0, O_RDONLY))) { - camel_test_fail ("Failed to open correct output in \"%s\"", outfile); - g_free (outfile); - continue; - } - g_free (outfile); - - if (!(filter = camel_stream_filter_new_with_stream (CAMEL_STREAM (source)))) { - camel_test_fail ("Couldn't create CamelStreamFilter??"); - continue; - } - - charset = g_strdup (dent->d_name + 8); - ext = strchr (charset, '.'); - *((char *) ext) = '\0'; - - if (!(f = (CamelMimeFilter *) camel_mime_filter_charset_new_convert (charset, "UTF-8"))) { - camel_test_fail ("Couldn't create CamelMimeFilterCharset??"); - g_free (charset); - continue; - } - g_free (charset); - - camel_stream_filter_add (filter, f); - camel_object_unref (f); - - camel_test_push ("Running filter and comparing to correct result"); - - comp_progress = 0; - - while (1) { - comp_correct_chunk = camel_stream_read (correct, comp_correct, CHUNK_SIZE); - comp_filter_chunk = 0; - - if (comp_correct_chunk == 0) - break; - - while (comp_filter_chunk < comp_correct_chunk) { - ssize_t delta; - - delta = camel_stream_read (CAMEL_STREAM (filter), - comp_filter + comp_filter_chunk, - CHUNK_SIZE - comp_filter_chunk); - - if (delta == 0) { - camel_test_fail ("Chunks are different sizes: correct is %d, " - "filter is %d, %d bytes into stream", - comp_correct_chunk, comp_filter_chunk, comp_progress); - } - - comp_filter_chunk += delta; - } - - for (i = 0; i < comp_filter_chunk; i++) { - if (comp_correct[i] != comp_filter[i]) { - camel_test_fail ("Difference: correct is %c, filter is %c, " - "%d bytes into stream", - comp_correct[i], - comp_filter[i], - comp_progress + i); - } - } - - comp_progress += comp_filter_chunk; - } - - camel_test_pull (); - - /* inefficient */ - camel_test_push ("Cleaning up"); - camel_object_unref (CAMEL_OBJECT (filter)); - camel_object_unref (CAMEL_OBJECT (correct)); - camel_object_unref (CAMEL_OBJECT (source)); - camel_test_pull (); - - camel_test_end (); - } - - closedir (dir); - - return 0; -} |