Commit 7b4ac5de authored by Havoc Pennington's avatar Havoc Pennington

2003-09-01 Havoc Pennington <hp@pobox.com>

	* glib/Makefile.am: rearrange a bunch of files and get "make
	check" framework set up
parent fdb114e5
2003-09-01 Havoc Pennington <hp@pobox.com>
* glib/Makefile.am: rearrange a bunch of files and get "make
check" framework set up
2003-08-31 Havoc Pennington <hp@pobox.com>
* fix build with --disable-tests
......
......@@ -79,3 +79,6 @@
- the invalid messages in the test suite are all useless because
they are invalid for the wrong reasons due to protocol changes
- Nuke the org.freedesktop.Broadcast service; instead,
just broadcast messages of type signal
......@@ -11,18 +11,24 @@ dbusinclude_HEADERS= \
libdbus_glib_1_la_SOURCES = \
dbus-gmain.c \
dbus-gproxy.c \
dbus-gtest.c \
dbus-gtest.h \
dbus-gthread.c
libdbus_glib_1_la_LIBADD= $(DBUS_GLIB_LIBS) $(top_builddir)/dbus/libdbus-1.la
bin_PROGRAMS=dbus-glib-compiler
bin_PROGRAMS=dbus-glib-tool
dbus_glib_compiler_SOURCES = \
dbus_glib_tool_SOURCES = \
dbus-gidl.c \
dbus-gidl.h \
dbus-compiler-main.c
dbus-glib-tool.c \
dbus-gparser.c \
dbus-gparser.h \
dbus-gtool-test.h
dbus_glib_compiler_LDADD= libdbus-glib-1.la $(DBUS_GLIB_LIBS) $(top_builddir)/dbus/libdbus-1.la
dbus_glib_tool_LDADD= libdbus-glib-1.la $(DBUS_GLIB_LIBS) $(top_builddir)/dbus/libdbus-1.la
if DBUS_BUILD_TESTS
......@@ -42,15 +48,29 @@ test_thread_client_SOURCES= \
test_thread_client_LDADD= $(DBUS_GLIB_THREADS_LIBS) $(top_builddir)/glib/libdbus-glib-1.la
endif
noinst_PROGRAMS= test-dbus-glib $(THREAD_APPS)
## we use noinst_PROGRAMS not check_PROGRAMS for TESTS so that we
## build even when not doing "make check"
noinst_PROGRAMS= $(TESTS) test-dbus-glib $(THREAD_APPS)
test_dbus_glib_SOURCES= \
test-dbus-glib.c
test_dbus_glib_LDADD= $(top_builddir)/glib/libdbus-glib-1.la
## note that TESTS has special meaning (stuff to use in make check)
## so if adding tests not to be run in make check, don't add them to
## TESTS
TESTS_ENVIRONMENT=DBUS_TEST_DATA=$(top_builddir)/test/data DBUS_TEST_HOMEDIR=$(top_builddir)/dbus
TESTS=dbus-glib-test
dbus_glib_test_SOURCES= \
dbus-gtest-main.c
dbus_glib_test_LDADD= $(top_builddir)/glib/libdbus-glib-1.la
else
### not building tests
TESTS=
if HAVE_GLIB_THREADS
noinst_PROGRAMS=test-profile
......
......@@ -22,24 +22,53 @@
*/
#include "dbus-gidl.h"
#include <locale.h>
#ifdef DBUS_BUILD_TESTS
static void run_all_tests (const char *test_data_dir);
#endif
int
main (int argc, char **argv)
{
setlocale(LC_ALL, "");
return 0;
}
#ifdef DBUS_BUILD_TESTS
static void
test_die (const char *failure)
{
fprintf (stderr, "Unit test failed: %s\n", failure);
exit (1);
}
static void
run_all_tests (const char *test_data_dir)
{
if (test_data_dir == NULL)
test_data_dir = _dbus_getenv ("DBUS_TEST_DATA");
if (test_data_dir != NULL)
printf ("Test data in %s\n", test_data_dir);
else
printf ("No test data!\n");
printf ("%s: running gtool tests\n", "dbus-glib-tool");
if (!_dbus_gtool_test (test_data_dir))
test_die ("gtool");
printf ("%s: completed successfully\n", "dbus-glib-test");
}
/**
* @ingroup DBusGCompiler
* Unit test for GLib stubs/skels compiler
* @ingroup DBusGTool
* Unit test for GLib utility tool
* @returns #TRUE on success.
*/
dbus_bool_t
_dbus_gcompiler_test (void)
_dbus_gtool_test (const char *test_data_dir)
{
return TRUE;
......
......@@ -21,8 +21,9 @@
*
*/
#include <config.h>
#include "dbus-glib.h"
#include <glib.h>
#include "dbus-gtest.h"
/**
* @defgroup DBusGLib GLib bindings
......@@ -491,3 +492,19 @@ dbus_server_setup_with_g_main (DBusServer *server,
}
/** @} */ /* end of public API */
#ifdef DBUS_BUILD_TESTS
/**
* @ingroup DBusGLibInternals
* Unit test for GLib main loop integration
* @returns #TRUE on success.
*/
dbus_bool_t
_dbus_gmain_test (const char *test_data_dir)
{
return TRUE;
}
#endif /* DBUS_BUILD_TESTS */
/* -*- mode: C; c-file-style: "gnu" -*- */
/* dbus-gparser.c parse DBus description files
*
* Copyright (C) 2003 Red Hat, Inc.
*
* Licensed under the Academic Free License version 1.2
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#include "dbus-gparser.h"
#include "dbus-gidl.h"
struct Parser
{
int refcount;
};
Parser*
parser_new (void)
{
Parser *parser;
parser = g_new0 (Parser, 1);
parser->refcount = 1;
return parser;
}
void
parser_ref (Parser *parser)
{
parser->refcount += 1;
}
void
parser_unref (Parser *parser)
{
parser->refcount -= 1;
if (parser->refcount == 0)
{
g_free (parser);
}
}
gboolean
parser_check_doctype (Parser *parser,
const char *doctype,
GError **error)
{
g_return_val_if_fail (error == NULL || *error == NULL);
if (strcmp (doctype, "dbus_description") != 0)
{
g_set_error (error,
G_MARKUP_ERROR_PARSE,
"D-BUS description file has the wrong document type %s, use dbus_description",
doctype);
return FALSE;
}
else
return TRUE;
}
gboolean
parser_start_element (Parser *parser,
const char *element_name,
const char **attribute_names,
const char **attribute_values,
GError **error)
{
g_return_val_if_fail (error == NULL || *error == NULL);
return TRUE;
}
gboolean
parser_end_element (Parser *parser,
const char *element_name,
GError **error)
{
g_return_val_if_fail (error == NULL || *error == NULL);
return TRUE;
}
gboolean
parser_content (Parser *parser,
const char *content,
int len,
GError **error)
{
g_return_val_if_fail (error == NULL || *error == NULL);
return TRUE;
}
gboolean
parser_finished (Parser *parser,
GError **error)
{
g_return_val_if_fail (error == NULL || *error == NULL);
return TRUE;
}
/* -*- mode: C; c-file-style: "gnu" -*- */
/* dbus-gparser.h parse DBus description files
*
* Copyright (C) 2003 Red Hat, Inc.
*
* Licensed under the Academic Free License version 1.2
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
#ifndef DBUS_GLIB_PARSER_H
#define DBUS_GLIB_PARSER_H
#include <dbus/dbus.h>
#include <glib.h>
G_BEGIN_DECLS
typedef struct Parser Parser;
Parser* parser_new (void);
void parser_ref (Parser *parser);
void parser_unref (Parser *parser);
gboolean parser_check_doctype (Parser *parser,
const char *doctype,
GError **error);
gboolean parser_start_element (Parser *parser,
const char *element_name,
const char **attribute_names,
const char **attribute_values,
GError **error);
gboolean parser_end_element (Parser *parser,
const char *element_name,
GError **error);
gboolean parser_content (Parser *parser,
const char *content,
int len,
GError **error);
gboolean parser_finished (Parser *parser,
GError **error);
G_END_DECLS
#endif /* DBUS_GLIB_GPARSER_H */
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment