mirror of
https://github.com/ossrs/srs.git
synced 2025-02-13 03:41:55 +00:00
add config utest, for default vhost
This commit is contained in:
parent
f1b1dc0c64
commit
77236920b6
3 changed files with 101 additions and 0 deletions
|
@ -2312,6 +2312,10 @@ SrsConfDirective* SrsConfig::get_ingest_by_id(string vhost, string ingest_id)
|
||||||
|
|
||||||
bool SrsConfig::get_ingest_enabled(SrsConfDirective* ingest)
|
bool SrsConfig::get_ingest_enabled(SrsConfDirective* ingest)
|
||||||
{
|
{
|
||||||
|
if (!ingest) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
SrsConfDirective* conf = ingest->get("enabled");
|
SrsConfDirective* conf = ingest->get("enabled");
|
||||||
|
|
||||||
if (!conf || conf->arg0() != "on") {
|
if (!conf || conf->arg0() != "on") {
|
||||||
|
@ -2323,6 +2327,10 @@ bool SrsConfig::get_ingest_enabled(SrsConfDirective* ingest)
|
||||||
|
|
||||||
string SrsConfig::get_ingest_ffmpeg(SrsConfDirective* ingest)
|
string SrsConfig::get_ingest_ffmpeg(SrsConfDirective* ingest)
|
||||||
{
|
{
|
||||||
|
if (!ingest) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
SrsConfDirective* conf = ingest->get("ffmpeg");
|
SrsConfDirective* conf = ingest->get("ffmpeg");
|
||||||
|
|
||||||
if (!conf) {
|
if (!conf) {
|
||||||
|
@ -2334,6 +2342,10 @@ string SrsConfig::get_ingest_ffmpeg(SrsConfDirective* ingest)
|
||||||
|
|
||||||
string SrsConfig::get_ingest_input_type(SrsConfDirective* ingest)
|
string SrsConfig::get_ingest_input_type(SrsConfDirective* ingest)
|
||||||
{
|
{
|
||||||
|
if (!ingest) {
|
||||||
|
return SRS_CONF_DEFAULT_INGEST_TYPE_FILE;
|
||||||
|
}
|
||||||
|
|
||||||
SrsConfDirective* conf = ingest->get("input");
|
SrsConfDirective* conf = ingest->get("input");
|
||||||
|
|
||||||
if (!conf) {
|
if (!conf) {
|
||||||
|
@ -2351,6 +2363,10 @@ string SrsConfig::get_ingest_input_type(SrsConfDirective* ingest)
|
||||||
|
|
||||||
string SrsConfig::get_ingest_input_url(SrsConfDirective* ingest)
|
string SrsConfig::get_ingest_input_url(SrsConfDirective* ingest)
|
||||||
{
|
{
|
||||||
|
if (!ingest) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
SrsConfDirective* conf = ingest->get("input");
|
SrsConfDirective* conf = ingest->get("input");
|
||||||
|
|
||||||
if (!conf) {
|
if (!conf) {
|
||||||
|
|
|
@ -449,28 +449,33 @@ public:
|
||||||
* whether gop_cache is enabled of vhost.
|
* whether gop_cache is enabled of vhost.
|
||||||
* gop_cache used to cache last gop, for client to fast startup.
|
* gop_cache used to cache last gop, for client to fast startup.
|
||||||
* @return true when gop_cache is ok; otherwise, false.
|
* @return true when gop_cache is ok; otherwise, false.
|
||||||
|
* @remark, default true.
|
||||||
*/
|
*/
|
||||||
virtual bool get_gop_cache(std::string vhost);
|
virtual bool get_gop_cache(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* whether atc is enabled of vhost.
|
* whether atc is enabled of vhost.
|
||||||
* atc always use encoder timestamp, SRS never adjust the time.
|
* atc always use encoder timestamp, SRS never adjust the time.
|
||||||
* @return true when atc is ok; otherwise, false.
|
* @return true when atc is ok; otherwise, false.
|
||||||
|
* @remark, default false.
|
||||||
*/
|
*/
|
||||||
virtual bool get_atc(std::string vhost);
|
virtual bool get_atc(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* whether atc_auto is enabled of vhost.
|
* whether atc_auto is enabled of vhost.
|
||||||
* atc_auto used to auto enable atc, when metadata specified the bravo_atc.
|
* atc_auto used to auto enable atc, when metadata specified the bravo_atc.
|
||||||
* @return true when atc_auto is ok; otherwise, false.
|
* @return true when atc_auto is ok; otherwise, false.
|
||||||
|
* @remark, default true.
|
||||||
*/
|
*/
|
||||||
virtual bool get_atc_auto(std::string vhost);
|
virtual bool get_atc_auto(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* get the time_jitter algorithm.
|
* get the time_jitter algorithm.
|
||||||
* @return the time_jitter algorithm, defined in SrsRtmpJitterAlgorithm.
|
* @return the time_jitter algorithm, defined in SrsRtmpJitterAlgorithm.
|
||||||
|
* @remark, default full.
|
||||||
*/
|
*/
|
||||||
virtual int get_time_jitter(std::string vhost);
|
virtual int get_time_jitter(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* get the cache queue length, in seconds.
|
* get the cache queue length, in seconds.
|
||||||
* when exceed the queue length, drop packet util I frame.
|
* when exceed the queue length, drop packet util I frame.
|
||||||
|
* @remark, default 10.
|
||||||
*/
|
*/
|
||||||
virtual double get_queue_length(std::string vhost);
|
virtual double get_queue_length(std::string vhost);
|
||||||
/**
|
/**
|
||||||
|
@ -478,20 +483,24 @@ public:
|
||||||
* each args of directive is a refer config.
|
* each args of directive is a refer config.
|
||||||
* when the client refer(pageUrl) not match the refer config,
|
* when the client refer(pageUrl) not match the refer config,
|
||||||
* SRS will reject the connection.
|
* SRS will reject the connection.
|
||||||
|
* @remark, default NULL.
|
||||||
*/
|
*/
|
||||||
virtual SrsConfDirective* get_refer(std::string vhost);
|
virtual SrsConfDirective* get_refer(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* get the play refer, refer for play clients.
|
* get the play refer, refer for play clients.
|
||||||
|
* @remark, default NULL.
|
||||||
*/
|
*/
|
||||||
virtual SrsConfDirective* get_refer_play(std::string vhost);
|
virtual SrsConfDirective* get_refer_play(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* get the publish refer, refer for publish clients.
|
* get the publish refer, refer for publish clients.
|
||||||
|
* @remark, default NULL.
|
||||||
*/
|
*/
|
||||||
virtual SrsConfDirective* get_refer_publish(std::string vhost);
|
virtual SrsConfDirective* get_refer_publish(std::string vhost);
|
||||||
/**
|
/**
|
||||||
* get the chunk size of vhost.
|
* get the chunk size of vhost.
|
||||||
* @param vhost, the vhost to get the chunk size. use global if not specified.
|
* @param vhost, the vhost to get the chunk size. use global if not specified.
|
||||||
* empty string to get the global.
|
* empty string to get the global.
|
||||||
|
* @remark, default 60000.
|
||||||
*/
|
*/
|
||||||
virtual int get_chunk_size(std::string vhost);
|
virtual int get_chunk_size(std::string vhost);
|
||||||
private:
|
private:
|
||||||
|
|
|
@ -27,6 +27,7 @@ using namespace std;
|
||||||
#include <srs_app_config.hpp>
|
#include <srs_app_config.hpp>
|
||||||
#include <srs_kernel_consts.hpp>
|
#include <srs_kernel_consts.hpp>
|
||||||
#include <srs_kernel_error.hpp>
|
#include <srs_kernel_error.hpp>
|
||||||
|
#include <srs_app_source.hpp>
|
||||||
|
|
||||||
MockSrsConfigBuffer::MockSrsConfigBuffer(string buf)
|
MockSrsConfigBuffer::MockSrsConfigBuffer(string buf)
|
||||||
{
|
{
|
||||||
|
@ -1837,6 +1838,14 @@ VOID TEST(ConfigMainTest, ParseFullConf)
|
||||||
EXPECT_EQ(8080, conf.get_http_stream_listen());
|
EXPECT_EQ(8080, conf.get_http_stream_listen());
|
||||||
EXPECT_STREQ("./objs/nginx/html", conf.get_http_stream_dir().c_str());
|
EXPECT_STREQ("./objs/nginx/html", conf.get_http_stream_dir().c_str());
|
||||||
|
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_publish());
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_play());
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_forwarder());
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_encoder());
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_ingester());
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_hls());
|
||||||
|
EXPECT_EQ(10000, conf.get_pithy_print_edge());
|
||||||
|
|
||||||
EXPECT_TRUE(NULL != conf.get_vhost("__defaultVhost__"));
|
EXPECT_TRUE(NULL != conf.get_vhost("__defaultVhost__"));
|
||||||
EXPECT_TRUE(NULL != conf.get_vhost("same.edge.srs.com"));
|
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("change.edge.srs.com"));
|
||||||
|
@ -1865,4 +1874,71 @@ VOID TEST(ConfigMainTest, ParseFullConf)
|
||||||
EXPECT_TRUE(NULL != conf.get_vhost("jitter.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("atc.srs.com"));
|
||||||
EXPECT_TRUE(NULL != conf.get_vhost("removed.srs.com"));
|
EXPECT_TRUE(NULL != conf.get_vhost("removed.srs.com"));
|
||||||
|
|
||||||
|
string 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_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_TRUE(NULL == conf.get_vhost_on_dvr_hss_reap_flv(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(SrsRtmpJitterAlgorithmFULL == conf.get_dvr_time_jitter(vhost));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue