From cbffe744940d9626e14467df5cc19fa1451d4f31 Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 15 Sep 2016 14:15:49 +0800 Subject: [PATCH] add circleci --- circle.yml | 22 + trunk/src/utest/srs_utest_config.cpp | 3223 ------------------------ trunk/src/utest/srs_utest_kernel.cpp | 2 +- trunk/src/utest/srs_utest_protocol.cpp | 138 - 4 files changed, 23 insertions(+), 3362 deletions(-) create mode 100644 circle.yml diff --git a/circle.yml b/circle.yml new file mode 100644 index 000000000..e033329ff --- /dev/null +++ b/circle.yml @@ -0,0 +1,22 @@ +## filter branches. +general: + branches: + only: + - 2.0release + - develop + - master + - bms + - /feature\/.*/ + - /hotfix\/.*/ + - /release\/.*/ + - /pull\/.*/ + +dependencies: + override: + - sudo apt-get install -y valgrind openssl + +test: + override: + - (cd trunk && ./configure --use-sys-ssl && make) + - (cd trunk && ./objs/srs_utest) + diff --git a/trunk/src/utest/srs_utest_config.cpp b/trunk/src/utest/srs_utest_config.cpp index 942171718..033aa3ec2 100644 --- a/trunk/src/utest/srs_utest_config.cpp +++ b/trunk/src/utest/srs_utest_config.cpp @@ -78,679 +78,11 @@ int MockSrsConfig::parse(string buf) #ifdef ENABLE_UTEST_CONFIG -// full.conf -std::string _full_conf = "" -"listen 1935; \n " -"pid ./objs/srs.pid; \n " -"chunk_size 60000; \n " -"ff_log_dir ./objs; \n " -"srs_log_tank file; \n " -"srs_log_level trace; \n " -"srs_log_file ./objs/srs.log; \n " -"max_connections 1000; \n " -"daemon on; \n " -" \n " -"heartbeat { \n " -" enabled off; \n " -" interval 9.3; \n " -" url http://127.0.0.1:8085/api/v1/servers; \n " -" device_id \"my-srs-device\"; \n " -" summaries off; \n " -"} \n " -" \n " -"stats { \n " -" network 0; \n " -" disk sda sdb xvda xvdb; \n " -"} \n " -" \n " -"http_api { \n " -" enabled on; \n " -" listen 1985; \n " -" crossdomain on; \n " -"} \n " -"http_server { \n " -" enabled on; \n " -" listen 8080; \n " -" dir ./objs/nginx/html; \n " -"} \n " -" \n " -"stream_caster { \n " -" enabled off; \n " -" caster mpegts_over_udp; \n " -" output rtmp://127.0.0.1/live/livestream; \n " -" listen 8935; \n " -" rtp_port_min 57200; \n " -" rtp_port_max 57300; \n " -"} \n " -"stream_caster { \n " -" enabled off; \n " -" caster mpegts_over_udp; \n " -" output rtmp://127.0.0.1/live/livestream; \n " -" listen 8935; \n " -"} \n " -"stream_caster { \n " -" enabled off; \n " -" caster rtsp; \n " -" output rtmp://127.0.0.1/[app]/[stream]; \n " -" listen 554; \n " -" rtp_port_min 57200; \n " -" rtp_port_max 57300; \n " -"} \n " -" \n " -"vhost __defaultVhost__ { \n " -"} \n " -" \n " -"vhost security.srs.com { \n " -" security { \n " -" enabled on; \n " -" allow play all; \n " -" allow publish all; \n " -" } \n " -"} \n " -" \n " -"vhost mrw.srs.com { \n " -" min_latency off; \n " -" mr { \n " -" enabled on; \n " -" latency 350; \n " -" } \n " -" mw_latency 350; \n " -"} \n " -" \n " -"vhost same.edge.srs.com { \n " -" mode remote; \n " -" origin 127.0.0.1:1935 localhost:1935; \n " -" token_traverse off; \n " -"} \n " -" \n " -"vhost dvr.srs.com { \n " -" dvr { \n " -" enabled on; \n " -" dvr_plan session; \n " -" dvr_path ./objs/nginx/html; \n " -" dvr_duration 30; \n " -" dvr_wait_keyframe on; \n " -" time_jitter full; \n " -" \n " -" } \n " -"} \n " -" \n " -"vhost ingest.srs.com { \n " -" ingest livestream { \n " -" enabled on; \n " -" input { \n " -" type file; \n " -" url ./doc/source.200kbps.768x320.flv; \n " -" } \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine { \n " -" enabled off; \n " -" output rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream; \n " -" } \n " -" } \n " -"} \n " -" \n " -"vhost http.static.srs.com { \n " -" http { \n " -" enabled on; \n " -" mount [vhost]/hls; \n " -" dir ./objs/nginx/html/hls; \n " -" } \n " -"} \n " -" \n " -"vhost http.remux.srs.com { \n " -" http_remux { \n " -" enabled on; \n " -" fast_cache 30; \n " -" mount [vhost]/[app]/[stream].flv; \n " -" } \n " -"} \n " -" \n " -"vhost with-hls.srs.com { \n " -" hls { \n " -" enabled on; \n " -" hls_fragment 10; \n " -" hls_td_ratio 1.5; \n " -" hls_window 60; \n " -" hls_on_error ignore; \n " -" hls_storage disk; \n " -" hls_path ./objs/nginx/html; \n " -" hls_mount [vhost]/[app]/[stream].m3u8; \n " -" hls_acodec aac; \n " -" hls_vcodec h264; \n " -" } \n " -"} \n " -"vhost no-hls.srs.com { \n " -" hls { \n " -" enabled off; \n " -" } \n " -"} \n " -" \n " -"vhost hooks.callback.srs.com { \n " -" http_hooks { \n " -" enabled on; \n " -" on_connect http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients; \n " -" on_close http://127.0.0.1:8085/api/v1/clients http://localhost:8085/api/v1/clients; \n " -" on_publish http://127.0.0.1:8085/api/v1/streams http://localhost:8085/api/v1/streams; \n " -" on_unpublish http://127.0.0.1:8085/api/v1/streams http://localhost:8085/api/v1/streams; \n " -" on_play http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions; \n " -" on_stop http://127.0.0.1:8085/api/v1/sessions http://localhost:8085/api/v1/sessions; \n " -" on_dvr http://127.0.0.1:8085/api/v1/dvrs http://localhost:8085/api/v1/dvrs; \n " -" } \n " -"} \n " -" \n " -"vhost debug.srs.com { \n " -" debug_srs_upnode on; \n " -"} \n " -" \n " -"vhost min.delay.com { \n " -" min_latency on; \n " -" mr { \n " -" enabled off; \n " -" } \n " -" mw_latency 100; \n " -" gop_cache off; \n " -" queue_length 10; \n " -"} \n " -" \n " -"vhost refer.anti_suck.com { \n " -" refer github.com github.io; \n " -" refer_publish github.com github.io; \n " -" refer_play github.com github.io; \n " -"} \n " -" \n " -"vhost same.vhost.forward.srs.com { \n " -" forward 127.0.0.1:1936 127.0.0.1:1937; \n " -"} \n " -" \n " -"vhost example.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine example { \n " -" enabled on; \n " -" iformat flv; \n " -" vfilter { \n " -" i ./doc/ffmpeg-logo.png; \n " -" filter_complex 'overlay=10:10'; \n " -" } \n " -" vcodec libx264; \n " -" vbitrate 1500; \n " -" vfps 25; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 12; \n " -" vprofile main; \n " -" vpreset medium; \n " -" vparams { \n " -" t 100; \n " -" coder 1; \n " -" b_strategy 2; \n " -" bf 3; \n " -" refs 10; \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 70; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" profile:a aac_low; \n " -" } \n " -" oformat flv; \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost mirror.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine mirror { \n " -" enabled on; \n " -" vfilter { \n " -" vf 'split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2'; \n " -" } \n " -" vcodec libx264; \n " -" vbitrate 300; \n " -" vfps 20; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 2; \n " -" vprofile baseline; \n " -" vpreset superfast; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost crop.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine crop { \n " -" enabled on; \n " -" vfilter { \n " -" vf 'crop=in_w-20:in_h-160:10:80'; \n " -" } \n " -" vcodec libx264; \n " -" vbitrate 300; \n " -" vfps 20; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 2; \n " -" vprofile baseline; \n " -" vpreset superfast; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost logo.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine logo { \n " -" enabled on; \n " -" vfilter { \n " -" i ./doc/ffmpeg-logo.png; \n " -" filter_complex 'overlay=10:10'; \n " -" } \n " -" vcodec libx264; \n " -" vbitrate 300; \n " -" vfps 20; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 2; \n " -" vprofile baseline; \n " -" vpreset superfast; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost audio.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine acodec { \n " -" enabled on; \n " -" vcodec copy; \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost vn.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine vn { \n " -" enabled on; \n " -" vcodec vn; \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost copy.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine copy { \n " -" enabled on; \n " -" vcodec copy; \n " -" acodec copy; \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost all.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine ffsuper { \n " -" enabled on; \n " -" iformat flv; \n " -" vfilter { \n " -" i ./doc/ffmpeg-logo.png; \n " -" filter_complex 'overlay=10:10'; \n " -" } \n " -" vcodec libx264; \n " -" vbitrate 1500; \n " -" vfps 25; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 12; \n " -" vprofile main; \n " -" vpreset medium; \n " -" vparams { \n " -" t 100; \n " -" coder 1; \n " -" b_strategy 2; \n " -" bf 3; \n " -" refs 10; \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 70; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" profile:a aac_low; \n " -" } \n " -" oformat flv; \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" engine ffhd { \n " -" enabled on; \n " -" vcodec libx264; \n " -" vbitrate 1200; \n " -" vfps 25; \n " -" vwidth 1382; \n " -" vheight 576; \n " -" vthreads 6; \n " -" vprofile main; \n " -" vpreset medium; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 70; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" engine ffsd { \n " -" enabled on; \n " -" vcodec libx264; \n " -" vbitrate 800; \n " -" vfps 25; \n " -" vwidth 1152; \n " -" vheight 480; \n " -" vthreads 4; \n " -" vprofile main; \n " -" vpreset fast; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 60; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" engine fffast { \n " -" enabled on; \n " -" vcodec libx264; \n " -" vbitrate 300; \n " -" vfps 20; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 2; \n " -" vprofile baseline; \n " -" vpreset superfast; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" engine vcopy { \n " -" enabled on; \n " -" vcodec copy; \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" engine acopy { \n " -" enabled on; \n " -" vcodec libx264; \n " -" vbitrate 300; \n " -" vfps 20; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 2; \n " -" vprofile baseline; \n " -" vpreset superfast; \n " -" vparams { \n " -" } \n " -" acodec copy; \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" engine copy { \n " -" enabled on; \n " -" vcodec copy; \n " -" acodec copy; \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost ffempty.transcode.srs.com { \n " -" transcode { \n " -" enabled on; \n " -" ffmpeg ./objs/research/ffempty; \n " -" engine empty { \n " -" enabled on; \n " -" vcodec libx264; \n " -" vbitrate 300; \n " -" vfps 20; \n " -" vwidth 768; \n " -" vheight 320; \n " -" vthreads 2; \n " -" vprofile baseline; \n " -" vpreset superfast; \n " -" vparams { \n " -" } \n " -" acodec libfdk_aac; \n " -" abitrate 45; \n " -" asample_rate 44100; \n " -" achannels 2; \n " -" aparams { \n " -" } \n " -" output rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]; \n " -" } \n " -" } \n " -"} \n " -"vhost app.transcode.srs.com { \n " -" transcode live { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine { \n " -" enabled off; \n " -" } \n " -" } \n " -"} \n " -"vhost stream.transcode.srs.com { \n " -" transcode live/livestream { \n " -" enabled on; \n " -" ffmpeg ./objs/ffmpeg/bin/ffmpeg; \n " -" engine { \n " -" enabled off; \n " -" } \n " -" } \n " -"} \n " -" \n " -"vhost bandcheck.srs.com { \n " -" enabled on; \n " -" chunk_size 65000; \n " -" bandcheck { \n " -" enabled on; \n " -" key \"35c9b402c12a7246868752e2878f7e0e\"; \n " -" interval 30; \n " -" limit_kbps 4000; \n " -" } \n " -"} \n " -" \n " -"vhost chunksize.srs.com { \n " -" chunk_size 128; \n " -"} \n " -" \n " -"vhost jitter.srs.com { \n " -" time_jitter full; \n " -"} \n " -" \n " -"vhost atc.srs.com { \n " -" atc on; \n " -" atc_auto on; \n " -"} \n " -" \n " -"vhost removed.srs.com { \n " -" enabled off; \n " -"} \n " -" \n " -"pithy_print_ms 10000; \n " -; - VOID TEST(ConfigTest, CheckMacros) { #ifndef SRS_CONSTS_LOCALHOST EXPECT_TRUE(false); #endif -#ifndef SRS_CONF_DEFAULT_PID_FILE - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_COFNIG_FILE - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_MAX_CONNECTIONS - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HLS_PATH - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HLS_FRAGMENT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HLS_WINDOW - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_DVR_PATH - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_DVR_PLAN_SESSION - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_DVR_PLAN_SEGMENT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_DVR_PLAN - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_DVR_DURATION - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_TIME_JITTER - EXPECT_TRUE(false); -#endif -#ifndef SRS_PERF_PLAY_QUEUE - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_PAUSED_LENGTH - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_BANDWIDTH_INTERVAL - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_BANDWIDTH_LIMIT_KBPS - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_MOUNT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_DIR - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_STREAM_PORT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_API_PORT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_HEAETBEAT_ENABLED - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_HEAETBEAT_INTERVAL - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_HEAETBEAT_URL - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_HTTP_HEAETBEAT_SUMMARIES - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_STATS_NETWORK_DEVICE_INDEX - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_PITHY_PRINT_MS - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_INGEST_TYPE_FILE - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_INGEST_TYPE_STREAM - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_TRANSCODE_IFORMAT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_TRANSCODE_OFORMAT - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_LOG_FILE - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONSTS_NULL_FILE - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_FF_LOG_DIR - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_LOG_LEVEL - EXPECT_TRUE(false); -#endif -#ifndef SRS_CONF_DEFAULT_LOG_TANK_CONSOLE - EXPECT_TRUE(false); -#endif } VOID TEST(ConfigDirectiveTest, ParseEmpty) @@ -1374,2561 +706,6 @@ VOID TEST(ConfigMainTest, ParseInvalidDirective2) EXPECT_TRUE(ERROR_SUCCESS != conf.parse("chunk_size 4096;")); } -VOID TEST(ConfigMainTest, ParseFullConf) -{ - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vector listens = conf.get_listens(); - EXPECT_EQ(1, (int)listens.size()); - EXPECT_STREQ("1935", listens.at(0).c_str()); - - EXPECT_STREQ("./objs/srs.pid", conf.get_pid_file().c_str()); - EXPECT_EQ(60000, conf.get_chunk_size("")); - EXPECT_STREQ("./objs", conf.get_ffmpeg_log_dir().c_str()); - EXPECT_TRUE(conf.get_log_tank_file()); - EXPECT_STREQ("trace", conf.get_log_level().c_str()); - EXPECT_STREQ("./objs/srs.log", conf.get_log_file().c_str()); - EXPECT_EQ(1000, conf.get_max_connections()); - EXPECT_TRUE(conf.get_deamon()); - - EXPECT_FALSE(conf.get_heartbeat_enabled()); - EXPECT_EQ(9300, conf.get_heartbeat_interval()); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/servers", conf.get_heartbeat_url().c_str()); - EXPECT_STREQ("my-srs-device", conf.get_heartbeat_device_id().c_str()); - EXPECT_FALSE(conf.get_heartbeat_summaries()); - - EXPECT_EQ(0, conf.get_stats_network()); - ASSERT_TRUE(conf.get_stats_disk_device() != NULL); - EXPECT_EQ(4, (int)conf.get_stats_disk_device()->args.size()); - - EXPECT_TRUE(conf.get_http_api_enabled()); - EXPECT_STREQ("1985", conf.get_http_api_listen().c_str()); - - EXPECT_TRUE(conf.get_http_stream_enabled()); - EXPECT_STREQ("8080", conf.get_http_stream_listen().c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_http_stream_dir().c_str()); - - EXPECT_EQ(10000, conf.get_pithy_print_ms()); - - EXPECT_TRUE(NULL != conf.get_vhost("__defaultVhost__")); - EXPECT_TRUE(NULL != conf.get_vhost("same.edge.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("change.edge.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("dvr.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("ingest.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("http.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("with-hls.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("no-hls.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("hooks.callback.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("min.delay.com")); - EXPECT_TRUE(NULL != conf.get_vhost("refer.anti_suck.com")); - EXPECT_TRUE(NULL != conf.get_vhost("same.vhost.forward.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("change.vhost.forward.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("mirror.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("crop.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("logo.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("audio.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("vn.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("copy.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("all.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("ffempty.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("app.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("stream.transcode.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("bandcheck.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("chunksize.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("jitter.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("atc.srs.com")); - EXPECT_TRUE(NULL != conf.get_vhost("removed.srs.com")); - - string vhost; - - //////////////////////////////////////////////////////////////// - // default vhost template. - //////////////////////////////////////////////////////////////// - vhost = "__defaultVhost__"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); - //////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////// -} - -VOID TEST(ConfigMainTest, ParseFullConf_same_edge) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "same.edge.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_TRUE(conf.get_vhost_is_edge(vhost)); - EXPECT_TRUE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL != conf.get_vhost_edge_origin(vhost)); - if (true) { - SrsConfDirective* edge = conf.get_vhost_edge_origin(vhost); - EXPECT_STREQ("127.0.0.1:1935", edge->arg0().c_str()); - EXPECT_STREQ("localhost:1935", edge->arg1().c_str()); - } - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); -} - -VOID TEST(ConfigMainTest, ParseFullConf_change_edge) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "change.edge.srs.com"; - // TODO: FIXME: implements it. - /*EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost));*/ -} - -VOID TEST(ConfigMainTest, ParseFullConf_dvr) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "dvr.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_TRUE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); -} - -VOID TEST(ConfigMainTest, ParseFullConf_ingest) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "ingest.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - ASSERT_TRUE(conf.get_ingesters(vhost).size() == 1); - if (true) { - SrsConfDirective* ingest = conf.get_ingesters(vhost).at(0); - EXPECT_STREQ("livestream", ingest->arg0().c_str()); - - EXPECT_TRUE(ingest == conf.get_ingest_by_id(vhost, "livestream")); - EXPECT_TRUE(conf.get_ingest_enabled(ingest)); - EXPECT_STREQ( - "./objs/ffmpeg/bin/ffmpeg", - conf.get_ingest_ffmpeg(ingest).c_str() - ); - EXPECT_STREQ("file", conf.get_ingest_input_type(ingest).c_str()); - EXPECT_STREQ( - "./doc/source.200kbps.768x320.flv", - conf.get_ingest_input_url(ingest).c_str() - ); - - vector engines = conf.get_transcode_engines(ingest); - ASSERT_EQ(1, (int)engines.size()); - - SrsConfDirective* transcode = engines.at(0); - EXPECT_FALSE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/live?vhost=[vhost]/livestream", - conf.get_engine_output(transcode).c_str() - ); - } - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); -} - -VOID TEST(ConfigMainTest, ParseFullConf_http) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "http.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_hls_enabled) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "with-hls.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_TRUE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_hls_disabled) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "no-hls.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_http_hooks) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "hooks.callback.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_TRUE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL != conf.get_vhost_on_connect(vhost)); - if (true) { - SrsConfDirective* callback = conf.get_vhost_on_connect(vhost); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/clients", callback->arg0().c_str()); - EXPECT_STREQ("http://localhost:8085/api/v1/clients", callback->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_vhost_on_close(vhost)); - if (true) { - SrsConfDirective* callback = conf.get_vhost_on_close(vhost); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/clients", callback->arg0().c_str()); - EXPECT_STREQ("http://localhost:8085/api/v1/clients", callback->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_vhost_on_publish(vhost)); - if (true) { - SrsConfDirective* callback = conf.get_vhost_on_publish(vhost); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/streams", callback->arg0().c_str()); - EXPECT_STREQ("http://localhost:8085/api/v1/streams", callback->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_vhost_on_unpublish(vhost)); - if (true) { - SrsConfDirective* callback = conf.get_vhost_on_unpublish(vhost); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/streams", callback->arg0().c_str()); - EXPECT_STREQ("http://localhost:8085/api/v1/streams", callback->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_vhost_on_play(vhost)); - if (true) { - SrsConfDirective* callback = conf.get_vhost_on_play(vhost); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/sessions", callback->arg0().c_str()); - EXPECT_STREQ("http://localhost:8085/api/v1/sessions", callback->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_vhost_on_stop(vhost)); - if (true) { - SrsConfDirective* callback = conf.get_vhost_on_stop(vhost); - EXPECT_STREQ("http://127.0.0.1:8085/api/v1/sessions", callback->arg0().c_str()); - EXPECT_STREQ("http://localhost:8085/api/v1/sessions", callback->arg1().c_str()); - } - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_min_delay) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "min.delay.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_FALSE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(10, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_refer_anti_suck) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "refer.anti_suck.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL != conf.get_refer(vhost)); - if (true) { - SrsConfDirective* refer = conf.get_refer(vhost); - EXPECT_STREQ("github.com", refer->arg0().c_str()); - EXPECT_STREQ("github.io", refer->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_refer_play(vhost)); - if (true) { - SrsConfDirective* refer = conf.get_refer_play(vhost); - EXPECT_STREQ("github.com", refer->arg0().c_str()); - EXPECT_STREQ("github.io", refer->arg1().c_str()); - } - EXPECT_TRUE(NULL != conf.get_refer_publish(vhost)); - if (true) { - SrsConfDirective* refer = conf.get_refer_publish(vhost); - EXPECT_STREQ("github.com", refer->arg0().c_str()); - EXPECT_STREQ("github.io", refer->arg1().c_str()); - } - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_forward_same_vhost) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "same.vhost.forward.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL != conf.get_forward(vhost)); - if (true) { - SrsConfDirective* forward = conf.get_forward(vhost); - EXPECT_STREQ("127.0.0.1:1936", forward->arg0().c_str()); - EXPECT_STREQ("127.0.0.1:1937", forward->arg1().c_str()); - } - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_forward_change_vhost) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "change.vhost.forward.srs.com"; - // TODO: FIXME: implements it. - /*EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str());*/ -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_mirror) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "mirror.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() > 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(300, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(20, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(2, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("baseline", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("superfast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_crop) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "crop.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() > 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(300, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(20, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(2, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("baseline", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("superfast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_logo) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "logo.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() > 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(300, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(20, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(2, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("baseline", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("superfast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_audio) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "audio.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - if (true) { - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("copy", conf.get_engine_vcodec(engine).c_str()); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_vn) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "vn.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - if (true) { - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("vn", conf.get_engine_vcodec(engine).c_str()); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_copy) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "copy.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - if (true) { - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("copy", conf.get_engine_vcodec(engine).c_str()); - EXPECT_STREQ("copy", conf.get_engine_acodec(engine).c_str()); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_all) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "all.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/ffmpeg/bin/ffmpeg", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - if (true) { - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() > 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(1500, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(25, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(12, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("main", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("medium", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() > 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(70, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() > 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - if (true) { - SrsConfDirective* engine = engines.at(1); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(1200, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(25, conf.get_engine_vfps(engine)); - EXPECT_EQ(1382, conf.get_engine_vwidth(engine)); - EXPECT_EQ(576, conf.get_engine_vheight(engine)); - EXPECT_EQ(6, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("main", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("medium", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(70, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - if (true) { - SrsConfDirective* engine = engines.at(2); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(800, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(25, conf.get_engine_vfps(engine)); - EXPECT_EQ(1152, conf.get_engine_vwidth(engine)); - EXPECT_EQ(480, conf.get_engine_vheight(engine)); - EXPECT_EQ(4, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("main", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("fast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(60, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - if (true) { - SrsConfDirective* engine = engines.at(3); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(300, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(20, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(2, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("baseline", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("superfast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - if (true) { - SrsConfDirective* engine = engines.at(4); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("copy", conf.get_engine_vcodec(engine).c_str()); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - if (true) { - SrsConfDirective* engine = engines.at(5); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(300, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(20, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(2, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("baseline", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("superfast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("copy", conf.get_engine_acodec(engine).c_str()); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - if (true) { - SrsConfDirective* engine = engines.at(6); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("copy", conf.get_engine_vcodec(engine).c_str()); - EXPECT_STREQ("copy", conf.get_engine_acodec(engine).c_str()); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_ffempty) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "ffempty.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, ""); - - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - EXPECT_STREQ("./objs/research/ffempty", conf.get_transcode_ffmpeg(transcode).c_str()); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - SrsConfDirective* engine = engines.at(0); - EXPECT_TRUE(conf.get_engine_enabled(engine)); - EXPECT_STREQ("flv", conf.get_engine_iformat(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vfilter(engine).size() == 0); - EXPECT_STREQ("libx264", conf.get_engine_vcodec(engine).c_str()); - EXPECT_EQ(300, conf.get_engine_vbitrate(engine)); - EXPECT_EQ(20, conf.get_engine_vfps(engine)); - EXPECT_EQ(768, conf.get_engine_vwidth(engine)); - EXPECT_EQ(320, conf.get_engine_vheight(engine)); - EXPECT_EQ(2, conf.get_engine_vthreads(engine)); - EXPECT_STREQ("baseline", conf.get_engine_vprofile(engine).c_str()); - EXPECT_STREQ("superfast", conf.get_engine_vpreset(engine).c_str()); - EXPECT_TRUE((int)conf.get_engine_vparams(engine).size() == 0); - EXPECT_STREQ("libfdk_aac", conf.get_engine_acodec(engine).c_str()); - EXPECT_EQ(45, conf.get_engine_abitrate(engine)); - EXPECT_EQ(44100, conf.get_engine_asample_rate(engine)); - EXPECT_EQ(2, conf.get_engine_achannels(engine)); - EXPECT_TRUE((int)conf.get_engine_aparams(engine).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(engine).c_str()); - EXPECT_STREQ( - "rtmp://127.0.0.1:[port]/[app]?vhost=[vhost]/[stream]_[engine]", - conf.get_engine_output(engine).c_str() - ); - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_app) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "app.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "live")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, "live"); - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - SrsConfDirective* engine = engines.at(0); - EXPECT_FALSE(conf.get_engine_enabled(engine)); - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_transcode_stream) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "stream.transcode.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(NULL != conf.get_transcode(vhost, "live/livestream")); - if (true) { - SrsConfDirective* transcode = conf.get_transcode(vhost, "live/livestream"); - EXPECT_TRUE(conf.get_transcode_enabled(transcode)); - - vector engines = conf.get_transcode_engines(transcode); - ASSERT_TRUE((int)engines.size() != 0); - - SrsConfDirective* engine = engines.at(0); - EXPECT_FALSE(conf.get_engine_enabled(engine)); - } - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_bandcheck) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "bandcheck.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(65000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_TRUE(conf.get_bw_check_enabled(vhost)); - EXPECT_STREQ("35c9b402c12a7246868752e2878f7e0e", conf.get_bw_check_key(vhost).c_str()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(4000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_chunksize) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "chunksize.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(128, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_jitter) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "jitter.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_atc) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "atc.srs.com"; - EXPECT_TRUE(conf.get_vhost_enabled(vhost)); - EXPECT_TRUE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_TRUE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - -VOID TEST(ConfigMainTest, ParseFullConf_removed) -{ - string vhost; - MockSrsConfig conf; - EXPECT_TRUE(ERROR_SUCCESS == conf.parse(_full_conf)); - - vhost = "removed.srs.com"; - EXPECT_FALSE(conf.get_vhost_enabled(vhost)); - EXPECT_FALSE(conf.get_vhost_enabled(conf.get_vhost(vhost))); - EXPECT_TRUE(conf.get_gop_cache(vhost)); - EXPECT_TRUE(conf.get_debug_srs_upnode(vhost)); - EXPECT_FALSE(conf.get_atc(vhost)); - EXPECT_TRUE(conf.get_atc_auto(vhost)); - EXPECT_TRUE(conf.get_time_jitter(vhost) == SrsRtmpJitterAlgorithmFULL); - EXPECT_FLOAT_EQ(30, conf.get_queue_length(vhost)); - EXPECT_TRUE(NULL == conf.get_refer(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_play(vhost)); - EXPECT_TRUE(NULL == conf.get_refer_publish(vhost)); - EXPECT_EQ(60000, conf.get_chunk_size(vhost)); - EXPECT_TRUE(NULL == conf.get_forward(vhost)); - EXPECT_FALSE(conf.get_vhost_http_hooks_enabled(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_connect(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_close(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_publish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_unpublish(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_play(vhost)); - EXPECT_TRUE(NULL == conf.get_vhost_on_stop(vhost)); - EXPECT_FALSE(conf.get_bw_check_enabled(vhost)); - EXPECT_TRUE(conf.get_bw_check_key(vhost).empty()); - EXPECT_EQ(30000, conf.get_bw_check_interval_ms(vhost)); - EXPECT_EQ(1000, conf.get_bw_check_limit_kbps(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(vhost)); - EXPECT_FALSE(conf.get_vhost_is_edge(conf.get_vhost(vhost))); - EXPECT_TRUE(NULL == conf.get_vhost_edge_origin(vhost)); - EXPECT_FALSE(conf.get_vhost_edge_token_traverse(vhost)); - EXPECT_TRUE(NULL == conf.get_transcode(vhost, "")); - EXPECT_FALSE(conf.get_transcode_enabled(NULL)); - EXPECT_TRUE(conf.get_transcode_ffmpeg(NULL).empty()); - EXPECT_TRUE(conf.get_transcode_engines(NULL).size() == 0); - EXPECT_FALSE(conf.get_engine_enabled(NULL)); - EXPECT_STREQ("flv", conf.get_engine_iformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_vfilter(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_vcodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vbitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vfps(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vwidth(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vheight(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vthreads(NULL) == 0); - EXPECT_TRUE(conf.get_engine_vprofile(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vpreset(NULL).empty()); - EXPECT_TRUE(conf.get_engine_vparams(NULL).size() == 0); - EXPECT_TRUE(conf.get_engine_acodec(NULL).empty()); - EXPECT_TRUE(conf.get_engine_abitrate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_asample_rate(NULL) == 0); - EXPECT_TRUE(conf.get_engine_achannels(NULL) == 0); - EXPECT_TRUE(conf.get_engine_aparams(NULL).size() == 0); - EXPECT_STREQ("flv", conf.get_engine_oformat(NULL).c_str()); - EXPECT_TRUE(conf.get_engine_output(NULL).empty()); - EXPECT_TRUE(conf.get_ingesters(vhost).size() == 0); - EXPECT_TRUE(NULL == conf.get_ingest_by_id(vhost, "")); - EXPECT_FALSE(conf.get_ingest_enabled(NULL)); - EXPECT_TRUE(conf.get_ingest_ffmpeg(NULL).empty()); - EXPECT_STREQ("file", conf.get_ingest_input_type(NULL).c_str()); - EXPECT_TRUE(conf.get_ingest_input_url(NULL).empty()); - EXPECT_FALSE(conf.get_hls_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_hls_path(vhost).c_str()); - EXPECT_EQ(10, conf.get_hls_fragment(vhost)); - EXPECT_EQ(60, conf.get_hls_window(vhost)); - EXPECT_FALSE(conf.get_dvr_enabled(vhost)); - EXPECT_STREQ("./objs/nginx/html", conf.get_dvr_path(vhost).c_str()); - EXPECT_STREQ("session", conf.get_dvr_plan(vhost).c_str()); - EXPECT_EQ(30, conf.get_dvr_duration(vhost)); - EXPECT_TRUE(conf.get_dvr_wait_keyframe(vhost)); - EXPECT_TRUE(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost)); - EXPECT_FALSE(conf.get_vhost_http_enabled(vhost)); - EXPECT_STREQ("[vhost]/", conf.get_vhost_http_mount(vhost).c_str()); - EXPECT_STREQ("./objs/nginx/html", conf.get_vhost_http_dir(vhost).c_str()); -} - VOID TEST(ConfigMainTest, CheckConf_listen) { if (true) { diff --git a/trunk/src/utest/srs_utest_kernel.cpp b/trunk/src/utest/srs_utest_kernel.cpp index bbc4e7af6..93c69c80c 100644 --- a/trunk/src/utest/srs_utest_kernel.cpp +++ b/trunk/src/utest/srs_utest_kernel.cpp @@ -410,7 +410,7 @@ VOID TEST(KernelFlvTest, FlvEncoderWriteHeader) char flv_header[] = { 'F', 'L', 'V', // Signatures "FLV" (char)0x01, // File version (for example, 0x01 for FLV version 1) - (char)0x00, // 4, audio; 1, video; 5 audio+video. + (char)0x05, // 4, audio; 1, video; 5 audio+video. (char)0x00, (char)0x00, (char)0x00, (char)0x09 // DataOffset UI32 The length of this header in bytes }; char pts[] = { (char)0x00, (char)0x00, (char)0x00, (char)0x00 }; diff --git a/trunk/src/utest/srs_utest_protocol.cpp b/trunk/src/utest/srs_utest_protocol.cpp index 10acc930c..e5a47498c 100644 --- a/trunk/src/utest/srs_utest_protocol.cpp +++ b/trunk/src/utest/srs_utest_protocol.cpp @@ -4642,114 +4642,6 @@ VOID TEST(ProtocolStackTest, ProtocolSendVMessage) EXPECT_EQ(16, bio.out_buffer.length()); } -/** -* send a SrsConnectAppPacket packet -*/ -VOID TEST(ProtocolStackTest, ProtocolSendSrsConnectAppPacket) -{ - MockBufferIO bio; - SrsProtocol proto(&bio); - - SrsConnectAppPacket* pkt = new SrsConnectAppPacket(); - pkt->command_object = SrsAmf0Any::object(); - pkt->args = SrsAmf0Any::object(); - - pkt->command_object->set("version", SrsAmf0Any::str("1.0.0")); - pkt->command_object->set("build", SrsAmf0Any::number(150)); - SrsAmf0Object* data = SrsAmf0Any::object(); - pkt->command_object->set("data", data); - - data->set("server", SrsAmf0Any::str("SRS")); - data->set("signature", SrsAmf0Any::str("ossrs")); - - pkt->args->set("info", SrsAmf0Any::str("NetStream.Status.Info")); - pkt->args->set("desc", SrsAmf0Any::str("connected")); - pkt->args->set("data", SrsAmf0Any::ecma_array()); - - EXPECT_TRUE(ERROR_SUCCESS == proto.send_and_free_packet(pkt, 0)); - char buf[] = { - (char)0x03, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0xb2, (char)0x14, - (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x02, (char)0x00, (char)0x07, (char)0x63, - (char)0x6f, (char)0x6e, (char)0x6e, (char)0x65, (char)0x63, (char)0x74, (char)0x00, (char)0x3f, - (char)0xf0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x03, - (char)0x00, (char)0x07, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, - (char)0x6e, (char)0x02, (char)0x00, (char)0x05, (char)0x31, (char)0x2e, (char)0x30, (char)0x2e, - (char)0x30, (char)0x00, (char)0x05, (char)0x62, (char)0x75, (char)0x69, (char)0x6c, (char)0x64, - (char)0x00, (char)0x40, (char)0x62, (char)0xc0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x04, (char)0x64, (char)0x61, (char)0x74, (char)0x61, (char)0x03, - (char)0x00, (char)0x06, (char)0x73, (char)0x65, (char)0x72, (char)0x76, (char)0x65, (char)0x72, - (char)0x02, (char)0x00, (char)0x03, (char)0x53, (char)0x52, (char)0x53, (char)0x00, (char)0x09, - (char)0x73, (char)0x69, (char)0x67, (char)0x6e, (char)0x61, (char)0x74, (char)0x75, (char)0x72, - (char)0x65, (char)0x02, (char)0x00, (char)0x12, (char)0x73, (char)0x69, (char)0x6d, (char)0x70, - (char)0x6c, (char)0x65, (char)0x2d, (char)0x72, (char)0x74, (char)0x6d, (char)0x70, (char)0x2d, - (char)0x73, (char)0x65, (char)0x72, (char)0x76, (char)0x65, (char)0x72, (char)0x00, (char)0x00, - (char)0x09, (char)0x00, (char)0x00, (char)0x09, (char)0x03, (char)0x00, (char)0x04, (char)0x69, - (char)0x6e, (char)0x66, (char)0x6f, (char)0x02, (char)0x00, (char)0x15, (char)0x4e, (char)0x65, - (char)0x74, (char)0x53, (char)0x74, (char)0x72, (char)0xc3, (char)0x65, (char)0x61, (char)0x6d, - (char)0x2e, (char)0x53, (char)0x74, (char)0x61, (char)0x74, (char)0x75, (char)0x73, (char)0x2e, - (char)0x49, (char)0x6e, (char)0x66, (char)0x6f, (char)0x00, (char)0x04, (char)0x64, (char)0x65, - (char)0x73, (char)0x63, (char)0x02, (char)0x00, (char)0x09, (char)0x63, (char)0x6f, (char)0x6e, - (char)0x6e, (char)0x65, (char)0x63, (char)0x74, (char)0x65, (char)0x64, (char)0x00, (char)0x04, - (char)0x64, (char)0x61, (char)0x74, (char)0x61, (char)0x08, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x00, (char)0x09, (char)0x00, (char)0x00, (char)0x09 - }; - EXPECT_TRUE(srs_bytes_equals(bio.out_buffer.bytes(), buf, sizeof(buf))); -} - -/** -* send a SrsConnectAppResPacket packet -*/ -VOID TEST(ProtocolStackTest, ProtocolSendSrsConnectAppResPacket) -{ - MockBufferIO bio; - SrsProtocol proto(&bio); - - SrsConnectAppResPacket* pkt = new SrsConnectAppResPacket(); - pkt->props = SrsAmf0Any::object(); - pkt->info = SrsAmf0Any::object(); - - pkt->props->set("version", SrsAmf0Any::str("1.0.0")); - pkt->props->set("build", SrsAmf0Any::number(150)); - SrsAmf0Object* data = SrsAmf0Any::object(); - pkt->props->set("data", data); - - data->set("server", SrsAmf0Any::str("SRS")); - data->set("signature", SrsAmf0Any::str("ossrs")); - - pkt->info->set("info", SrsAmf0Any::str("NetStream.Status.Info")); - pkt->info->set("desc", SrsAmf0Any::str("connected")); - pkt->info->set("data", SrsAmf0Any::ecma_array()); - - EXPECT_TRUE(ERROR_SUCCESS == proto.send_and_free_packet(pkt, 0)); - char buf[] = { - (char)0x03, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0xb2, (char)0x14, - (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x02, (char)0x00, (char)0x07, (char)0x5f, - (char)0x72, (char)0x65, (char)0x73, (char)0x75, (char)0x6c, (char)0x74, (char)0x00, (char)0x3f, - (char)0xf0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x03, - (char)0x00, (char)0x07, (char)0x76, (char)0x65, (char)0x72, (char)0x73, (char)0x69, (char)0x6f, - (char)0x6e, (char)0x02, (char)0x00, (char)0x05, (char)0x31, (char)0x2e, (char)0x30, (char)0x2e, - (char)0x30, (char)0x00, (char)0x05, (char)0x62, (char)0x75, (char)0x69, (char)0x6c, (char)0x64, - (char)0x00, (char)0x40, (char)0x62, (char)0xc0, (char)0x00, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x04, (char)0x64, (char)0x61, (char)0x74, (char)0x61, (char)0x03, - (char)0x00, (char)0x06, (char)0x73, (char)0x65, (char)0x72, (char)0x76, (char)0x65, (char)0x72, - (char)0x02, (char)0x00, (char)0x03, (char)0x53, (char)0x52, (char)0x53, (char)0x00, (char)0x09, - (char)0x73, (char)0x69, (char)0x67, (char)0x6e, (char)0x61, (char)0x74, (char)0x75, (char)0x72, - (char)0x65, (char)0x02, (char)0x00, (char)0x12, (char)0x73, (char)0x69, (char)0x6d, (char)0x70, - (char)0x6c, (char)0x65, (char)0x2d, (char)0x72, (char)0x74, (char)0x6d, (char)0x70, (char)0x2d, - (char)0x73, (char)0x65, (char)0x72, (char)0x76, (char)0x65, (char)0x72, (char)0x00, (char)0x00, - (char)0x09, (char)0x00, (char)0x00, (char)0x09, (char)0x03, (char)0x00, (char)0x04, (char)0x69, - (char)0x6e, (char)0x66, (char)0x6f, (char)0x02, (char)0x00, (char)0x15, (char)0x4e, (char)0x65, - (char)0x74, (char)0x53, (char)0x74, (char)0x72, (char)0xc3, (char)0x65, (char)0x61, (char)0x6d, - (char)0x2e, (char)0x53, (char)0x74, (char)0x61, (char)0x74, (char)0x75, (char)0x73, (char)0x2e, - (char)0x49, (char)0x6e, (char)0x66, (char)0x6f, (char)0x00, (char)0x04, (char)0x64, (char)0x65, - (char)0x73, (char)0x63, (char)0x02, (char)0x00, (char)0x09, (char)0x63, (char)0x6f, (char)0x6e, - (char)0x6e, (char)0x65, (char)0x63, (char)0x74, (char)0x65, (char)0x64, (char)0x00, (char)0x04, - (char)0x64, (char)0x61, (char)0x74, (char)0x61, (char)0x08, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x00, (char)0x09, (char)0x00, (char)0x00, (char)0x09 - }; - EXPECT_TRUE(srs_bytes_equals(bio.out_buffer.bytes(), buf, sizeof(buf))); -} - /** * send a SrsCallPacket packet */ @@ -4937,36 +4829,6 @@ VOID TEST(ProtocolStackTest, ProtocolSendSrsPublishPacket) EXPECT_TRUE(srs_bytes_equals(bio.out_buffer.bytes(), buf, sizeof(buf))); } -/** -* send a SrsPlayPacket packet -*/ -VOID TEST(ProtocolStackTest, ProtocolSendSrsPlayPacket) -{ - MockBufferIO bio; - SrsProtocol proto(&bio); - - SrsPlayPacket* pkt = new SrsPlayPacket(); - pkt->command_name = "play"; - pkt->command_object = SrsAmf0Any::null(); - pkt->stream_name = "livestream"; - pkt->start = 0; - pkt->duration = 0; - pkt->reset = true; - - EXPECT_TRUE(ERROR_SUCCESS == proto.send_and_free_packet(pkt, 0)); - char buf[] = { - (char)0x05, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x32, (char)0x14, - (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x02, (char)0x00, (char)0x04, (char)0x70, - (char)0x6c, (char)0x61, (char)0x79, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x05, (char)0x02, (char)0x00, (char)0x0a, - (char)0x6c, (char)0x69, (char)0x76, (char)0x65, (char)0x73, (char)0x74, (char)0x72, (char)0x65, - (char)0x61, (char)0x6d, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x00, - (char)0x00, (char)0x00, (char)0x00, (char)0x00, (char)0x01, (char)0x01 - }; - EXPECT_TRUE(srs_bytes_equals(bio.out_buffer.bytes(), buf, sizeof(buf))); -} - /** * send a SrsPlayResPacket packet */