diff --git a/tests/lib/GestureControllerTest.vala b/tests/lib/GestureControllerTest.vala index 96c31d93f..705217034 100644 --- a/tests/lib/GestureControllerTest.vala +++ b/tests/lib/GestureControllerTest.vala @@ -201,7 +201,3 @@ public class Gala.GestureControllerTest : MutterTestCase { run_main_loop (); } } - -public int main (string[] args) { - return new Gala.GestureControllerTest ().run (args); -} diff --git a/tests/lib/Main.vala b/tests/lib/Main.vala new file mode 100644 index 000000000..24364aa44 --- /dev/null +++ b/tests/lib/Main.vala @@ -0,0 +1,29 @@ +/* + * Copyright 2026 elementary, Inc. (https://elementary.io) + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +namespace Gala { + public int main (string[] args) { + var test_name = args[1]; + + var test_case = get_test_case (test_name); + + if (test_case == null) { + warning ("TestCase %s not found", test_name); + return 1; + } + + return test_case.run (args); + } + + private TestCase? get_test_case (string name) { + switch (name) { + case "GestureControllerTest": return new GestureControllerTest (); + case "PropertyTargetTest": return new PropertyTargetTest (); + case "SetupTest": return new SetupTest (); + case "SwipeTriggerTest": return new SwipeTriggerTest (); + default: return null; + } + } +} diff --git a/tests/lib/PropertyTargetTest.vala b/tests/lib/PropertyTargetTest.vala index 054da2207..41c41eaa4 100644 --- a/tests/lib/PropertyTargetTest.vala +++ b/tests/lib/PropertyTargetTest.vala @@ -151,7 +151,3 @@ public class Gala.PropertyTargetTest : TestCase { assert_finalize_object (ref target); } } - -public int main (string[] args) { - return new Gala.PropertyTargetTest ().run (args); -} diff --git a/tests/lib/SetupTest.vala b/tests/lib/SetupTest.vala index f90ac1455..16f143165 100644 --- a/tests/lib/SetupTest.vala +++ b/tests/lib/SetupTest.vala @@ -88,7 +88,3 @@ public class Gala.SetupTest : MutterTestCase { assert_cmpint (frames, GT, 0); } } - -public int main (string[] args) { - return new Gala.SetupTest ().run (args); -} diff --git a/tests/lib/SwipeTriggerTest.vala b/tests/lib/SwipeTriggerTest.vala index b937bb3c9..c0d07b81c 100644 --- a/tests/lib/SwipeTriggerTest.vala +++ b/tests/lib/SwipeTriggerTest.vala @@ -56,7 +56,3 @@ public class Gala.SwipeTriggerTest : MutterTestCase { assert_finalize_object (ref trigger); } } - -public int main (string[] args) { - return new Gala.SwipeTriggerTest ().run (args); -} diff --git a/tests/lib/meson.build b/tests/lib/meson.build index aae6fb5f4..a18ad3c35 100644 --- a/tests/lib/meson.build +++ b/tests/lib/meson.build @@ -5,15 +5,26 @@ tests = [ 'SwipeTriggerTest', ] +test_sources = [] foreach test : tests - test_executable = executable( - test, - '@0@.vala'.format(test), - common_test_sources, - gala_lib_sources, - dependencies: gala_base_dep, - install: false, - ) + test_sources += test + '.vala' +endforeach + +lib_test_sources = [ + 'Main.vala' +] - test(test, test_executable, suite: ['Gala', 'Gala/lib'], is_parallel: false) +test_executable = executable( + 'io.elementary.gala.tests', + common_test_sources, + lib_test_sources, + test_sources, + gala_lib_sources, + dependencies: gala_base_dep, + install: false, +) + +foreach test : tests + test(test, test_executable, args: test, suite: ['Gala', 'Gala/lib'], is_parallel: false) endforeach +