Merge branch 'matthiasc/for-main' into 'main'

tests: Stop copying the tool tests

See merge request GNOME/gtk!5947
This commit is contained in:
Matthias Clasen
2023-05-10 10:38:07 +00:00
14 changed files with 100 additions and 18 deletions

View File

@@ -187,7 +187,7 @@
"--libdir=/app/lib",
"-Dvulkan=disabled",
"-Dbuildtype=debugoptimized",
"-Dprofile=devel"
"-Ddemo-profile=devel"
],
"sources" : [
{

View File

@@ -116,7 +116,7 @@
"--libdir=/app/lib",
"-Dvulkan=disabled",
"-Dbuildtype=debugoptimized",
"-Dprofile=devel"
"-Ddemo-profile=devel"
],
"sources" : [
{

View File

@@ -116,7 +116,7 @@
"--libdir=/app/lib",
"-Dvulkan=disabled",
"-Dbuildtype=debugoptimized",
"-Dprofile=devel"
"-Ddemo-profile=devel"
],
"sources" : [
{

View File

@@ -116,7 +116,7 @@
"--libdir=/app/lib",
"-Dvulkan=disabled",
"-Dbuildtype=debugoptimized",
"-Dprofile=devel"
"-Ddemo-profile=devel"
],
"sources" : [
{

View File

@@ -1,5 +1,5 @@
gen_demo_header = find_program('../build-aux/meson/gen-demo-header.py')
demo_profile = get_option('profile')
demo_profile = get_option('demo-profile')
demo_conf_h = declare_dependency(
sources: custom_target('demo-header',

View File

@@ -7,7 +7,7 @@ project('gtk', 'c',
# https://github.com/mesonbuild/meson/issues/2289
'c_std=gnu99',
],
meson_version : '>= 0.60.0',
meson_version : '>= 0.63.0',
license: 'LGPL-2.1-or-later')
# keep these numbers in sync with wrap files where there exist
@@ -753,7 +753,7 @@ subdir('gdk')
subdir('gsk')
subdir('gtk')
subdir('modules')
if get_option('demos')
if get_option('build-demos')
subdir('demos')
endif
subdir('tools')
@@ -860,7 +860,7 @@ if not meson.is_cross_build()
gnome.post_install(
glib_compile_schemas: true,
gio_querymodules: gio_module_dirs,
gtk_update_icon_cache: get_option('demos'),
gtk_update_icon_cache: get_option('build-demos'),
)
else
message('Not executing post-install steps automatically when cross compiling')
@@ -901,7 +901,7 @@ summary('Documentation', get_option('gtk_doc'), section: 'Build')
summary('Man pages', get_option('man-pages'), section: 'Build')
summary('Testsuite', get_option('build-testsuite'), section: 'Build')
summary('Tests', get_option('build-tests'), section: 'Build')
summary('Demos', get_option('demos'), section: 'Build')
summary('Demos', get_option('build-demos'), section: 'Build')
summary('Examples', get_option('build-examples'), section: 'Build')
# Directories

View File

@@ -108,7 +108,13 @@ option('introspection',
# Demos, examples and tests
option('demos',
option('demo-profile',
type: 'combo',
choices: [ 'default', 'devel' ],
value: 'default',
description : 'Profile to use for demos')
option('build-demos',
type: 'boolean',
value: true,
description : 'Build demo programs')
@@ -117,7 +123,12 @@ option('profile',
type: 'combo',
choices: [ 'default', 'devel' ],
value: 'default',
description : 'Profile to use for demos')
deprecated: 'demo-profile')
option('demos',
type: 'boolean',
value: true,
deprecated: 'build-demos')
option('build-testsuite',
type: 'boolean',

View File

@@ -32,6 +32,36 @@ test_constants (void)
}
}
static void
test_constants_c (void)
{
struct {
float f;
guint16 h;
} tests[] = {
{ 0.0, FP16_ZERO },
{ 1.0, FP16_ONE },
{ -1.0, FP16_MINUS_ONE },
};
for (int i = 0; i < G_N_ELEMENTS (tests); i++)
{
float f[4];
guint16 h[4];
memset (f, 0, sizeof (f));
f[0] = tests[i].f;
float_to_half4_c (f, h);
g_assert_cmpuint (h[0], ==, tests[i].h);
memset (h, 0, sizeof (h));
h[0] = tests[i].h;
half_to_float4_c (h, f);
g_assert_cmpfloat (f[0], ==, tests[i].f);
}
}
static float
random_representable_float (void)
{
@@ -69,6 +99,26 @@ test_roundtrip (void)
}
}
static void
test_roundtrip_c (void)
{
for (int i = 0; i < 100; i++)
{
float f[4];
float f2[4];
guint16 h[4];
f2[0] = random_representable_float ();
memset (f, 0, sizeof (f));
f[0] = f2[0];
float_to_half4_c (f, h);
half_to_float4_c (h, f2);
g_assert_cmpfloat (f[0], ==, f2[0]);
}
}
/* Test that the array version work as expected,
* in particular with unaligned boundaries.
*/
@@ -95,6 +145,29 @@ test_many (void)
}
}
static void
test_many_c (void)
{
for (int i = 0; i < 100; i++)
{
int size = g_random_int_range (100, 200);
int offset = g_random_int_range (0, 20);
guint16 *h = g_new0 (guint16, size);
float *f = g_new0 (float, size);
float *f2 = g_new0 (float, size);
for (int j = offset; j < size; j++)
f[j] = random_representable_float ();
float_to_half_c (f + offset, h + offset, size - offset);
half_to_float_c (h + offset, f2 + offset, size - offset);
for (int j = offset; j < size; j++)
g_assert_cmpfloat (f[j], ==, f2[j]);
}
}
int
main (int argc, char *argv[])
{
@@ -103,6 +176,9 @@ main (int argc, char *argv[])
g_test_add_func ("/half-float/constants", test_constants);
g_test_add_func ("/half-float/roundtrip", test_roundtrip);
g_test_add_func ("/half-float/many", test_many);
g_test_add_func ("/half-float/constants/c", test_constants_c);
g_test_add_func ("/half-float/roundtrip/c", test_roundtrip_c);
g_test_add_func ("/half-float/many/c", test_many_c);
return g_test_run ();
}

View File

@@ -19,7 +19,6 @@ setups = [
'backend': 'wayland', 'if': wayland_enabled,
'env': ['GDK_DEBUG=gl-gles,default-settings',
'MESA_GLES_VERSION_OVERRIDE=2.0',
'MESA_EXTENSION_OVERRIDE=-GL_OES_vertex_array_object',
'GSK_MAX_TEXTURE_SIZE=1024',
], },
{ 'backend': 'win32', 'if': os_win32 },

View File

@@ -3,12 +3,8 @@ if bash.found()
test_env = environment()
foreach t : ['simplify', 'simplify-3to4', 'validate', 'settings']
configure_file(output: t,
input: '@0@.in'.format(t),
copy: true,
)
test(t, bash,
args: t,
test(t,
find_program(t, dirs: meson.current_source_dir()),
workdir: meson.current_build_dir(),
protocol: 'tap',
env: [