mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2026-05-05 12:18:13 +02:00
2003-09-01 Havoc Pennington <hp@pobox.com>
* glib/Makefile.am: rearrange a bunch of files and get "make check" framework set up
This commit is contained in:
parent
fdb114e5cc
commit
7b4ac5de11
7 changed files with 264 additions and 10 deletions
|
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
|||
3
doc/TODO
3
doc/TODO
|
|
@ -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 */
|
||||
|
|
|
|||
121
glib/dbus-gparser.c
Normal file
121
glib/dbus-gparser.c
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
/* -*- 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;
|
||||
}
|
||||
59
glib/dbus-gparser.h
Normal file
59
glib/dbus-gparser.h
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
/* -*- 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 */
|
||||
Loading…
Add table
Reference in a new issue