From 3958d2c9e3d98c335ea4bf19c38570f4d4451489 Mon Sep 17 00:00:00 2001 From: Alexandre Janniaux Date: Fri, 3 Feb 2023 01:07:45 +0100 Subject: [PATCH] test: lua: extension: check input capabilities Check that the input-capability is correctly handled and will trigger the required function from the lua extension engine. --- test/modules/lua/extension.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/test/modules/lua/extension.c b/test/modules/lua/extension.c index a73b38c19a..2c7311518b 100644 --- a/test/modules/lua/extension.c +++ b/test/modules/lua/extension.c @@ -41,6 +41,7 @@ const char vlc_module_name[] = MODULE_STRING; #include #include #include +#include #include @@ -60,6 +61,7 @@ static int OpenIntf(vlc_object_t *root) vlc_object_t *libvlc = (vlc_object_t*)vlc_object_instance(root); var_Create(libvlc, "test-lua-activate", VLC_VAR_STRING | VLC_VAR_ISCOMMAND); var_Create(libvlc, "test-lua-deactivate", VLC_VAR_STRING | VLC_VAR_ISCOMMAND); + var_Create(libvlc, "test-lua-input-changed", VLC_VAR_STRING | VLC_VAR_ISCOMMAND); intf_thread_t *intf = (intf_thread_t*)root; extensions_manager_t *mgr = @@ -81,25 +83,39 @@ static int OpenIntf(vlc_object_t *root) goto end; } - vlc_sem_t sem_activate, sem_deactivate; + vlc_sem_t sem_input, sem_activate, sem_deactivate; + vlc_sem_init(&sem_input, 0); vlc_sem_init(&sem_activate, 0); vlc_sem_init(&sem_deactivate, 0); var_AddCallback(libvlc, "test-lua-activate", OnLuaEventTriggered, &sem_activate); var_AddCallback(libvlc, "test-lua-deactivate", OnLuaEventTriggered, &sem_deactivate); + var_AddCallback(libvlc, "test-lua-input-changed", OnLuaEventTriggered, &sem_input); /* Check that the extension from the test is correctly probed. */ assert(mgr->extensions.i_size == 1); extension_Activate(mgr, mgr->extensions.p_elems[0]); vlc_sem_wait(&sem_activate); + vlc_player_Lock(player); + input_item_t *item = input_item_New( + "mock://length=100000000000000000", // TODO: make it infinite + "lua_test_sample"); + vlc_player_SetCurrentMedia(player, item); + vlc_player_Start(player); + vlc_player_Unlock(player); + + vlc_sem_wait(&sem_input); + extension_Deactivate(mgr, mgr->extensions.p_elems[0]); vlc_sem_wait(&sem_deactivate); var_DelCallback(libvlc, "test-lua-activate", OnLuaEventTriggered, &sem_activate); var_DelCallback(libvlc, "test-lua-deactivate", OnLuaEventTriggered, &sem_deactivate); + var_DelCallback(libvlc, "test-lua-input-changed", OnLuaEventTriggered, &sem_input); module_unneed(mgr, mgr->p_module); + input_item_Release(item); end: vlc_object_delete(mgr); return VLC_SUCCESS;