Enable tests, fixing the existing ones to use the current API
This also involved building a static library for the application for tests to link to. The main application executable also links to it.
This commit is contained in:
		@ -4,7 +4,11 @@ project(
 | 
			
		||||
    version: '1.0.10',
 | 
			
		||||
    license: 'GPLv3',
 | 
			
		||||
    meson_version: '>=0.49.0',
 | 
			
		||||
    default_options: [ 'warning_level=1', 'buildtype=debugoptimized', 'c_std=gnu11' ],
 | 
			
		||||
    default_options: [
 | 
			
		||||
        'warning_level=1',
 | 
			
		||||
        'buildtype=debugoptimized',
 | 
			
		||||
        'c_std=gnu11'
 | 
			
		||||
    ]
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
i18n = import('i18n')
 | 
			
		||||
@ -43,3 +47,4 @@ subdir('protocols')
 | 
			
		||||
subdir('eek')
 | 
			
		||||
subdir('src')
 | 
			
		||||
subdir('po')
 | 
			
		||||
subdir('tests')
 | 
			
		||||
 | 
			
		||||
@ -1 +1,8 @@
 | 
			
		||||
option('depdatadir', type : 'string', value : '', description : 'System data path. Will be searched for definitions instead of datadir when provided')
 | 
			
		||||
option('depdatadir',
 | 
			
		||||
       type : 'string',
 | 
			
		||||
       value : '',
 | 
			
		||||
       description : 'System data path. Will be searched for definitions instead of datadir when provided')
 | 
			
		||||
 | 
			
		||||
option('tests',
 | 
			
		||||
       type: 'boolean', value: true,
 | 
			
		||||
       description: 'Whether to compile unit tests')
 | 
			
		||||
 | 
			
		||||
@ -4,13 +4,16 @@ dbus_src = gnome.gdbus_codegen(
 | 
			
		||||
    join_paths(meson.source_root() / 'data' / 'dbus', 'sm.puri.OSK0.xml')
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
config_h = configure_file(input: 'config.h.in', output: 'config.h',configuration: conf_data)
 | 
			
		||||
config_h = configure_file(
 | 
			
		||||
    input: 'config.h.in',
 | 
			
		||||
    output: 'config.h',
 | 
			
		||||
    configuration: conf_data
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
sources = [
 | 
			
		||||
  config_h,
 | 
			
		||||
  'imservice.c',
 | 
			
		||||
  'server-context-service.c',
 | 
			
		||||
  'server-main.c',
 | 
			
		||||
  'wayland.c',
 | 
			
		||||
  '../eek/eek.c',
 | 
			
		||||
  '../eek/eek-container.c',
 | 
			
		||||
@ -71,7 +74,7 @@ rslib = static_library(
 | 
			
		||||
  rust_crate_type: 'staticlib'
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
squeekboard = executable('squeekboard',
 | 
			
		||||
libsqueekboard = static_library('libsqueekboard',
 | 
			
		||||
  sources,
 | 
			
		||||
  link_with: rslib,
 | 
			
		||||
  include_directories: [include_directories('..'), include_directories('../eek')],
 | 
			
		||||
@ -84,3 +87,16 @@ squeekboard = executable('squeekboard',
 | 
			
		||||
    '-DEEK_COMPILATION=1'],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
squeekboard = executable('squeekboard',
 | 
			
		||||
  'server-main.c',
 | 
			
		||||
  wl_proto_sources,
 | 
			
		||||
  link_with: libsqueekboard,
 | 
			
		||||
  include_directories: [include_directories('..'), include_directories('../eek')],
 | 
			
		||||
  dependencies: deps,
 | 
			
		||||
  install: true,
 | 
			
		||||
  c_args: [
 | 
			
		||||
    '-DTHEMESDIR="' + pkgdatadir + '/themes"',
 | 
			
		||||
    '-DKEYBOARDSDIR="' + pkgdatadir + '/keyboards"',
 | 
			
		||||
    '-DEEKBOARD_COMPILATION=1',
 | 
			
		||||
    '-DEEK_COMPILATION=1'],
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
@ -30,16 +30,15 @@ test_create (void)
 | 
			
		||||
    section = eek_keyboard_create_section (keyboard);
 | 
			
		||||
    g_assert (EEK_IS_SECTION(section));
 | 
			
		||||
    eek_section_add_row (section, 2, EEK_ORIENTATION_HORIZONTAL);
 | 
			
		||||
    key0 = eek_section_create_key (section, 1, 0, 0);
 | 
			
		||||
    key0 = eek_section_create_key (section, "key0", 1, 0, 0);
 | 
			
		||||
    g_assert (EEK_IS_KEY(key0));
 | 
			
		||||
    key1 = eek_section_create_key (section, 2, 1, 0);
 | 
			
		||||
    key1 = eek_section_create_key (section, "key1", 2, 1, 0);
 | 
			
		||||
    g_assert (EEK_IS_KEY(key1));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
    g_type_init ();
 | 
			
		||||
    g_test_init (&argc, &argv, NULL);
 | 
			
		||||
    g_test_add_func ("/eek-simple-test/create", test_create);
 | 
			
		||||
    return g_test_run ();
 | 
			
		||||
 | 
			
		||||
@ -36,7 +36,9 @@ test_output_parse (void)
 | 
			
		||||
    layout = eek_xml_layout_new ("us", &error);
 | 
			
		||||
    g_assert_no_error (error);
 | 
			
		||||
 | 
			
		||||
    keyboard = eek_keyboard_new (layout, 640, 480);
 | 
			
		||||
    /* We don't need the context service to parse an XML file, so we can pass
 | 
			
		||||
       NULL when creating a keyboard. */
 | 
			
		||||
    keyboard = eek_keyboard_new (NULL, layout, 640, 480);
 | 
			
		||||
    g_object_unref (layout);
 | 
			
		||||
    g_object_unref (keyboard);
 | 
			
		||||
}
 | 
			
		||||
@ -44,7 +46,6 @@ test_output_parse (void)
 | 
			
		||||
int
 | 
			
		||||
main (int argc, char **argv)
 | 
			
		||||
{
 | 
			
		||||
    g_type_init ();
 | 
			
		||||
    g_test_init (&argc, &argv, NULL);
 | 
			
		||||
    gtk_init (&argc, &argv);  /* for gdk_x11_display_get_xdisplay() */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user