Skip to content

Commit e3f0676

Browse files
authored
testrunner: reduced usage of mutable Settings / some cleanups (#5909)
1 parent f403177 commit e3f0676

21 files changed

Lines changed: 129 additions & 137 deletions

test/fixture.cpp

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -461,9 +461,11 @@ TestFixture::SettingsBuilder& TestFixture::SettingsBuilder::platform(Platform::T
461461
TestFixture::SettingsBuilder& TestFixture::SettingsBuilder::libraryxml(const char xmldata[], std::size_t len)
462462
{
463463
tinyxml2::XMLDocument doc;
464-
if (tinyxml2::XML_SUCCESS != doc.Parse(xmldata, len))
465-
throw std::runtime_error("loading XML data failed");
466-
if (settings.library.load(doc).errorcode != Library::ErrorCode::OK)
467-
throw std::runtime_error("loading library XML failed");
464+
const tinyxml2::XMLError xml_error = doc.Parse(xmldata, len);
465+
if (tinyxml2::XML_SUCCESS != xml_error)
466+
throw std::runtime_error(std::string("loading XML data failed - ") + tinyxml2::XMLDocument::ErrorIDToName(xml_error));
467+
const Library::ErrorCode lib_error = settings.library.load(doc).errorcode;
468+
if (lib_error != Library::ErrorCode::OK)
469+
throw std::runtime_error("loading library XML failed - " + std::to_string(static_cast<int>(lib_error)));
468470
return *this;
469471
}

test/fixture.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,6 @@ class TestFixture : public ErrorLogger {
282282
#define REGISTER_TEST( CLASSNAME ) namespace { CLASSNAME instance_ ## CLASSNAME; }
283283

284284
#define LOAD_LIB_2_EXE( LIB, NAME, EXE ) do { if (((LIB).load((EXE), NAME).errorcode != Library::ErrorCode::OK)) throw std::runtime_error("library '" + std::string(NAME) + "' not found"); } while (false)
285-
#define LOAD_LIB_2( LIB, NAME ) LOAD_LIB_2_EXE(LIB, NAME, exename.c_str())
286285

287286
#define PLATFORM( P, T ) do { std::string errstr; assertEquals(__FILE__, __LINE__, true, P.set(Platform::toString(T), errstr, {exename}), errstr); } while (false)
288287

test/testbufferoverrun.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class TestBufferOverrun : public TestFixture {
3838
TestBufferOverrun() : TestFixture("TestBufferOverrun") {}
3939

4040
private:
41-
Settings settings0 = settingsBuilder().library("std.cfg").severity(Severity::warning).severity(Severity::style).severity(Severity::portability).build();
41+
/*const*/ Settings settings0 = settingsBuilder().library("std.cfg").severity(Severity::warning).severity(Severity::style).severity(Severity::portability).build();
4242

4343
#define check(...) check_(__FILE__, __LINE__, __VA_ARGS__)
4444
void check_(const char* file, int line, const char code[], const char filename[] = "test.cpp") {
@@ -4191,7 +4191,7 @@ class TestBufferOverrun : public TestFixture {
41914191
" <arg nr=\"3\"/>\n"
41924192
" </function>\n"
41934193
"</def>";
4194-
Settings settings = settingsBuilder().libraryxml(xmldata, sizeof(xmldata)).severity(Severity::warning).build();
4194+
/*const*/ Settings settings = settingsBuilder().libraryxml(xmldata, sizeof(xmldata)).severity(Severity::warning).build();
41954195
settings.platform.sizeof_wchar_t = 4;
41964196

41974197
check("void f() {\n"

test/testclass.cpp

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,10 @@ class TestClass : public TestFixture {
3535
TestClass() : TestFixture("TestClass") {}
3636

3737
private:
38-
Settings settings0 = settingsBuilder().severity(Severity::style).library("std.cfg").build();
38+
const Settings settings0 = settingsBuilder().severity(Severity::style).library("std.cfg").build();
3939
const Settings settings1 = settingsBuilder().severity(Severity::warning).library("std.cfg").build();
40+
const Settings settings2 = settingsBuilder().severity(Severity::style).library("std.cfg").certainty(Certainty::inconclusive).build();
41+
const Settings settings3 = settingsBuilder().severity(Severity::style).library("std.cfg").severity(Severity::warning).build();
4042

4143
void run() override {
4244
TEST_CASE(virtualDestructor1); // Base class not found => no error
@@ -731,15 +733,15 @@ class TestClass : public TestFixture {
731733
// Clear the error log
732734
errout.str("");
733735

734-
Preprocessor preprocessor(settings0);
736+
Preprocessor preprocessor(settings3);
735737

736738
// Tokenize..
737-
Tokenizer tokenizer(settings0, this, &preprocessor);
739+
Tokenizer tokenizer(settings3, this, &preprocessor);
738740
std::istringstream istr(code);
739741
ASSERT_LOC(tokenizer.tokenize(istr, "test.cpp"), file, line);
740742

741743
// Check..
742-
CheckClass checkClass(&tokenizer, &settings0, this);
744+
CheckClass checkClass(&tokenizer, &settings3, this);
743745
checkClass.copyconstructors();
744746
}
745747

@@ -2617,19 +2619,17 @@ class TestClass : public TestFixture {
26172619
// Clear the error log
26182620
errout.str("");
26192621

2620-
// TODO: subsequent tests depend on these changes - should use SettingsBuilder
2621-
settings0.certainty.setEnabled(Certainty::inconclusive, inconclusive);
2622-
settings0.severity.enable(Severity::warning);
2622+
const Settings s = settingsBuilder(settings0).certainty(Certainty::inconclusive, inconclusive).severity(Severity::warning).build();
26232623

2624-
Preprocessor preprocessor(settings0);
2624+
Preprocessor preprocessor(s);
26252625

26262626
// Tokenize..
2627-
Tokenizer tokenizer(settings0, this, &preprocessor);
2627+
Tokenizer tokenizer(s, this, &preprocessor);
26282628
std::istringstream istr(code);
26292629
ASSERT_LOC(tokenizer.tokenize(istr, "test.cpp"), file, line);
26302630

26312631
// Check..
2632-
CheckClass checkClass(&tokenizer, &settings0, this);
2632+
CheckClass checkClass(&tokenizer, &s, this);
26332633
checkClass.virtualDestructor();
26342634
}
26352635

@@ -7565,16 +7565,14 @@ class TestClass : public TestFixture {
75657565
errout.str("");
75667566

75677567
// Check..
7568-
settings0.certainty.setEnabled(Certainty::inconclusive, true);
7569-
7570-
Preprocessor preprocessor(settings0);
7568+
Preprocessor preprocessor(settings2);
75717569

75727570
// Tokenize..
7573-
Tokenizer tokenizer(settings0, this, &preprocessor);
7571+
Tokenizer tokenizer(settings2, this, &preprocessor);
75747572
std::istringstream istr(code);
75757573
ASSERT_LOC(tokenizer.tokenize(istr, "test.cpp"), file, line);
75767574

7577-
CheckClass checkClass(&tokenizer, &settings0, this);
7575+
CheckClass checkClass(&tokenizer, &settings2, this);
75787576
checkClass.initializerListOrder();
75797577
}
75807578

@@ -8749,7 +8747,7 @@ class TestClass : public TestFixture {
87498747
// Clear the error log
87508748
errout.str("");
87518749

8752-
Settings settings = settingsBuilder().severity(Severity::warning).build();
8750+
/*const*/ Settings settings = settingsBuilder().severity(Severity::warning).build();
87538751
settings.safeChecks.classes = true;
87548752

87558753
Preprocessor preprocessor(settings);

test/testcondition.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class TestCondition : public TestFixture {
3636

3737
private:
3838
const Settings settings0 = settingsBuilder().library("qt.cfg").library("std.cfg").severity(Severity::style).severity(Severity::warning).build();
39-
Settings settings1 = settingsBuilder().severity(Severity::style).severity(Severity::warning).build();
39+
/*const*/ Settings settings1 = settingsBuilder().severity(Severity::style).severity(Severity::warning).build();
4040

4141
void run() override {
4242
const char cfg[] = "<?xml version=\"1.0\"?>\n"

test/testexceptionsafety.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class TestExceptionSafety : public TestFixture {
3030
TestExceptionSafety() : TestFixture("TestExceptionSafety") {}
3131

3232
private:
33-
Settings settings;
33+
/*const*/ Settings settings;
3434

3535
void run() override {
3636
settings.severity.fill();

test/testfunctions.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1837,7 +1837,7 @@ class TestFunctions : public TestFixture {
18371837
}
18381838

18391839
void checkLibraryMatchFunctions() {
1840-
Settings s = settingsBuilder(settings).checkLibrary().debugwarnings().build();
1840+
/*const*/ Settings s = settingsBuilder(settings).checkLibrary().debugwarnings().build();
18411841
s.daca = true;
18421842

18431843
check("void f() {\n"

test/testgarbage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ class TestGarbage : public TestFixture {
3434
TestGarbage() : TestFixture("TestGarbage") {}
3535

3636
private:
37-
Settings settings = settingsBuilder().debugwarnings().build();
37+
/*const*/ Settings settings = settingsBuilder().debugwarnings().build();
3838

3939
void run() override {
4040
settings.severity.fill();

test/testinternal.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class TestInternal : public TestFixture {
3030
TestInternal() : TestFixture("TestInternal") {}
3131

3232
private:
33-
Settings settings;
33+
/*const*/ Settings settings;
3434

3535
void run() override {
3636
settings.addEnabled("internal");

test/testio.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class TestIO : public TestFixture {
3535

3636
private:
3737
const Settings settings = settingsBuilder().library("std.cfg").library("windows.cfg").library("qt.cfg").build();
38-
Settings settings1 = settingsBuilder().library("std.cfg").library("windows.cfg").library("qt.cfg").build();
38+
/*const*/ Settings settings1 = settingsBuilder().library("std.cfg").library("windows.cfg").library("qt.cfg").build();
3939

4040
void run() override {
4141
TEST_CASE(coutCerrMisusage);

0 commit comments

Comments
 (0)