mirror of
https://gitlab.xiph.org/xiph/ezstream.git
synced 2025-01-03 14:56:35 -05:00
Add remaining tests of cfg.c
This commit is contained in:
parent
5a8e087b31
commit
13be6d2680
@ -22,4 +22,11 @@ AM_CPPFLAGS = @EZ_CPPFLAGS@ \
|
||||
AM_CFLAGS = @EZ_CFLAGS@ @CHECK_CFLAGS@
|
||||
AM_LDFLAGS = @EZ_LDFLAGS@
|
||||
|
||||
EXTRA_DIST = \
|
||||
config-bad.xml \
|
||||
config-bad2.xml \
|
||||
config-bad3.xml \
|
||||
config-bad4.xml \
|
||||
config-ok.xml
|
||||
|
||||
CLEANFILES = *~ *.core core *.gcno *.gcda
|
||||
|
@ -78,8 +78,46 @@
|
||||
ck_assert_uint_eq(g(), 20); \
|
||||
} while (0)
|
||||
|
||||
#define TEST_INTNUM(s, g) do { \
|
||||
const char *errstr2; \
|
||||
\
|
||||
TEST_EMPTYSTR(s, g); \
|
||||
\
|
||||
errstr2 = NULL; \
|
||||
ck_assert_int_eq(s("-2147483649", &errstr2), -1); \
|
||||
ck_assert_ptr_ne(errstr2, NULL); \
|
||||
\
|
||||
errstr2 = NULL; \
|
||||
ck_assert_int_eq(s("2147483648", &errstr2), -1); \
|
||||
ck_assert_ptr_ne(errstr2, NULL); \
|
||||
\
|
||||
ck_assert_int_eq(s("20", NULL), 0); \
|
||||
ck_assert_uint_eq(g(), 20); \
|
||||
} while (0)
|
||||
|
||||
Suite * cfg_suite(void);
|
||||
|
||||
START_TEST(test_reload)
|
||||
{
|
||||
ck_assert_int_eq(cfg_set_program_config_file("config-ok.xml", NULL),
|
||||
0);
|
||||
ck_assert_int_eq(cfg_reload(), 0);
|
||||
ck_assert_int_eq(cfg_reload(), 0);
|
||||
ck_assert_int_eq(cfg_set_program_config_file("config-bad.xml", NULL),
|
||||
0);
|
||||
ck_assert_int_eq(cfg_reload(), -1);
|
||||
ck_assert_int_eq(cfg_set_program_config_file("config-bad2.xml", NULL),
|
||||
0);
|
||||
ck_assert_int_eq(cfg_reload(), -1);
|
||||
ck_assert_int_eq(cfg_set_program_config_file("config-bad3.xml", NULL),
|
||||
0);
|
||||
ck_assert_int_eq(cfg_reload(), -1);
|
||||
ck_assert_int_eq(cfg_set_program_config_file("config-bad4.xml", NULL),
|
||||
0);
|
||||
ck_assert_int_eq(cfg_reload(), -1);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(test_stream_str2fmt)
|
||||
{
|
||||
enum cfg_stream_format fmt;
|
||||
@ -109,6 +147,7 @@ END_TEST
|
||||
START_TEST(test_file_check)
|
||||
{
|
||||
ck_assert_int_eq(cfg_file_check(NULL), -1);
|
||||
ck_assert_int_eq(cfg_file_check("check_cfg.c"), 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
@ -144,6 +183,13 @@ START_TEST(test_program_quiet_stderr)
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(test_program_rtstatus_output)
|
||||
{
|
||||
ck_assert_int_eq(cfg_set_program_rtstatus_output(-1, NULL), 0);
|
||||
ck_assert_int_ne(cfg_get_program_rtstatus_output(), 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
START_TEST(test_program_verbosity)
|
||||
{
|
||||
ck_assert_int_eq(cfg_set_program_verbosity(2000, NULL), 0);
|
||||
@ -163,8 +209,10 @@ START_TEST(test_server_protocol)
|
||||
|
||||
ck_assert_int_eq(cfg_set_server_protocol("hTtP", NULL), 0);
|
||||
ck_assert_int_eq(cfg_get_server_protocol(), CFG_PROTO_HTTP);
|
||||
ck_assert_str_eq(cfg_get_server_protocol_str(), "http");
|
||||
ck_assert_int_eq(cfg_set_server_protocol("HtTpS", NULL), 0);
|
||||
ck_assert_int_eq(cfg_get_server_protocol(), CFG_PROTO_HTTPS);
|
||||
ck_assert_str_eq(cfg_get_server_protocol_str(), "https");
|
||||
}
|
||||
END_TEST
|
||||
|
||||
@ -380,7 +428,9 @@ END_TEST
|
||||
|
||||
START_TEST(test_metadata_refresh_interval)
|
||||
{
|
||||
TEST_UINTNUM(cfg_set_metadata_refresh_interval,
|
||||
ck_assert_int_eq(cfg_get_metadata_refresh_interval(), -1);
|
||||
|
||||
TEST_INTNUM(cfg_set_metadata_refresh_interval,
|
||||
cfg_get_metadata_refresh_interval);
|
||||
}
|
||||
END_TEST
|
||||
@ -408,6 +458,7 @@ cfg_suite(void)
|
||||
s = suite_create("Config");
|
||||
|
||||
tc_core = tcase_create("Core");
|
||||
tcase_add_test(tc_core, test_reload);
|
||||
tcase_add_test(tc_core, test_stream_str2fmt);
|
||||
tcase_add_test(tc_core, test_stream_fmt2str);
|
||||
tcase_add_test(tc_core, test_file_check);
|
||||
@ -415,6 +466,7 @@ cfg_suite(void)
|
||||
tcase_add_test(tc_core, test_program_config_type);
|
||||
tcase_add_test(tc_core, test_program_config_file);
|
||||
tcase_add_test(tc_core, test_program_quiet_stderr);
|
||||
tcase_add_test(tc_core, test_program_rtstatus_output);
|
||||
tcase_add_test(tc_core, test_program_verbosity);
|
||||
tcase_add_test(tc_core, test_server_protocol);
|
||||
tcase_add_test(tc_core, test_server_hostname);
|
||||
@ -459,6 +511,10 @@ main(void)
|
||||
Suite *s;
|
||||
SRunner *sr;
|
||||
|
||||
(void)cfg_init();
|
||||
(void)cfg_decoder_init();
|
||||
(void)cfg_encoder_init();
|
||||
|
||||
s = cfg_suite();
|
||||
sr = srunner_create(s);
|
||||
|
||||
@ -466,6 +522,8 @@ main(void)
|
||||
num_failed = srunner_ntests_failed(sr);
|
||||
srunner_free(sr);
|
||||
|
||||
cfg_encoder_exit();
|
||||
cfg_decoder_exit();
|
||||
cfg_exit();
|
||||
|
||||
if (num_failed)
|
||||
|
67
tests/config-bad.xml
Normal file
67
tests/config-bad.xml
Normal file
@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<ezstream>
|
||||
|
||||
<server>
|
||||
<protocol></protocol>
|
||||
<hostname></hostname>
|
||||
<port></port>
|
||||
<user></user>
|
||||
<password></password>
|
||||
<ca_dir></ca_dir>
|
||||
<ca_file></ca_file>
|
||||
<client_cert></client_cert>
|
||||
<client_key></client_key>
|
||||
<reconnect_attempts></reconnect_attempts>
|
||||
</server>
|
||||
|
||||
<stream>
|
||||
<mountpoint></mountpoint>
|
||||
<name></name>
|
||||
<url></url>
|
||||
<genre></genre>
|
||||
<description></description>
|
||||
<quality></quality>
|
||||
<bitrate></bitrate>
|
||||
<samplerate></samplerate>
|
||||
<channels></channels>
|
||||
<server_public></server_public>
|
||||
<format></format>
|
||||
<encoder></encoder>
|
||||
</stream>
|
||||
|
||||
<media>
|
||||
<type></type>
|
||||
<filename></filename>
|
||||
<shuffle></shuffle>
|
||||
<stream_once></stream_once>
|
||||
</media>
|
||||
|
||||
<metadata>
|
||||
<program></program>
|
||||
<format_str></format_str>
|
||||
<refresh_interval></refresh_interval>
|
||||
<normalize_strings></normalize_strings>
|
||||
<no_updates></no_updates>
|
||||
</metadata>
|
||||
|
||||
<decoders>
|
||||
<decoder>
|
||||
<name></name>
|
||||
<program></program>
|
||||
<file_ext></file_ext>
|
||||
<!-- ... -->
|
||||
</decoder>
|
||||
<!-- ... -->
|
||||
</decoders>
|
||||
|
||||
<encoders>
|
||||
<encoder>
|
||||
<name></name>
|
||||
<format></format>
|
||||
<program></program>
|
||||
</encoder>
|
||||
<!-- ... -->
|
||||
</encoders>
|
||||
|
||||
</ezstream>
|
1
tests/config-bad2.xml
Normal file
1
tests/config-bad2.xml
Normal file
@ -0,0 +1 @@
|
||||
<ezstream
|
1
tests/config-bad3.xml
Normal file
1
tests/config-bad3.xml
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
2
tests/config-bad4.xml
Normal file
2
tests/config-bad4.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<test>
|
||||
</test>
|
65
tests/config-ok.xml
Normal file
65
tests/config-ok.xml
Normal file
@ -0,0 +1,65 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<ezstream>
|
||||
|
||||
<server>
|
||||
<protocol>https</protocol>
|
||||
<hostname>127.0.0.1</hostname>
|
||||
<port>8000</port>
|
||||
<user>source</user>
|
||||
<password>hackme</password>
|
||||
<ca_dir>/tmp</ca_dir>
|
||||
<ca_file>/tmp/ca.crt</ca_file>
|
||||
<client_cert>client.crt</client_cert>
|
||||
<client_key>client.key</client_key>
|
||||
<reconnect_attempts>10</reconnect_attempts>
|
||||
</server>
|
||||
|
||||
<stream>
|
||||
<mountpoint>/stream.ogg</mountpoint>
|
||||
<format>VORBIS</format>
|
||||
<encoder>OggEnc-Q1.5</encoder>
|
||||
<name>Test</name>
|
||||
<url>http://localhost</url>
|
||||
<genre>Test Tones</genre>
|
||||
<description>A variation of test tones.</description>
|
||||
<quality>6</quality>
|
||||
<bitrate>24</bitrate>
|
||||
<samplerate>96000</samplerate>
|
||||
<channels>8</channels>
|
||||
<server_public>False</server_public>
|
||||
</stream>
|
||||
|
||||
<media>
|
||||
<type>Playlist</type>
|
||||
<filename>playlist.m3u</filename>
|
||||
<shuffle>True</shuffle>
|
||||
<stream_once>False</stream_once>
|
||||
</media>
|
||||
|
||||
<metadata>
|
||||
<program>metadata.sh</program>
|
||||
<format_str>@A@ - @T@</format_str>
|
||||
<refresh_interval>-1</refresh_interval>
|
||||
<normalize_strings>True</normalize_strings>
|
||||
<no_updates>False</no_updates>
|
||||
</metadata>
|
||||
|
||||
<decoders>
|
||||
<decoder>
|
||||
<name>Universal</name>
|
||||
<program>oggdec -R -o - @T@</program>
|
||||
<file_ext>.ogg</file_ext>
|
||||
<file_ext>.oga</file_ext>
|
||||
</decoder>
|
||||
</decoders>
|
||||
|
||||
<encoders>
|
||||
<encoder>
|
||||
<name>OggEnc-Q1.5</name>
|
||||
<format>Vorbis</format>
|
||||
<program>oggenc -r -q 1.5 -t @M@ -</program>
|
||||
</encoder>
|
||||
</encoders>
|
||||
|
||||
</ezstream>
|
Loading…
Reference in New Issue
Block a user