Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

65 lines
1.3 KiB
C

#include <config.h>
#include <glib.h>
#include <gmodule.h>
#include <string.h>
#include <stdio.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include "test.h"
#if defined (G_OS_WIN32)
#define EXTERNAL_SYMBOL "GetProcAddress"
#else
#define EXTERNAL_SYMBOL "system"
#endif
void G_MODULE_EXPORT
dummy_test_export ()
{
}
/* test for g_module_open (NULL, ...) */
RESULT
test_module_symbol_null ()
{
gpointer proc = GINT_TO_POINTER (42);
GModule *m = g_module_open (NULL, G_MODULE_BIND_LAZY);
if (m == NULL)
return FAILED ("bind to main module failed. #0");
if (g_module_symbol (m, "__unlikely_\nexistent__", &proc))
return FAILED ("non-existent symbol lookup failed. #1");
if (proc)
return FAILED ("non-existent symbol lookup failed. #2");
if (!g_module_symbol (m, EXTERNAL_SYMBOL, &proc))
return FAILED ("external lookup failed. #3");
if (!proc)
return FAILED ("external lookup failed. #4");
if (!g_module_symbol (m, "dummy_test_export", &proc))
return FAILED ("in-proc lookup failed. #5");
if (!proc)
return FAILED ("in-proc lookup failed. #6");
if (!g_module_close (m))
return FAILED ("close failed. #7");
return OK;
}
static Test module_tests [] = {
{"g_module_symbol_null", test_module_symbol_null},
{NULL, NULL}
};
DEFINE_TEST_GROUP_INIT(module_tests_init, module_tests)