diff options
author | Dan Winship <danw@src.gnome.org> | 2001-05-28 03:52:07 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-05-28 03:52:07 +0800 |
commit | 618ce2988e65058388fb9581ea427f11399de5a2 (patch) | |
tree | c534cbdbb1f55b81b2705839d37c8cb8b0b86b95 /camel/tests/lib | |
parent | 8b06ce05ebb8d110542eb21cdafa039c0ae03c4b (diff) | |
download | gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.gz gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.bz2 gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.lz gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.xz gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.tar.zst gsoc2013-evolution-618ce2988e65058388fb9581ea427f11399de5a2.zip |
Fix an fd leak
* tests/lib/messages.c (test_message_read_file): Fix an fd leak
* tests/lib/session.c, tests/lib/session.h: a CamelSession
subclass for the test programs.
* tests/lib/Makefile.am: include session.[ch]
* tests/folder/test*.c: Use a CamelTestSession from libcameltest
instead of cut+pasting everywhere.
* tests/misc/url.c (main): Update for a camel_url_new change at
some point.
* tests/*/.cvsignore: Add stuff.
* camel-mime-utils.c (rfc2047_encode_word): Fix a silly ==/!=
mixup.
svn path=/trunk/; revision=10023
Diffstat (limited to 'camel/tests/lib')
-rw-r--r-- | camel/tests/lib/Makefile.am | 1 | ||||
-rw-r--r-- | camel/tests/lib/folders.c | 28 | ||||
-rw-r--r-- | camel/tests/lib/messages.c | 1 | ||||
-rw-r--r-- | camel/tests/lib/session.c | 59 | ||||
-rw-r--r-- | camel/tests/lib/session.h | 19 |
5 files changed, 87 insertions, 21 deletions
diff --git a/camel/tests/lib/Makefile.am b/camel/tests/lib/Makefile.am index ea51a2c28a..c3da5e37a8 100644 --- a/camel/tests/lib/Makefile.am +++ b/camel/tests/lib/Makefile.am @@ -8,6 +8,7 @@ libcameltest_a_SOURCES = \ messages.c messages.h \ addresses.c addresses.h \ folders.c folders.h \ + session.c session.h \ streams.c streams.h \ address-data.h diff --git a/camel/tests/lib/folders.c b/camel/tests/lib/folders.c index ba02001bcc..31d242070d 100644 --- a/camel/tests/lib/folders.c +++ b/camel/tests/lib/folders.c @@ -193,7 +193,7 @@ test_folder_basic(CamelSession *session, const char *storename, int local) { CamelStore *store; CamelException *ex = camel_exception_new(); - CamelFolder *folder, *root; + CamelFolder *folder; char *what = g_strdup_printf("testing store: %s", storename); camel_test_start(what); @@ -205,31 +205,17 @@ test_folder_basic(CamelSession *session, const char *storename, int local) check(store != NULL); pull(); - /* local providers == no root folder */ - push("getting root folder"); - root = camel_store_get_root_folder(store, ex); + /* local providers == no inbox */ + push("getting inbox folder"); + folder = camel_store_get_inbox(store, ex); if (local) { check(camel_exception_is_set(ex)); - check(root == NULL); + check(folder == NULL); camel_exception_clear(ex); } else { check_msg(!camel_exception_is_set(ex), "%s", camel_exception_get_description(ex)); - check(root != NULL); - check_unref(root, 1); - } - pull(); - - /* same for default folder */ - push("getting default folder"); - root = camel_store_get_root_folder(store, ex); - if (local) { - check(camel_exception_is_set(ex)); - check(root == NULL); - camel_exception_clear(ex); - } else { - check_msg(!camel_exception_is_set(ex), "%s", camel_exception_get_description(ex)); - check(root != NULL); - check_unref(root, 1); + check(folder != NULL); + check_unref(folder, 1); } pull(); diff --git a/camel/tests/lib/messages.c b/camel/tests/lib/messages.c index a8c8b30465..21d77582ad 100644 --- a/camel/tests/lib/messages.c +++ b/camel/tests/lib/messages.c @@ -115,6 +115,7 @@ test_message_read_file(const char *name) camel_data_wrapper_construct_from_stream((CamelDataWrapper *)msg2, (CamelStream *)file); /* file's refcount may be > 1 if the message is real big */ check(CAMEL_OBJECT(file)->ref_count >=1); + camel_object_unref((CamelObject *)file); return msg2; } diff --git a/camel/tests/lib/session.c b/camel/tests/lib/session.c new file mode 100644 index 0000000000..2ebf6e2d7f --- /dev/null +++ b/camel/tests/lib/session.c @@ -0,0 +1,59 @@ +#include "session.h" + +static guint +register_timeout (CamelSession *session, guint32 interval, CamelTimeoutCallback callback, gpointer user_data) +{ + return 1; +} + +static gboolean +unregister_timeout (CamelSession *session, guint handle) +{ + return TRUE; +} + + +static void +class_init (CamelTestSessionClass *camel_test_session_class) +{ + CamelSessionClass *camel_session_class = + CAMEL_SESSION_CLASS (camel_test_session_class); + + /* virtual method override */ + camel_session_class->register_timeout = register_timeout; + camel_session_class->remove_timeout = unregister_timeout; +} + +CamelType +camel_test_session_get_type (void) +{ + static CamelType type = CAMEL_INVALID_TYPE; + + if (type == CAMEL_INVALID_TYPE) { + type = camel_type_register ( + camel_session_get_type (), + "CamelTestSession", + sizeof (CamelTestSession), + sizeof (CamelTestSessionClass), + (CamelObjectClassInitFunc) class_init, + NULL, + NULL, + NULL); + } + + return type; +} + +CamelSession * +camel_test_session_new (const char *path) +{ + CamelSession *session; + + session = CAMEL_SESSION (camel_object_new (CAMEL_TEST_SESSION_TYPE)); + + camel_session_construct (session, path); + + return session; +} + + diff --git a/camel/tests/lib/session.h b/camel/tests/lib/session.h new file mode 100644 index 0000000000..e69ef65e2e --- /dev/null +++ b/camel/tests/lib/session.h @@ -0,0 +1,19 @@ +#include <camel/camel-session.h> + +#define CAMEL_TEST_SESSION_TYPE (camel_test_session_get_type ()) +#define CAMEL_TEST_SESSION(obj) (CAMEL_CHECK_CAST((obj), CAMEL_TEST_SESSION_TYPE, CamelTestSession)) +#define CAMEL_TEST_SESSION_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_TEST_SESSION_TYPE, CamelTestSessionClass)) +#define CAMEL_TEST_IS_SESSION(o) (CAMEL_CHECK_TYPE((o), CAMEL_TEST_SESSION_TYPE)) + +typedef struct _CamelTestSession { + CamelSession parent_object; + +} CamelTestSession; + +typedef struct _CamelTestSessionClass { + CamelSessionClass parent_class; + +} CamelTestSessionClass; + +CamelType camel_test_session_get_type (void); +CamelSession *camel_test_session_new (const char *path); |