nexmon – Rev 1

Subversion Repositories:
Rev:
include $(top_srcdir)/glib-tap.mk

dist_uninstalled_test_data =
test_ltlibraries =

SUBDIRS = gdbus-object-manager-example services modules

LDADD = \
        $(top_builddir)/gio/libgio-2.0.la               \
        $(top_builddir)/gobject/libgobject-2.0.la       \
        $(top_builddir)/gmodule/libgmodule-2.0.la       \
        $(top_builddir)/glib/libglib-2.0.la             \
        $(NULL)

AM_CPPFLAGS = $(gio_INCLUDES) $(GLIB_DEBUG_FLAGS) -I$(top_builddir)/gio -I$(top_srcdir)/gio
DEFS = -DG_LOG_DOMAIN=\"GLib-GIO\" -DTEST_SERVICES=\""$(abs_top_builddir)/gio/tests/services"\"
AM_CFLAGS = $(GLIB_WARN_CFLAGS)

# -----------------------------------------------------------------------------
#  Test programs buildable on all platforms

test_programs = \
        appmonitor                              \
        async-close-output-stream               \
        async-splice-output-stream              \
        buffered-input-stream                   \
        buffered-output-stream                  \
        cancellable                             \
        contexts                                \
        contenttype                             \
        converter-stream                        \
        credentials                             \
        data-input-stream                       \
        data-output-stream                      \
        defaultvalue                            \
        fileattributematcher                    \
        filter-streams                          \
        giomodule                               \
        gsubprocess                             \
        g-file                                  \
        g-file-info                             \
        g-icon                                  \
        gdbus-addresses                         \
        gdbus-message                           \
        inet-address                            \
        io-stream                               \
        memory-input-stream                     \
        memory-output-stream                    \
        monitor                                 \
        network-address                         \
        network-monitor                         \
        permission                              \
        pollable                                \
        proxy-test                              \
        readwrite                               \
        simple-async-result                     \
        simple-proxy                            \
        sleepy-stream                           \
        socket                                  \
        socket-listener                         \
        socket-service                          \
        srvtarget                               \
        task                                    \
        tls-interaction                         \
        vfs                                     \
        volumemonitor                           \
        glistmodel                              \
        testfilemonitor                         \
        $(NULL)

uninstalled_test_programs = \
        $(NULL)

dist_test_data = \
        contexts.c                              \
        g-icon.c                                \
        $(NULL)

test_data = \
        $(NULL)

uninstalled_test_extra_programs = \
        gio-du                                  \
        echo-server                             \
        filter-cat                              \
        gapplication-example-actions            \
        gapplication-example-cmdline            \
        gapplication-example-cmdline2           \
        gapplication-example-cmdline3           \
        gapplication-example-dbushooks          \
        gapplication-example-open               \
        gdbus-example-export                    \
        gdbus-example-own-name                  \
        gdbus-example-peer                      \
        gdbus-example-proxy-subclass            \
        gdbus-example-server                    \
        gdbus-example-subtree                   \
        gdbus-example-watch-name                \
        gdbus-example-watch-proxy               \
        gsubprocess-testprog                    \
        httpd                                   \
        proxy                                   \
        resolver                                \
        send-data                               \
        socket-server                           \
        $(NULL)

test_extra_programs = \
        gdbus-connection-flush-helper           \
        gdbus-testserver                        \
        $(NULL)

dist_uninstalled_test_data += $(addprefix schema-tests/,$(schema_tests))
schema_tests = \
        array-default-not-in-choices.gschema.xml        \
        bad-choice.gschema.xml                          \
        bad-key.gschema.xml                             \
        bad-key2.gschema.xml                            \
        bad-key3.gschema.xml                            \
        bad-key4.gschema.xml                            \
        bad-type.gschema.xml                            \
        bare-alias.gschema.xml                          \
        choice-alias.gschema.xml                        \
        choice-bad.gschema.xml                          \
        choice-badtype.gschema.xml                      \
        choice-invalid-alias.gschema.xml                \
        choice-missing-value.gschema.xml                \
        choice-shadowed-alias.gschema.xml               \
        choice-upside-down.gschema.xml                  \
        choice.gschema.xml                              \
        choices-wrong-type.gschema.xml                  \
        default-in-aliases.gschema.xml                  \
        default-not-in-choices.gschema.xml              \
        default-out-of-range.gschema.xml                \
        description-xmllang.gschema.xml                 \
        empty-key.gschema.xml                           \
        enum-with-aliases.gschema.xml                   \
        enum-with-bad-default.gschema.xml               \
        enum-with-chained-alias.gschema.xml             \
        enum-with-choice.gschema.xml                    \
        enum-with-invalid-alias.gschema.xml             \
        enum-with-repeated-alias.gschema.xml            \
        enum-with-repeated-nick.gschema.xml             \
        enum-with-repeated-value.gschema.xml            \
        enum-with-shadow-alias.gschema.xml              \
        enum.gschema.xml                                \
        extend-and-shadow-indirect.gschema.xml          \
        extend-and-shadow.gschema.xml                   \
        extend-missing.gschema.xml                      \
        extend-nonlist.gschema.xml                      \
        extend-self.gschema.xml                         \
        extend-wrong-list-indirect.gschema.xml          \
        extend-wrong-list.gschema.xml                   \
        extending.gschema.xml                           \
        flags-aliased-default.gschema.xml               \
        flags-bad-default.gschema.xml                   \
        flags-more-than-one-bit.gschema.xml             \
        flags-with-enum-attr.gschema.xml                \
        flags-with-enum-tag.gschema.xml                 \
        from-docs.gschema.xml                           \
        incomplete-list.gschema.xml                     \
        inherit-gettext-domain.gschema.xml              \
        invalid-path.gschema.xml                        \
        key-in-list-indirect.gschema.xml                \
        key-in-list.gschema.xml                         \
        list-of-missing.gschema.xml                     \
        missing-quotes.gschema.xml                      \
        no-default.gschema.xml                          \
        overflow.gschema.xml                            \
        override-missing.gschema.xml                    \
        override-range-error.gschema.xml                \
        override-then-key.gschema.xml                   \
        override-twice.gschema.xml                      \
        override-type-error.gschema.xml                 \
        override.gschema.xml                            \
        range-badtype.gschema.xml                       \
        range-default-high.gschema.xml                  \
        range-default-low.gschema.xml                   \
        range-high-default.gschema.xml                  \
        range-low-default.gschema.xml                   \
        range-missing-max.gschema.xml                   \
        range-missing-min.gschema.xml                   \
        range-parse-error.gschema.xml                   \
        range-wrong-type.gschema.xml                    \
        range.gschema.xml                               \
        summary-xmllang.gschema.xml                     \
        summary-xmllang-and-attrs.gschema.xml           \
        wrong-category.gschema.xml                      \
        $(NULL)

test_programs += thumbnail-verification
dist_test_data += $(thumbnail_data_files)
thumbnail_data_files = $(addprefix thumbnails/,$(thumbnail_tests))
thumbnail_tests = \
        bad-header.png \
        empty-key.png \
        header-and-chunk-size.png \
        header-only.png \
        huge-chunk-size.png \
        mtime-zero.png \
        no-text-data.png \
        overlong-value.png \
        uri-mismatch.png \
        valid.png \
        valid-no-size.png \
        $(NULL)

test_programs += tls-certificate
tls_certificate_SOURCES = \
        tls-certificate.c                       \
        gtesttlsbackend.c                       \
        gtesttlsbackend.h
dist_test_data += $(cert_data_files)
cert_data_files = $(addprefix cert-tests/,$(cert_tests))
cert_tests = \
        cert1.pem       \
        cert2.pem       \
        cert3.pem       \
        cert-key.pem    \
        cert-list.pem   \
        key8.pem        \
        key-cert.pem    \
        key.pem         \
        nothing.pem     \
        $(NULL)

uninstalled_test_extra_programs += socket-client
socket_client_SOURCES = \
        socket-client.c                         \
        gtlsconsoleinteraction.c                \
        gtlsconsoleinteraction.h
EXTRA_DIST += socket-common.c

uninstalled_test_extra_programs += gdbus-daemon
nodist_gdbus_daemon_SOURCES = \
        $(top_builddir)/gio/gdbus-daemon-generated.c
gdbus_daemon_SOURCES = \
        gdbus-daemon.c                          \
        $(top_srcdir)/gio/gdbusdaemon.c

# -----------------------------------------------------------------------------
#  Test programs buildable on UNIX only

if OS_UNIX
test_programs += \
        file                                    \
        gdbus-peer-object-manager               \
        gdbus-unix-addresses                    \
        live-g-file                             \
        socket-address                          \
        stream-rw_all                           \
        unix-fd                                 \
        unix-streams                            \
        $(NULL)

test_extra_programs += \
        basic-application                       \
        dbus-launch                             \
        $(NULL)

# Uninstalled because of the check-for-executable logic in DesktopAppInfo unable to find the installed executable
uninstalled_test_programs += \
        appinfo                                 \
        desktop-app-info                        \
        $(NULL)

home_desktop_files = \
        epiphany-weather-for-toronto-island-9c6a4e022b17686306243dada811d550d25eb1fb.desktop    \
        eog.desktop

usr_desktop_files = \
        baobab.desktop                          \
        cheese.desktop                          \
        dconf-editor.desktop                    \
        eog.desktop                             \
        evince-previewer.desktop                \
        evince.desktop                          \
        file-roller.desktop                     \
        gcr-prompter.desktop                    \
        gcr-viewer.desktop                      \
        gedit.desktop                           \
        glade.desktop                           \
        gnome-clocks.desktop                    \
        gnome-contacts.desktop                  \
        gnome-font-viewer.desktop               \
        gnome-music.desktop                     \
        gnome-terminal.desktop                  \
        gucharmap.desktop                       \
        kde4/dolphin.desktop                    \
        kde4/kate.desktop                       \
        kde4/konqbrowser.desktop                \
        kde4/okular.desktop                     \
        mimeinfo.cache                          \
        nautilus-autorun-software.desktop       \
        nautilus-classic.desktop                \
        nautilus-connect-server.desktop         \
        nautilus.desktop                        \
        totem.desktop                           \
        yelp.desktop

dist_test_data += \
        $(addprefix desktop-files/usr/applications/,$(usr_desktop_files))       \
        $(addprefix desktop-files/home/applications/,$(home_desktop_files))

dist_test_data += \
        appinfo-test-actions.desktop            \
        appinfo-test-gnome.desktop              \
        appinfo-test-notgnome.desktop           \
        appinfo-test.desktop                    \
        appinfo-test2.desktop                   \
        file.c                                  \
        org.gtk.test.dbusappinfo.desktop        \
        x-content/image-dcf/DCIM/Camera/20130831_203925.jpg \
        x-content/image-dcf/DCIM/Camera/20130831_203928.jpg \
        x-content/unix-software/autorun.sh      \
        x-content/win32-software/autorun.exe    \
        $(NULL)

test_extra_programs += \
        appinfo-test                            \
        apps                                    \
        $(NULL)

uninstalled_test_extra_programs += \
        gdbus-example-unix-fd-client            \
        $(NULL)

test_programs += mimeapps
clean-local: clean-mimeapps
clean-mimeapps:
        rm -rf xdgdatadir xdgdatahome xdgconfighome

uninstalled_test_programs += gsettings gschema-compile
gsettings_DEPENDENCIES = test.mo
CLEANFILES += test.mo de/LC_MESSAGES/test.mo keyfile/gsettings.store
gsettings_CFLAGS = $(AM_CFLAGS) -DSRCDIR=\"$(abs_srcdir)\"
test.mo: de.po
        $(AM_V_GEN) $(MSGFMT) -o test.mo $(srcdir)/de.po; \
        $(MKDIR_P) de/LC_MESSAGES; \
        cp -f test.mo de/LC_MESSAGES
EXTRA_DIST += de.po
dist_uninstalled_test_data += \
        org.gtk.test.gschema.xml.orig           \
        org.gtk.schemasourcecheck.gschema.xml   \
        testenum.h                              \
        enums.xml.template
# Generated while running the testcase itself...
CLEANFILES += \
        org.gtk.test.gschema.xml        \
        org.gtk.test.enums.xml          \
        gsettings.store                 \
        gschemas.compiled               \
        schema-source/gschemas.compiled

test_programs += gdbus-connection-flush
gdbus_connection_flush_SOURCES = \
        gdbus-connection-flush.c                \
        test-io-stream.c                        \
        test-io-stream.h                        \
        test-pipe-unix.c                        \
        test-pipe-unix.h

test_programs += gdbus-non-socket
gdbus_non_socket_SOURCES = \
        gdbus-non-socket.c                      \
        gdbus-tests.c                           \
        gdbus-tests.h                           \
        test-io-stream.c                        \
        test-io-stream.h                        \
        test-pipe-unix.c                        \
        test-pipe-unix.h

# These three are manual-run tests because they need a session bus but don't bring one up themselves
uninstalled_test_extra_programs += gdbus-example-objectmanager-client
gdbus_example_objectmanager_client_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD)

uninstalled_test_extra_programs += gdbus-example-objectmanager-server
gdbus_example_objectmanager_server_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD)

test_extra_programs += gsubprocess-testprog

uninstalled_test_extra_programs += gdbus-test-fixture
gdbus_test_fixture_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD)

# This is peer to peer so it doesn't need a session bus (so we can run it normally)
test_programs += gdbus-peer
gdbus_peer_LDADD = gdbus-object-manager-example/libgdbus-example-objectmanager.la $(LDADD)

# This test is currently unreliable
test_extra_programs += gdbus-overflow

# -----------------------------------------------------------------------------
#  Test programs that need to bring up a session bus (requires dbus-daemon)

if HAVE_DBUS_DAEMON
gdbus_sessionbus_sources = gdbus-sessionbus.c gdbus-sessionbus.h gdbus-tests.h gdbus-tests.c

test_programs += \
        actions                                 \
        dbus-appinfo                            \
        gapplication                            \
        gdbus-auth                              \
        gdbus-bz627724                          \
        gdbus-close-pending                     \
        gdbus-connection                        \
        gdbus-connection-loss                   \
        gdbus-connection-slow                   \
        gdbus-error                             \
        gdbus-exit-on-close                     \
        gdbus-export                            \
        gdbus-introspection                     \
        gdbus-names                             \
        gdbus-proxy                             \
        gdbus-proxy-threads                     \
        gdbus-proxy-well-known-name             \
        gdbus-test-codegen                      \
        gdbus-test-codegen-old                  \
        gdbus-threading                         \
        gmenumodel                              \
        gnotification                           \
        $(NULL)

gdbus_proxy_threads_CFLAGS = $(AM_CFLAGS) $(DBUS1_CFLAGS)
actions_SOURCES                          = $(gdbus_sessionbus_sources) actions.c
dbus_appinfo_SOURCES                     = $(gdbus_sessionbus_sources) dbus-appinfo.c
gapplication_SOURCES                     = $(gdbus_sessionbus_sources) gapplication.c
gdbus_auth_SOURCES                       = $(gdbus_sessionbus_sources) gdbus-auth.c
gdbus_bz627724_SOURCES                   = $(gdbus_sessionbus_sources) gdbus-bz627724.c
gdbus_close_pending_SOURCES              = $(gdbus_sessionbus_sources) gdbus-close-pending.c
gdbus_connection_SOURCES                 = $(gdbus_sessionbus_sources) gdbus-connection.c
gdbus_connection_loss_SOURCES            = $(gdbus_sessionbus_sources) gdbus-connection-loss.c
gdbus_connection_slow_SOURCES            = $(gdbus_sessionbus_sources) gdbus-connection-slow.c
gdbus_error_SOURCES                      = $(gdbus_sessionbus_sources) gdbus-error.c
gdbus_exit_on_close_SOURCES              = $(gdbus_sessionbus_sources) gdbus-exit-on-close.c
gdbus_export_SOURCES                     = $(gdbus_sessionbus_sources) gdbus-export.c
gdbus_introspection_SOURCES              = $(gdbus_sessionbus_sources) gdbus-introspection.c
gdbus_names_SOURCES                      = $(gdbus_sessionbus_sources) gdbus-names.c
gdbus_proxy_SOURCES                      = $(gdbus_sessionbus_sources) gdbus-proxy.c
gdbus_proxy_threads_SOURCES              = $(gdbus_sessionbus_sources) gdbus-proxy-threads.c
gdbus_proxy_well_known_name_SOURCES      = $(gdbus_sessionbus_sources) gdbus-proxy-well-known-name.c
gdbus_test_codegen_SOURCES               = $(gdbus_sessionbus_sources) gdbus-test-codegen.c
nodist_gdbus_test_codegen_SOURCES        = gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h
gdbus_test_codegen_old_SOURCES           = $(gdbus_sessionbus_sources) gdbus-test-codegen.c
nodist_gdbus_test_codegen_old_SOURCES    = gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h
gdbus_test_codegen_old_CPPFLAGS          = $(AM_CPPFLAGS) -DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36 -DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36
gdbus_threading_SOURCES                  = $(gdbus_sessionbus_sources) gdbus-threading.c
gmenumodel_SOURCES                       = $(gdbus_sessionbus_sources) gmenumodel.c
gnotification_SOURCES                    = $(gdbus_sessionbus_sources) gnotification.c gnotification-server.h gnotification-server.c

BUILT_SOURCES += gdbus-test-codegen-generated.c gdbus-test-codegen-generated.h
gdbus-test-codegen.o: gdbus-test-codegen-generated.h
gdbus-test-codegen-generated.h: test-codegen.xml Makefile $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen
        $(AM_V_GEN) UNINSTALLED_GLIB_SRCDIR=$(top_srcdir) \
                UNINSTALLED_GLIB_BUILDDIR=$(top_builddir) \
                $(PYTHON) $(top_builddir)/gio/gdbus-2.0/codegen/gdbus-codegen \
                --interface-prefix org.project. \
                --generate-c-code gdbus-test-codegen-generated \
                --c-generate-object-manager \
                --c-namespace Foo_iGen \
                --generate-docbook gdbus-test-codegen-generated-doc \
                --annotate "org.project.Bar" Key1 Value1 \
                --annotate "org.project.Bar" org.gtk.GDBus.Internal Value2 \
                --annotate "org.project.Bar.HelloWorld()" Key3 Value3 \
                --annotate "org.project.Bar::TestSignal" Key4 Value4 \
                --annotate "org.project.Bar:ay" Key5 Value5 \
                --annotate "org.project.Bar.TestPrimitiveTypes()[val_int32]" Key6 Value6 \
                --annotate "org.project.Bar.TestPrimitiveTypes()[ret_uint32]" Key7 Value7 \
                --annotate "org.project.Bar::TestSignal[array_of_strings]" Key8 Value8 \
                $(srcdir)/test-codegen.xml \
                $(NULL)
gdbus-test-codegen-generated.c: gdbus-test-codegen-generated.h
        @: # Generated as side-effect of .h

EXTRA_DIST += test-codegen.xml
CLEANFILES += gdbus-test-codegen-generated.[ch] gdbus-test-codegen-generated-doc-*.xml
endif # OS_UNIX
endif # HAVE_DBUS_DAEMON

tls_interaction_SOURCES = tls-interaction.c gtesttlsbackend.c gtesttlsbackend.h

# -----------------------------------------------------------------------------

if OS_WIN32
test_programs += win32-streams
endif

if PLATFORM_WIN32
no_undefined = -no-undefined
endif

if HAVE_DBUS1
test_programs += gdbus-serialization
gdbus_serialization_CFLAGS = $(AM_CFLAGS) $(DBUS1_CFLAGS)
gdbus_serialization_LDADD = $(LDADD) $(DBUS1_LIBS)
gdbus_serialization_SOURCES = \
        gdbus-serialization.c                   \
        gdbus-tests.h                           \
        gdbus-tests.c
endif

if HAVE_GCC
test_programs += \
        autoptr                         \
        $(NULL)
endif

# -----------------------------------------------------------------------------
#  The resources test is a bit more complicated, and we cannot build it when
#  cross-compiling GIO because it requires running a binary...

if !CROSS_COMPILING
test_programs += resources
resources_SOURCES = resources.c
nodist_resources_SOURCES = test_resources.c test_resources2.c test_resources2.h
resources_DEPENDENCIES = test.gresource

test_ltlibraries += libresourceplugin.la
libresourceplugin_la_SOURCES = resourceplugin.c plugin_resources.c
libresourceplugin_la_LDFLAGS = -avoid-version -module -export-dynamic $(no_undefined)
libresourceplugin_la_LIBADD = $(LDADD)

test_data += test.gresource

# libtool contains a bug whereby the created .la file doesn't contain the correct dlname='' in the case that
# you're building a library but not installing it.  This is apparently because the only considered use for an
# uninstalled library is as a convenience library for linking (despite the fact that we give -module).  The lack
# of dlname='' in the .la trips up libltdl and GModule as well.  We can trick libtool into believing that we
# will install the module by giving it a bogus -rpath for the uninstalled cases.
#
# See http://lists.gnu.org/archive/html/bug-libtool/2013-05/msg00009.html
if !ENABLE_INSTALLED_TESTS
libresourceplugin_la_LDFLAGS += -rpath /
endif

glib_compile_resources=$(top_builddir)/gio/glib-compile-resources

resources.o: test_resources2.h
test_resources.c: test2.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test2.gresource.xml)
        $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_test1 $<

test_resources2.h test_resources2.c: test3.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test3.gresource.xml)
        $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate --c-name _g_test2 --manual-register $<

plugin_resources.c: test4.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test4.gresource.xml)
        $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) --generate-source --c-name _g_plugin $<

test.gresource: test.gresource.xml Makefile $(shell $(glib_compile_resources) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/test.gresource.xml)
        $(AM_V_GEN) $(glib_compile_resources) --target=$@ --sourcedir=$(srcdir) $<

EXTRA_DIST += test.gresource.xml test1.txt test2.gresource.xml test2.txt test3.gresource.xml test3.txt test4.gresource.xml
CLEANFILES += test_resources.c test_resources2.[ch] plugin_resources.c test.gresource
endif # !CROSS_COMPILING

BUILT_SOURCES += giotypefuncs.c

giotypefuncs.c: Makefile
        $(AM_V_GEN) echo '#include <gio/gio.h>' > xgen-giosrc.c && \
          echo "G_GNUC_BEGIN_IGNORE_DEPRECATIONS" > xgen-gio && \
          ${CPP} $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-giosrc.c | \
          $(GREP) -o '\bg_[A-Za-z0-9_]*_get_type\b' | \
          $(GREP) -v 'g_io_extension_get_type\|g_variant_get_type' | \
          LC_ALL=C sort | uniq | \
          $(SED) -e 's/^/*tp++ = /' -e 's/$$/ ();/' >> xgen-gio && \
          cp xgen-gio $@ # && rm -f xgen-gio xgen-giosrc.c

CLEANFILES += xgen-giosrc.c xgen-gio giotypefuncs.c

if ENABLE_INSTALLED_TESTS
if OS_UNIX
install-data-hook:
        $(AM_V_at) chmod a+x $(DESTDIR)$(installed_testdir)/x-content/win32-software/autorun.exe
endif
endif