From 6eae9c8ba66c9a7469a2cdea88c16048fdbe2638 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 28 Feb 2007 14:20:40 -0500 Subject: add a test program for the connector Add a simple test app for the connector. Adapted from the example David put in the header. --- libck-connector/Makefile.am | 59 +++++++++++++++++++++++----- libck-connector/test-connector.c | 85 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+), 9 deletions(-) create mode 100644 libck-connector/test-connector.c (limited to 'libck-connector') diff --git a/libck-connector/Makefile.am b/libck-connector/Makefile.am index 80a4e2b..9727175 100644 --- a/libck-connector/Makefile.am +++ b/libck-connector/Makefile.am @@ -1,22 +1,63 @@ +NULL = -INCLUDES = $(LIBDBUS_CFLAGS) +INCLUDES = \ + -I. \ + $(LIBDBUS_CFLAGS) \ + $(NULL) -slib_LTLIBRARIES=libck-connector.la -slibdir=/lib -libck_connectorincludedir=$(includedir)/ConsoleKit/ck-connector -libck_connectorinclude_HEADERS = ck-connector.h -libck_connector_la_SOURCES = ck-connector.c ck-connector.h +slib_LTLIBRARIES = \ + libck-connector.la \ + $(NULL) + +slibdir = /lib +libck_connectorincludedir = $(includedir)/ConsoleKit/ck-connector + +libck_connectorinclude_HEADERS = \ + ck-connector.h \ + $(NULL) + +libck_connector_la_SOURCES = \ + ck-connector.c \ + ck-connector.h \ + $(NULL) + +noinst_PROGRAMS = \ + test-connector \ + $(NULL) + +test_connector_SOURCES = \ + test-connector.c \ + $(NULL) + + +test_connector_LDADD = \ + $(top_builddir)/libck-connector/libck-connector.la \ + $(LIBDBUS_LIBS) \ + $(NULL) # soname management for libck-connector LIBCKCON_LT_CURRENT=0 LIBCKCON_LT_REVISION=0 LIBCKCON_LT_AGE=0 -libck_connector_la_LIBADD = $(LIBDBUS_LIBS) -libck_connector_la_LDFLAGS = -version-info $(LIBCKCON_LT_CURRENT):$(LIBCKCON_LT_REVISION):$(LIBCKCON_LT_AGE) +libck_connector_la_LIBADD = \ + $(LIBDBUS_LIBS) \ + $(NULL) + +libck_connector_la_LDFLAGS = \ + -version-info $(LIBCKCON_LT_CURRENT):$(LIBCKCON_LT_REVISION):$(LIBCKCON_LT_AGE) \ + $(NULL) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = ck-connector.pc -clean-local : +EXTRA_DIST = \ + ck-connector.pc.in \ + $(NULL) + +MAINTAINERCLEANFILES = \ + *~ \ + Makefile.in + +clean-local: rm -f *~ diff --git a/libck-connector/test-connector.c b/libck-connector/test-connector.c new file mode 100644 index 0000000..3359a3f --- /dev/null +++ b/libck-connector/test-connector.c @@ -0,0 +1,85 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- + * + * Copyright (c) 2007 David Zeuthen + * Copyright (c) 2007 William Jon McCann + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#include +#include +#include + +#include "ck-connector.h" + +int +main (int argc, char *argv[]) +{ + CkConnector *connector; + int ret; + DBusError error; + + ret = 1; + + connector = ck_connector_new (); + if (connector == NULL) { + printf ("OOM creating CkConnector\n"); + goto out; + } + + dbus_error_init (&error); + if (! ck_connector_open_session_for_user (connector, 500, "/dev/tty2", ":1", &error)) { + if (dbus_error_is_set (&error)) { + printf ("%s\n", + error.message); + dbus_error_free (&error); + } else { + printf ("cannot open CK session: OOM, D-Bus system bus not available,\n" + "ConsoleKit not available or insufficient privileges.\n"); + } + goto out; + } + + printf ("Session cookie is '%s'\n", ck_connector_get_cookie (connector)); + sleep (20); + + dbus_error_init (&error); + if (! ck_connector_close_session (connector, &error)) { + if (dbus_error_is_set (&error)) { + printf ("%s\n", + error.message); + dbus_error_free (&error); + } else { + printf ("Cannot close CK session: OOM, D-Bus system bus not available,\n" + "ConsoleKit not available or insufficient privileges.\n"); + } + goto out; + } + + ret = 0; +out: + if (connector != NULL) { + ck_connector_unref (connector); + } + + return ret; +} -- cgit