a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
65 lines
1.3 KiB
C
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)
|
|
|
|
|