LADI
/
spa
1
Fork 0

test: add simple functional tests

Try running openal-info.
This commit is contained in:
Pauli Virtanen 2022-03-05 12:21:28 +02:00 committed by Wim Taymans
parent 76bab25afb
commit c604f1608a
2 changed files with 84 additions and 0 deletions

View File

@ -119,6 +119,28 @@ test('test-spa',
link_with: pwtest_lib)
)
openal_info = find_program('openal-info', required: false)
if openal_info.found()
cdata.set_quoted('OPENAL_INFO_PATH', openal_info.full_path())
endif
summary({'openal-info': openal_info.found()}, bool_yn: true, section: 'Functional test programs')
pactl = find_program('pactl', required: false)
if pactl.found()
cdata.set_quoted('PACTL_PATH', pactl.full_path())
endif
summary({'pactl': pactl.found()}, bool_yn: true, section: 'Functional test programs')
if default_sm == 'media-session' or default_sm == 'wireplumber'
test('test-functional',
executable('test-functional',
'test-functional.c',
include_directories: pwtest_inc,
dependencies: [ spa_dep ],
link_with: pwtest_lib)
)
endif
valgrind = find_program('valgrind', required: false)
summary({'valgrind (test setup)': valgrind.found()}, bool_yn: true, section: 'Optional programs')
if valgrind.found()

62
test/test-functional.c Normal file
View File

@ -0,0 +1,62 @@
/* PipeWire
*
* Copyright © 2019 Wim Taymans
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice (including the next
* paragraph) shall be included in all copies or substantial portions of the
* Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
#include "config.h"
#include "pwtest.h"
PWTEST(openal_info_test)
{
int status;
#ifdef OPENAL_INFO_PATH
status = pwtest_spawn(OPENAL_INFO_PATH, (char *[]){ "openal-info", NULL });
pwtest_int_eq(WEXITSTATUS(status), 0);
return PWTEST_PASS;
#else
return PWTEST_SKIP;
#endif
}
PWTEST(pactl_test)
{
int status;
#ifdef PACTL_PATH
status = pwtest_spawn(PACTL_PATH, (char *[]){ "pactl", "info", NULL });
pwtest_int_eq(WEXITSTATUS(status), 0);
return PWTEST_PASS;
#else
return PWTEST_SKIP;
#endif
}
PWTEST_SUITE(pw_array)
{
pwtest_add(pactl_test, PWTEST_ARG_DAEMON);
pwtest_add(openal_info_test, PWTEST_ARG_DAEMON);
return PWTEST_PASS;
}