mirror of https://github.com/ossrs/srs.git
Support include empty config file. v5.0.173 v6.0.68 (#3768)
SRS supports including another configuration in the include package. When generating configurations, we can only generate the changed configurations, while the unchanged configurations are in the fixed files, for example: ```nginx listen 1935; include server.conf; ``` In `server.conf`, we can manage the changing configurations with the program: ```nginx http_api { enabled on; } ``` However, during system initialization, we often create an empty `server.conf`, and the content is generated only after the program starts, so `server.conf` might be an empty file. This also makes it convenient to use a script to confirm the existence of this file: ```bash touch server.conf ``` Currently, SRS does not support empty configurations and will report an error. This PR is to solve this problem, making it more convenient to use include. `TRANS_BY_GPT4` --------- Co-authored-by: Haibo Chen <495810242@qq.com>pull/3781/head
parent
b5347e19f7
commit
cf46dae80f
@ -0,0 +1,47 @@
|
||||
//
|
||||
// Copyright (c) 2013-2023 The SRS Authors
|
||||
//
|
||||
// SPDX-License-Identifier: MIT or MulanPSL-2.0
|
||||
//
|
||||
#include <srs_utest_config2.hpp>
|
||||
|
||||
#include <srs_kernel_error.hpp>
|
||||
#include <srs_kernel_file.hpp>
|
||||
#include <srs_utest_kernel.hpp>
|
||||
|
||||
VOID TEST(ConfigMainTest, CheckIncludeEmptyConfig)
|
||||
{
|
||||
srs_error_t err;
|
||||
|
||||
if (true) {
|
||||
string filepath = _srs_tmp_file_prefix + "utest-main.conf";
|
||||
MockFileRemover _mfr(filepath);
|
||||
|
||||
string included = _srs_tmp_file_prefix + "utest-included-empty.conf";
|
||||
MockFileRemover _mfr2(included);
|
||||
|
||||
if (true) {
|
||||
SrsFileWriter fw;
|
||||
fw.open(included);
|
||||
}
|
||||
|
||||
if (true) {
|
||||
SrsFileWriter fw;
|
||||
fw.open(filepath);
|
||||
string content = _MIN_OK_CONF "include " + included + ";";
|
||||
fw.write((void*)content.data(), (int)content.length(), NULL);
|
||||
}
|
||||
|
||||
SrsConfig conf;
|
||||
HELPER_ASSERT_SUCCESS(conf.parse_file(filepath.c_str()));
|
||||
EXPECT_EQ(1, (int)conf.get_listens().size());
|
||||
}
|
||||
|
||||
if (true) {
|
||||
MockSrsConfig conf;
|
||||
conf.mock_include("test.conf", "");
|
||||
HELPER_ASSERT_SUCCESS(conf.parse(_MIN_OK_CONF "include test.conf;"));
|
||||
EXPECT_EQ(1, (int)conf.get_listens().size());
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,16 @@
|
||||
//
|
||||
// Copyright (c) 2013-2023 The SRS Authors
|
||||
//
|
||||
// SPDX-License-Identifier: MIT or MulanPSL-2.0
|
||||
//
|
||||
|
||||
#ifndef SRS_UTEST_CONFIG2_HPP
|
||||
#define SRS_UTEST_CONFIG2_HPP
|
||||
|
||||
/*
|
||||
#include <srs_utest_config2.hpp>
|
||||
*/
|
||||
#include <srs_utest_config.hpp>
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue