mirror of
https://gitlab.xiph.org/xiph/ezstream.git
synced 2025-02-02 15:07:45 -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_CFLAGS = @EZ_CFLAGS@ @CHECK_CFLAGS@
|
||||||
AM_LDFLAGS = @EZ_LDFLAGS@
|
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
|
CLEANFILES = *~ *.core core *.gcno *.gcda
|
||||||
|
@ -78,8 +78,46 @@
|
|||||||
ck_assert_uint_eq(g(), 20); \
|
ck_assert_uint_eq(g(), 20); \
|
||||||
} while (0)
|
} 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);
|
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)
|
START_TEST(test_stream_str2fmt)
|
||||||
{
|
{
|
||||||
enum cfg_stream_format fmt;
|
enum cfg_stream_format fmt;
|
||||||
@ -109,6 +147,7 @@ END_TEST
|
|||||||
START_TEST(test_file_check)
|
START_TEST(test_file_check)
|
||||||
{
|
{
|
||||||
ck_assert_int_eq(cfg_file_check(NULL), -1);
|
ck_assert_int_eq(cfg_file_check(NULL), -1);
|
||||||
|
ck_assert_int_eq(cfg_file_check("check_cfg.c"), 0);
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
@ -144,6 +183,13 @@ START_TEST(test_program_quiet_stderr)
|
|||||||
}
|
}
|
||||||
END_TEST
|
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)
|
START_TEST(test_program_verbosity)
|
||||||
{
|
{
|
||||||
ck_assert_int_eq(cfg_set_program_verbosity(2000, NULL), 0);
|
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_set_server_protocol("hTtP", NULL), 0);
|
||||||
ck_assert_int_eq(cfg_get_server_protocol(), CFG_PROTO_HTTP);
|
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_set_server_protocol("HtTpS", NULL), 0);
|
||||||
ck_assert_int_eq(cfg_get_server_protocol(), CFG_PROTO_HTTPS);
|
ck_assert_int_eq(cfg_get_server_protocol(), CFG_PROTO_HTTPS);
|
||||||
|
ck_assert_str_eq(cfg_get_server_protocol_str(), "https");
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
@ -380,7 +428,9 @@ END_TEST
|
|||||||
|
|
||||||
START_TEST(test_metadata_refresh_interval)
|
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);
|
cfg_get_metadata_refresh_interval);
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
@ -408,6 +458,7 @@ cfg_suite(void)
|
|||||||
s = suite_create("Config");
|
s = suite_create("Config");
|
||||||
|
|
||||||
tc_core = tcase_create("Core");
|
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_str2fmt);
|
||||||
tcase_add_test(tc_core, test_stream_fmt2str);
|
tcase_add_test(tc_core, test_stream_fmt2str);
|
||||||
tcase_add_test(tc_core, test_file_check);
|
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_type);
|
||||||
tcase_add_test(tc_core, test_program_config_file);
|
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_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_program_verbosity);
|
||||||
tcase_add_test(tc_core, test_server_protocol);
|
tcase_add_test(tc_core, test_server_protocol);
|
||||||
tcase_add_test(tc_core, test_server_hostname);
|
tcase_add_test(tc_core, test_server_hostname);
|
||||||
@ -459,6 +511,10 @@ main(void)
|
|||||||
Suite *s;
|
Suite *s;
|
||||||
SRunner *sr;
|
SRunner *sr;
|
||||||
|
|
||||||
|
(void)cfg_init();
|
||||||
|
(void)cfg_decoder_init();
|
||||||
|
(void)cfg_encoder_init();
|
||||||
|
|
||||||
s = cfg_suite();
|
s = cfg_suite();
|
||||||
sr = srunner_create(s);
|
sr = srunner_create(s);
|
||||||
|
|
||||||
@ -466,6 +522,8 @@ main(void)
|
|||||||
num_failed = srunner_ntests_failed(sr);
|
num_failed = srunner_ntests_failed(sr);
|
||||||
srunner_free(sr);
|
srunner_free(sr);
|
||||||
|
|
||||||
|
cfg_encoder_exit();
|
||||||
|
cfg_decoder_exit();
|
||||||
cfg_exit();
|
cfg_exit();
|
||||||
|
|
||||||
if (num_failed)
|
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