diff --git a/meson.build b/meson.build index 4c87f82efcaa4be76ab447fd5f927c01b49eae71..22525e2d0d8deb71620d9dffc3fbef59f398cc13 100644 --- a/meson.build +++ b/meson.build @@ -74,5 +74,5 @@ subdir('lib') subdir('docs') #subdir('modules') #subdir('src') -#subdir('tests') +subdir('tests') #subdir('tools') diff --git a/tests/common/base-test-fixture.h b/tests/common/base-test-fixture.h index f465a977b0b20ba164cf2922be1c783cbaa2a94b..89c4d8c9e8ddce060624013b4d673f20f8ff9eaf 100644 --- a/tests/common/base-test-fixture.h +++ b/tests/common/base-test-fixture.h @@ -127,11 +127,11 @@ wp_base_test_fixture_teardown (WpBaseTestFixture * self) } static G_GNUC_UNUSED void -test_proxy_augment_finish_cb (WpProxy * proxy, GAsyncResult * res, +test_object_activate_finish_cb (WpObject * object, GAsyncResult * res, WpBaseTestFixture * f) { g_autoptr (GError) error = NULL; - gboolean augment_ret = wp_proxy_augment_finish (proxy, res, &error); + gboolean augment_ret = wp_object_activate_finish (object, res, &error); g_assert_no_error (error); g_assert_true (augment_ret); diff --git a/tests/meson.build b/tests/meson.build index 90cbccf215cc667cabf1d196ba7fbc507c5970c9..e943fb326affa7162a2bf859db08e4252a5571a4 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -1,4 +1,4 @@ subdir('wp') subdir('wptoml') -subdir('modules') -subdir('examples') +#subdir('modules') +#subdir('examples') diff --git a/tests/wp/endpoint.c b/tests/wp/endpoint.c index 1643511eae97e4182d4cadccd4b0f304f9571366..9b0e50d460686e9a7276031aa91ec3a64714d58c 100644 --- a/tests/wp/endpoint.c +++ b/tests/wp/endpoint.c @@ -253,14 +253,14 @@ test_endpoint_export_done (WpSessionItem * item, GAsyncResult * res, } static void -test_endpoint_session_bound (WpProxy * session, GAsyncResult * res, +test_endpoint_session_bound (WpObject * session, GAsyncResult * res, TestEndpointFixture *fixture) { g_autoptr (GError) error = NULL; g_debug ("session export done"); - g_assert_true (wp_proxy_augment_finish (session, res, &error)); + g_assert_true (wp_object_activate_finish (session, res, &error)); g_assert_no_error (error); g_assert_true (WP_IS_IMPL_SESSION (session)); @@ -268,15 +268,15 @@ test_endpoint_session_bound (WpProxy * session, GAsyncResult * res, g_main_loop_quit (fixture->base.loop); } -static void -test_endpoint_prop_changed (WpProxy * proxy, - const gchar * id_name, TestEndpointFixture *fixture) -{ - wp_debug_object (proxy, "prop changed: %s", id_name); +// static void +// test_endpoint_prop_changed (WpProxy * proxy, +// const gchar * id_name, TestEndpointFixture *fixture) +// { +// wp_debug_object (proxy, "prop changed: %s", id_name); - if (++fixture->n_events == 3) - g_main_loop_quit (fixture->base.loop); -} +// if (++fixture->n_events == 3) +// g_main_loop_quit (fixture->base.loop); +// } static void test_endpoint_notify_properties (WpEndpoint * endpoint, GParamSpec * param, @@ -302,8 +302,8 @@ test_endpoint_no_props (TestEndpointFixture *fixture, gconstpointer data) g_signal_connect (fixture->export_om, "object-removed", (GCallback) test_endpoint_impl_object_removed, fixture); wp_object_manager_add_interest (fixture->export_om, WP_TYPE_ENDPOINT, NULL); - wp_object_manager_request_proxy_features (fixture->export_om, - WP_TYPE_ENDPOINT, WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); + wp_object_manager_request_object_features (fixture->export_om, + WP_TYPE_ENDPOINT, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.core, fixture->export_om); /* set up the proxy side */ @@ -312,18 +312,18 @@ test_endpoint_no_props (TestEndpointFixture *fixture, gconstpointer data) g_signal_connect (fixture->proxy_om, "object-removed", (GCallback) test_endpoint_proxy_object_removed, fixture); wp_object_manager_add_interest (fixture->proxy_om, WP_TYPE_ENDPOINT, NULL); - wp_object_manager_request_proxy_features (fixture->proxy_om, WP_TYPE_ENDPOINT, - WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); + wp_object_manager_request_object_features (fixture->proxy_om, + WP_TYPE_ENDPOINT, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.client_core, fixture->proxy_om); /* create session */ session = wp_impl_session_new (fixture->base.core); - wp_proxy_augment (WP_PROXY (session), WP_PROXY_FEATURE_BOUND, NULL, + wp_object_activate (WP_OBJECT (session), WP_PROXY_FEATURE_BOUND, NULL, (GAsyncReadyCallback) test_endpoint_session_bound, fixture); /* run until session is bound */ g_main_loop_run (fixture->base.loop); - g_assert_cmpint (wp_proxy_get_features (WP_PROXY (session)), &, + g_assert_cmpint (wp_object_get_active_features (WP_OBJECT (session)), &, WP_PROXY_FEATURE_BOUND); g_assert_cmpint (wp_proxy_get_bound_id (WP_PROXY (session)), >, 0); @@ -348,17 +348,19 @@ test_endpoint_no_props (TestEndpointFixture *fixture, gconstpointer data) /* verify the values on the proxy */ - g_assert_cmphex (wp_proxy_get_features (fixture->proxy_endpoint), ==, - WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); + g_assert_cmphex ( + wp_object_get_active_features (WP_OBJECT (fixture->proxy_endpoint)), ==, + wp_object_get_supported_features (WP_OBJECT (fixture->proxy_endpoint))); g_assert_cmpuint (wp_proxy_get_bound_id (fixture->proxy_endpoint), ==, wp_proxy_get_bound_id (fixture->impl_endpoint)); - g_assert_cmpstr (wp_proxy_get_property (fixture->proxy_endpoint, - "test.property"), ==, "test-value"); + g_assert_cmpstr (wp_pipewire_object_get_property ( + WP_PIPEWIRE_OBJECT (fixture->proxy_endpoint), "test.property"), + ==, "test-value"); { - g_autoptr (WpProperties) props = - wp_proxy_get_global_properties (fixture->proxy_endpoint); + g_autoptr (WpProperties) props = wp_global_proxy_get_global_properties ( + WP_GLOBAL_PROXY (fixture->proxy_endpoint)); g_autofree gchar * session_id = g_strdup_printf ("%u", wp_proxy_get_bound_id (WP_PROXY (session))); @@ -394,14 +396,14 @@ test_endpoint_no_props (TestEndpointFixture *fixture, gconstpointer data) /* verify the property change on both sides */ { - g_autoptr (WpProperties) props = - wp_proxy_get_properties (fixture->impl_endpoint); + g_autoptr (WpProperties) props = wp_pipewire_object_get_properties ( + WP_PIPEWIRE_OBJECT (fixture->impl_endpoint)); g_assert_cmpstr (wp_properties_get (props, "test.property"), ==, "changed-value"); } { - g_autoptr (WpProperties) props = - wp_proxy_get_properties (fixture->proxy_endpoint); + g_autoptr (WpProperties) props = wp_pipewire_object_get_properties ( + WP_PIPEWIRE_OBJECT (fixture->proxy_endpoint)); g_assert_cmpstr (wp_properties_get (props, "test.property"), ==, "changed-value"); } @@ -417,6 +419,7 @@ test_endpoint_no_props (TestEndpointFixture *fixture, gconstpointer data) g_assert_null (fixture->proxy_endpoint); } +#if 0 static void test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data) { @@ -440,8 +443,8 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data) g_signal_connect (fixture->export_om, "object-removed", (GCallback) test_endpoint_impl_object_removed, fixture); wp_object_manager_add_interest (fixture->export_om, WP_TYPE_ENDPOINT, NULL); - wp_object_manager_request_proxy_features (fixture->export_om, - WP_TYPE_ENDPOINT, WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); + wp_object_manager_request_object_features (fixture->export_om, + WP_TYPE_ENDPOINT, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.core, fixture->export_om); /* set up the proxy side */ @@ -450,18 +453,18 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data) g_signal_connect (fixture->proxy_om, "object-removed", (GCallback) test_endpoint_proxy_object_removed, fixture); wp_object_manager_add_interest (fixture->proxy_om, WP_TYPE_ENDPOINT, NULL); - wp_object_manager_request_proxy_features (fixture->proxy_om, WP_TYPE_ENDPOINT, - WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); + wp_object_manager_request_object_features (fixture->proxy_om, + WP_TYPE_ENDPOINT, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.client_core, fixture->proxy_om); /* create session */ session = wp_impl_session_new (fixture->base.core); - wp_proxy_augment (WP_PROXY (session), WP_PROXY_FEATURE_BOUND, NULL, + wp_object_activate (WP_PROXY (session), WP_PROXY_FEATURE_BOUND, NULL, (GAsyncReadyCallback) test_endpoint_session_bound, fixture); /* run until session is bound */ g_main_loop_run (fixture->base.loop); - g_assert_cmpint (wp_proxy_get_features (WP_PROXY (session)), &, + g_assert_cmpint (wp_object_get_active_features (WP_PROXY (session)), &, WP_PROXY_FEATURE_BOUND); g_assert_cmpint (wp_proxy_get_bound_id (WP_PROXY (session)), >, 0); @@ -479,11 +482,11 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data) "node.name", "audiotestsrc.adapter", NULL)); g_assert_nonnull (endpoint->node); - wp_proxy_augment (WP_PROXY (endpoint->node), WP_PROXY_FEATURES_STANDARD, NULL, - (GAsyncReadyCallback) test_proxy_augment_finish_cb, fixture); + wp_object_activate (WP_PROXY (endpoint->node), WP_PROXY_FEATURES_STANDARD, NULL, + (GAsyncReadyCallback) test_object_activate_finish_cb, fixture); g_main_loop_run (fixture->base.loop); - g_assert_cmpint (wp_proxy_get_features (WP_PROXY (endpoint->node)), ==, + g_assert_cmpint (wp_object_get_active_features (WP_PROXY (endpoint->node)), ==, WP_PROXY_FEATURES_STANDARD); /* activate & export the endpoint */ @@ -503,9 +506,9 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data) /* verify features; the endpoint must have also augmented the node */ - g_assert_cmpint (wp_proxy_get_features (WP_PROXY (endpoint->node)), ==, + g_assert_cmpint (wp_object_get_active_features (WP_PROXY (endpoint->node)), ==, WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); - g_assert_cmphex (wp_proxy_get_features (fixture->proxy_endpoint), ==, + g_assert_cmphex (wp_object_get_active_features (fixture->proxy_endpoint), ==, WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); /* verify props */ @@ -723,6 +726,7 @@ test_endpoint_with_props (TestEndpointFixture *fixture, gconstpointer data) g_assert_null (fixture->impl_endpoint); g_assert_null (fixture->proxy_endpoint); } +#endif gint main (gint argc, gchar *argv[]) @@ -732,8 +736,8 @@ main (gint argc, gchar *argv[]) g_test_add ("/wp/endpoint/no-props", TestEndpointFixture, NULL, test_endpoint_setup, test_endpoint_no_props, test_endpoint_teardown); - g_test_add ("/wp/endpoint/with-props", TestEndpointFixture, NULL, - test_endpoint_setup, test_endpoint_with_props, test_endpoint_teardown); + // g_test_add ("/wp/endpoint/with-props", TestEndpointFixture, NULL, + // test_endpoint_setup, test_endpoint_with_props, test_endpoint_teardown); return g_test_run (); } diff --git a/tests/wp/meson.build b/tests/wp/meson.build index 11767a46605c89e410d2a8d614b649bfaaf58dd9..9afd313d0113f577f90d44ea90b82c4f5031d305 100644 --- a/tests/wp/meson.build +++ b/tests/wp/meson.build @@ -43,12 +43,12 @@ test( env: common_env, ) -test( - 'test-props', - executable('test-props', 'props.c', - dependencies: common_deps, c_args: common_args), - env: common_env, -) +# test( +# 'test-props', +# executable('test-props', 'props.c', +# dependencies: common_deps, c_args: common_args), +# env: common_env, +# ) test( 'test-proxy', diff --git a/tests/wp/metadata.c b/tests/wp/metadata.c index 6e83be199cfc288619f1388ff13d48a41051956c..8ab79e92fc8ebe914ecf4a5c0c96dfb925680c92 100644 --- a/tests/wp/metadata.c +++ b/tests/wp/metadata.c @@ -98,14 +98,14 @@ test_metadata_basic_proxy_object_removed (WpObjectManager *om, } static void -test_metadata_basic_export_done (WpProxy * metadata, GAsyncResult * res, +test_metadata_basic_export_done (WpObject * metadata, GAsyncResult * res, TestFixture *fixture) { g_autoptr (GError) error = NULL; g_debug ("export done"); - g_assert_true (wp_proxy_augment_finish (metadata, res, &error)); + g_assert_true (wp_object_activate_finish (metadata, res, &error)); g_assert_no_error (error); g_assert_true (WP_IS_IMPL_METADATA (metadata)); @@ -140,8 +140,8 @@ test_metadata_basic (TestFixture *fixture, gconstpointer data) (GCallback) test_metadata_basic_exported_object_removed, fixture); wp_object_manager_add_interest (fixture->export_om, WP_TYPE_IMPL_METADATA, NULL); - wp_object_manager_request_proxy_features (fixture->export_om, - WP_TYPE_IMPL_METADATA, WP_PROXY_FEATURES_STANDARD); + wp_object_manager_request_object_features (fixture->export_om, + WP_TYPE_IMPL_METADATA, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.core, fixture->export_om); /* set up the proxy side */ @@ -150,8 +150,8 @@ test_metadata_basic (TestFixture *fixture, gconstpointer data) g_signal_connect (fixture->proxy_om, "object-removed", (GCallback) test_metadata_basic_proxy_object_removed, fixture); wp_object_manager_add_interest (fixture->proxy_om, WP_TYPE_METADATA, NULL); - wp_object_manager_request_proxy_features (fixture->proxy_om, - WP_TYPE_METADATA, WP_PROXY_FEATURES_STANDARD); + wp_object_manager_request_object_features (fixture->proxy_om, + WP_TYPE_METADATA, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.client_core, fixture->proxy_om); /* create metadata */ @@ -187,7 +187,7 @@ test_metadata_basic (TestFixture *fixture, gconstpointer data) } /* do export */ - wp_proxy_augment (WP_PROXY (metadata), WP_PROXY_FEATURES_STANDARD, NULL, + wp_object_activate (WP_OBJECT (metadata), WP_OBJECT_FEATURES_ALL, NULL, (GAsyncReadyCallback) test_metadata_basic_export_done, fixture); /* run until objects are created and features are cached */ diff --git a/tests/wp/object-interest.c b/tests/wp/object-interest.c index 9a14bc0604ab5f1d743912d5b86f8fa3698be41e..b27f28998bc0ef50ab8e8934e3bfe09275a7490c 100644 --- a/tests/wp/object-interest.c +++ b/tests/wp/object-interest.c @@ -261,7 +261,7 @@ test_object_interest_teardown (TestFixture * f, gconstpointer data) g_assert_true (ret); \ \ g_assert_true (wp_object_interest_matches_full (interest, \ - WP_TYPE_PROXY, NULL, props, global_props)); \ + WP_TYPE_NODE, NULL, props, global_props)); \ \ g_clear_pointer (&interest, wp_object_interest_free); \ } G_STMT_END @@ -278,7 +278,7 @@ test_object_interest_teardown (TestFixture * f, gconstpointer data) g_assert_true (ret); \ \ g_assert_false (wp_object_interest_matches_full (interest, \ - WP_TYPE_PROXY, NULL, props, global_props)); \ + WP_TYPE_NODE, NULL, props, global_props)); \ \ g_clear_pointer (&interest, wp_object_interest_free); \ } G_STMT_END @@ -654,42 +654,42 @@ test_object_interest_pw_props (TestFixture * f, gconstpointer data) "format.dsp", "32 bit float mono audio", NULL); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "~(ii)", 0, 100, NULL); TEST_EXPECT_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "=i", 11, NULL); TEST_EXPECT_NO_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "format.dsp", "#s", "*audio*", NULL); TEST_EXPECT_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "port.physical", "=b", TRUE, NULL); TEST_EXPECT_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "audio.channel", "c(sss)", "MONO", "FL", "FR", NULL); TEST_EXPECT_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "audio.volume", "=d", 0.8, NULL); TEST_EXPECT_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "audio.volume", "~(dd)", 0.0, 0.5, NULL); TEST_EXPECT_NO_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY, "object.id", "=i", 10, NULL); TEST_EXPECT_MATCH_WP_PROPS (i, props, global_props); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY, "object.id", "+", WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY, "format.dsp", "+", WP_CONSTRAINT_TYPE_PW_GLOBAL_PROPERTY, "port.name", "-", @@ -706,81 +706,81 @@ test_object_interest_validate (TestFixture * f, gconstpointer data) g_autoptr (WpObjectInterest) i = NULL; /* invalid type */ - i = wp_object_interest_new (WP_TYPE_PROXY, 32, "object.id", "+", NULL); + i = wp_object_interest_new (WP_TYPE_NODE, 32, "object.id", "+", NULL); TEST_EXPECT_VALIDATION_ERROR (i); - /* non-WpProxy type with pw property constraint */ + /* non-WpPipewireObject type with pw property constraint */ i = wp_object_interest_new (TEST_TYPE_A, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "+", NULL); TEST_EXPECT_VALIDATION_ERROR (i); /* bad verb; the varargs constructor would assert here */ - i = wp_object_interest_new_type (WP_TYPE_PROXY); + i = wp_object_interest_new_type (WP_TYPE_NODE); wp_object_interest_add_constraint (i, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", 0, g_variant_new_string ("10")); TEST_EXPECT_VALIDATION_ERROR (i); /* no subject; the varargs version would assert here */ - i = wp_object_interest_new_type (WP_TYPE_PROXY); + i = wp_object_interest_new_type (WP_TYPE_NODE); wp_object_interest_add_constraint (i, WP_CONSTRAINT_TYPE_PW_PROPERTY, NULL, WP_CONSTRAINT_VERB_EQUALS, g_variant_new_int32 (10)); TEST_EXPECT_VALIDATION_ERROR (i); /* no value for verb that requires it */ - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "=", NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "~", NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "c", NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "#", NULL); TEST_EXPECT_VALIDATION_ERROR (i); /* value given for verb that doesn't require it */ - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "+s", "10", NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "-s", "10", NULL); TEST_EXPECT_VALIDATION_ERROR (i); /* tuple required */ - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "ci", 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "~i", 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); /* invalid value type */ - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "=y", (guchar) 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "=n", (gint16) 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "=q", (guint16) 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "c(bb)", TRUE, FALSE, NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "~(ss)", "0", "20", NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "#i", 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); /* tuple with different types */ - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "c(si)", "9", 10, NULL); TEST_EXPECT_VALIDATION_ERROR (i); - i = wp_object_interest_new (WP_TYPE_PROXY, + i = wp_object_interest_new (WP_TYPE_NODE, WP_CONSTRAINT_TYPE_PW_PROPERTY, "object.id", "~(iu)", -10, 20, NULL); TEST_EXPECT_VALIDATION_ERROR (i); } diff --git a/tests/wp/proxy.c b/tests/wp/proxy.c index 1a8e61e171652eb1b8a2c6a35cc86df2fe1ed994..e18a41320fab93a1349d9e00e5da9e7f78102b0a 100644 --- a/tests/wp/proxy.c +++ b/tests/wp/proxy.c @@ -29,21 +29,21 @@ test_proxy_teardown (TestFixture *self, gconstpointer user_data) } static void -test_proxy_basic_augmented (WpProxy *proxy, GAsyncResult *res, +test_proxy_basic_activated (WpObject *proxy, GAsyncResult *res, TestFixture *fixture) { g_autoptr (GError) error = NULL; - g_assert_true (wp_proxy_augment_finish (proxy, res, &error)); + g_assert_true (wp_object_activate_finish (proxy, res, &error)); g_assert_no_error (error); - g_assert_true (wp_proxy_get_features (proxy) & WP_PROXY_FEATURE_PW_PROXY); - g_assert_nonnull (wp_proxy_get_pw_proxy (proxy)); + g_assert_true (wp_object_get_active_features (proxy) & WP_PROXY_FEATURE_BOUND); + g_assert_nonnull (wp_proxy_get_pw_proxy (WP_PROXY (proxy))); g_main_loop_quit (fixture->base.loop); } static void -test_proxy_basic_object_added (WpObjectManager *om, WpProxy *proxy, +test_proxy_basic_object_added (WpObjectManager *om, WpGlobalProxy *proxy, TestFixture *fixture) { g_assert_nonnull (proxy); @@ -56,28 +56,29 @@ test_proxy_basic_object_added (WpObjectManager *om, WpProxy *proxy, g_assert_nonnull (omcore); g_assert_true (pcore == omcore); } - g_assert_cmphex (wp_proxy_get_global_permissions (proxy), ==, PW_PERM_ALL); + g_assert_cmphex (wp_global_proxy_get_permissions (proxy), ==, PW_PERM_ALL); g_assert_true (WP_IS_CLIENT (proxy)); - g_assert_cmphex (wp_proxy_get_features (proxy), ==, 0); - g_assert_null (wp_proxy_get_pw_proxy (proxy)); + g_assert_cmphex (wp_object_get_active_features (WP_OBJECT (proxy)), ==, 0); + g_assert_null (wp_proxy_get_pw_proxy (WP_PROXY (proxy))); { - g_autoptr (WpProperties) props = wp_proxy_get_global_properties (proxy); + g_autoptr (WpProperties) props = + wp_global_proxy_get_global_properties (proxy); g_assert_nonnull (props); g_assert_cmpstr (wp_properties_get (props, PW_KEY_PROTOCOL), ==, "protocol-native"); } - wp_proxy_augment (proxy, WP_PROXY_FEATURE_PW_PROXY, NULL, - (GAsyncReadyCallback) test_proxy_basic_augmented, fixture); + wp_object_activate (WP_OBJECT (proxy), WP_PROXY_FEATURE_BOUND, NULL, + (GAsyncReadyCallback) test_proxy_basic_activated, fixture); } static void test_proxy_basic (TestFixture *fixture, gconstpointer data) { /* our test server should advertise exactly one - * client: our WpRemote; use this to test WpProxy */ + * client: our core; use this to test WpProxy */ g_signal_connect (fixture->om, "object-added", (GCallback) test_proxy_basic_object_added, fixture); @@ -88,14 +89,15 @@ test_proxy_basic (TestFixture *fixture, gconstpointer data) } static void -test_node_enum_params_done (WpProxy *node, GAsyncResult *res, TestFixture *f) +test_node_enum_params_done (WpPipewireObject *node, GAsyncResult *res, + TestFixture *f) { g_autoptr (WpIterator) params = NULL; g_autoptr (GError) error = NULL; g_auto (GValue) item = G_VALUE_INIT; guint n_params = 0; - params = wp_proxy_enum_params_finish (node, res, &error); + params = wp_pipewire_object_enum_params_finish (node, res, &error); g_assert_no_error (error); g_assert_nonnull (params); @@ -115,7 +117,7 @@ test_node_enum_params_done (WpProxy *node, GAsyncResult *res, TestFixture *f) static void test_node (TestFixture *f, gconstpointer data) { - g_autoptr (WpProxy) proxy = NULL; + g_autoptr (WpPipewireObject) proxy = NULL; const struct pw_node_info *info; /* load audiotestsrc on the server side */ @@ -129,37 +131,39 @@ test_node (TestFixture *f, gconstpointer data) "libpipewire-module-adapter", NULL, NULL)); } - proxy = (WpProxy *) wp_node_new_from_factory (f->base.core, + proxy = WP_PIPEWIRE_OBJECT (wp_node_new_from_factory (f->base.core, "adapter", wp_properties_new ( "factory.name", "audiotestsrc", "node.name", "audiotestsrc.adapter", - NULL)); + NULL))); g_assert_nonnull (proxy); - wp_proxy_augment (proxy, WP_PROXY_FEATURES_STANDARD, NULL, - (GAsyncReadyCallback) test_proxy_augment_finish_cb, f); + wp_object_activate (WP_OBJECT (proxy), WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL, + NULL, (GAsyncReadyCallback) test_object_activate_finish_cb, f); g_main_loop_run (f->base.loop); /* basic tests */ - g_assert_cmphex (wp_proxy_get_features (proxy), ==, WP_PROXY_FEATURES_STANDARD); - g_assert_nonnull (wp_proxy_get_pw_proxy (proxy)); + g_assert_cmphex (wp_object_get_active_features (WP_OBJECT (proxy)), ==, + WP_PIPEWIRE_OBJECT_FEATURES_MINIMAL); + g_assert_nonnull (wp_proxy_get_pw_proxy (WP_PROXY (proxy))); g_assert_true (WP_IS_NODE (proxy)); /* info */ { - g_assert_nonnull (info = wp_proxy_get_info (proxy)); - g_assert_cmpint (wp_proxy_get_bound_id (proxy), ==, info->id); + g_assert_nonnull (info = wp_pipewire_object_get_native_info (proxy)); + g_assert_cmpint (wp_proxy_get_bound_id (WP_PROXY (proxy)), ==, info->id); } /* properties */ { const gchar *id; - g_assert_nonnull(id = wp_proxy_get_property (proxy, PW_KEY_OBJECT_ID)); + g_assert_nonnull(id = + wp_pipewire_object_get_property (proxy, PW_KEY_OBJECT_ID)); g_assert_cmpint (info->id, ==, atoi(id)); } { const char *id; - g_autoptr (WpProperties) props = wp_proxy_get_properties (proxy); + g_autoptr (WpProperties) props = wp_pipewire_object_get_properties (proxy); g_assert_nonnull (props); g_assert_true (wp_properties_peek_dict (props) == info->props); @@ -170,7 +174,7 @@ test_node (TestFixture *f, gconstpointer data) /* param info */ { const gchar *flags_str; - g_autoptr (GVariant) param_info = wp_proxy_get_param_info (proxy); + g_autoptr (GVariant) param_info = wp_pipewire_object_get_param_info (proxy); g_assert_nonnull (param_info); g_assert_true (g_variant_is_of_type (param_info, G_VARIANT_TYPE ("a{ss}"))); @@ -178,46 +182,13 @@ test_node (TestFixture *f, gconstpointer data) g_assert_true (g_variant_lookup (param_info, "PropInfo", "&s", &flags_str)); g_assert_cmpstr (flags_str, ==, "r"); g_assert_true (g_variant_lookup (param_info, "Props", "&s", &flags_str)); - g_assert_cmpstr (flags_str, ==, "rws"); + g_assert_cmpstr (flags_str, ==, "rw"); } /* enum params */ - wp_proxy_enum_params (proxy, "PropInfo", NULL, NULL, + wp_pipewire_object_enum_params (proxy, "PropInfo", NULL, NULL, (GAsyncReadyCallback) test_node_enum_params_done, f); g_main_loop_run (f->base.loop); - - /* props */ - wp_proxy_augment (proxy, WP_PROXY_FEATURE_PROPS, NULL, - (GAsyncReadyCallback) test_proxy_augment_finish_cb, f); - g_main_loop_run (f->base.loop); - - g_assert_cmphex (wp_proxy_get_features (proxy), ==, - WP_PROXY_FEATURES_STANDARD | WP_PROXY_FEATURE_PROPS); - { - g_autoptr (WpIterator) it = NULL; - g_auto (GValue) item = G_VALUE_INIT; - WpSpaPod *pod = NULL; - - g_assert_nonnull (it = wp_proxy_iterate_prop_info (proxy)); - g_assert_true (wp_iterator_next (it, &item)); - g_assert_cmpuint (G_VALUE_TYPE (&item), ==, WP_TYPE_SPA_POD); - g_assert_nonnull (pod = g_value_get_boxed (&item)); - g_assert_true (wp_spa_pod_is_object (pod)); - g_assert_cmpstr ("PropInfo", ==, wp_spa_pod_get_object_type_name (pod)); - } - - wp_proxy_set_prop (proxy, "volume", wp_spa_pod_new_float (0.8)); - - g_signal_connect_swapped (proxy, "prop-changed", - G_CALLBACK (g_main_loop_quit), f->base.loop); - g_main_loop_run (f->base.loop); - - { - float f; - g_autoptr (WpSpaPod) vol = wp_proxy_get_prop (proxy, "volume"); - g_assert_true (wp_spa_pod_get_float (vol, &f)); - g_assert_cmpfloat_with_epsilon (f, 0.8, 0.0001); - } } gint diff --git a/tests/wp/session.c b/tests/wp/session.c index b9b361f15d7d5b8ed244791514b04edf78d5bbfd..174a88ab455c5be79413a8ce5f85e542c7c2f065 100644 --- a/tests/wp/session.c +++ b/tests/wp/session.c @@ -99,14 +99,14 @@ test_session_basic_proxy_object_removed (WpObjectManager *om, } static void -test_session_basic_export_done (WpProxy * session, GAsyncResult * res, +test_session_basic_export_done (WpObject * session, GAsyncResult * res, TestSessionFixture *fixture) { g_autoptr (GError) error = NULL; g_debug ("export done"); - g_assert_true (wp_proxy_augment_finish (session, res, &error)); + g_assert_true (wp_object_activate_finish (session, res, &error)); g_assert_no_error (error); g_assert_true (WP_IS_IMPL_SESSION (session)); @@ -115,19 +115,6 @@ test_session_basic_export_done (WpProxy * session, GAsyncResult * res, g_main_loop_quit (fixture->base.loop); } -static void -test_session_basic_prop_changed (WpSession * session, - const char *type_name, TestSessionFixture *fixture) -{ - g_debug ("prop changed: %s (%s)", G_OBJECT_TYPE_NAME (session), - type_name); - - g_assert_true (WP_IS_SESSION (session)); - - if (++fixture->n_events == 2) - g_main_loop_quit (fixture->base.loop); -} - static void test_session_basic_notify_properties (WpSession * session, GParamSpec * param, TestSessionFixture *fixture) @@ -152,8 +139,8 @@ test_session_basic (TestSessionFixture *fixture, gconstpointer data) (GCallback) test_session_basic_exported_object_removed, fixture); wp_object_manager_add_interest (fixture->export_om, WP_TYPE_IMPL_SESSION, NULL); - wp_object_manager_request_proxy_features (fixture->export_om, - WP_TYPE_IMPL_SESSION, WP_SESSION_FEATURES_STANDARD); + wp_object_manager_request_object_features (fixture->export_om, + WP_TYPE_IMPL_SESSION, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.core, fixture->export_om); /* set up the proxy side */ @@ -162,32 +149,24 @@ test_session_basic (TestSessionFixture *fixture, gconstpointer data) g_signal_connect (fixture->proxy_om, "object-removed", (GCallback) test_session_basic_proxy_object_removed, fixture); wp_object_manager_add_interest (fixture->proxy_om, WP_TYPE_SESSION, NULL); - wp_object_manager_request_proxy_features (fixture->proxy_om, - WP_TYPE_SESSION, WP_SESSION_FEATURES_STANDARD); + wp_object_manager_request_object_features (fixture->proxy_om, + WP_TYPE_SESSION, WP_OBJECT_FEATURES_ALL); wp_core_install_object_manager (fixture->base.client_core, fixture->proxy_om); /* create session */ session = wp_impl_session_new (fixture->base.core); wp_impl_session_set_property (session, "test.property", "test-value"); - wp_session_set_default_endpoint (WP_SESSION (session), - WP_DIRECTION_INPUT, 5); - wp_session_set_default_endpoint (WP_SESSION (session), - WP_DIRECTION_OUTPUT, 9); /* verify properties are set before export */ { g_autoptr (WpProperties) props = - wp_proxy_get_properties (WP_PROXY (session)); + wp_pipewire_object_get_properties (WP_PIPEWIRE_OBJECT (session)); g_assert_cmpstr (wp_properties_get (props, "test.property"), ==, "test-value"); } - g_assert_cmpuint (wp_session_get_default_endpoint (WP_SESSION (session), - WP_DIRECTION_INPUT), ==, 5); - g_assert_cmpuint (wp_session_get_default_endpoint (WP_SESSION (session), - WP_DIRECTION_OUTPUT), ==, 9); /* do export */ - wp_proxy_augment (WP_PROXY (session), WP_SESSION_FEATURES_STANDARD, NULL, + wp_object_activate (WP_OBJECT (session), WP_OBJECT_FEATURES_ALL, NULL, (GAsyncReadyCallback) test_session_basic_export_done, fixture); /* run until objects are created and features are cached */ @@ -200,75 +179,26 @@ test_session_basic (TestSessionFixture *fixture, gconstpointer data) /* test round 1: verify the values on the proxy */ - g_assert_cmphex (wp_proxy_get_features (fixture->proxy_session), ==, - WP_SESSION_FEATURES_STANDARD); + g_assert_cmphex ( + wp_object_get_active_features (WP_OBJECT (fixture->proxy_session)), ==, + wp_object_get_supported_features (WP_OBJECT (fixture->proxy_session))); g_assert_cmpuint (wp_proxy_get_bound_id (fixture->proxy_session), ==, wp_proxy_get_bound_id (WP_PROXY (session))); { - g_autoptr (WpProperties) props = - wp_proxy_get_properties (fixture->proxy_session); + g_autoptr (WpProperties) props = wp_pipewire_object_get_properties ( + WP_PIPEWIRE_OBJECT (fixture->proxy_session)); g_assert_cmpstr (wp_properties_get (props, "test.property"), ==, "test-value"); } - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (fixture->proxy_session), - WP_DIRECTION_INPUT), ==, 5); - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (fixture->proxy_session), - WP_DIRECTION_OUTPUT), ==, 9); /* setup change signals */ - g_signal_connect (fixture->proxy_session, "prop-changed", - (GCallback) test_session_basic_prop_changed, fixture); - g_signal_connect (session, "prop-changed", - (GCallback) test_session_basic_prop_changed, fixture); g_signal_connect (fixture->proxy_session, "notify::properties", (GCallback) test_session_basic_notify_properties, fixture); g_signal_connect (session, "notify::properties", (GCallback) test_session_basic_notify_properties, fixture); - /* change default endpoint on the proxy */ - wp_session_set_default_endpoint (WP_SESSION (fixture->proxy_session), - WP_DIRECTION_INPUT, 73); - - /* run until the change is on both sides */ - fixture->n_events = 0; - g_main_loop_run (fixture->base.loop); - g_assert_cmpint (fixture->n_events, ==, 2); - - /* test round 2: verify the value change on both sides */ - - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (fixture->proxy_session), - WP_DIRECTION_INPUT), ==, 73); - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (fixture->proxy_session), - WP_DIRECTION_OUTPUT), ==, 9); - - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (session), WP_DIRECTION_INPUT), ==, 73); - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (session), WP_DIRECTION_OUTPUT), ==, 9); - - /* change default endpoint on the exported */ - fixture->n_events = 0; - wp_session_set_default_endpoint (WP_SESSION (session), - WP_DIRECTION_OUTPUT, 44); - - /* run until the change is on both sides */ - g_main_loop_run (fixture->base.loop); - g_assert_cmpint (fixture->n_events, ==, 2); - - /* test round 3: verify the value change on both sides */ - - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (session), WP_DIRECTION_OUTPUT), ==, 44); - g_assert_cmpuint (wp_session_get_default_endpoint ( - WP_SESSION (fixture->proxy_session), - WP_DIRECTION_OUTPUT), ==, 44); - /* change a property on the exported */ fixture->n_events = 0; wp_impl_session_set_property (session, "test.property", "changed-value"); @@ -277,17 +207,16 @@ test_session_basic (TestSessionFixture *fixture, gconstpointer data) g_main_loop_run (fixture->base.loop); g_assert_cmpint (fixture->n_events, ==, 2); - /* test round 4: verify the property change on both sides */ - + /* verify the property change on both sides */ { g_autoptr (WpProperties) props = - wp_proxy_get_properties (WP_PROXY (session)); + wp_pipewire_object_get_properties (WP_PIPEWIRE_OBJECT (session)); g_assert_cmpstr (wp_properties_get (props, "test.property"), ==, "changed-value"); } { - g_autoptr (WpProperties) props = - wp_proxy_get_properties (fixture->proxy_session); + g_autoptr (WpProperties) props = wp_pipewire_object_get_properties ( + WP_PIPEWIRE_OBJECT (fixture->proxy_session)); g_assert_cmpstr (wp_properties_get (props, "test.property"), ==, "changed-value"); }