MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / applyLangFS

Method applyLangFS

test/testfrontend.cpp:39–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37 }
38
39 void applyLangFS() const {
40 const char xmldata[] = R"(<def format="2"><markup ext=".ml" reporterrors="false"/></def>)";
41 const Settings s = settingsBuilder().libraryxml(xmldata).build();
42
43 const std::list<FileSettings> fs = {
44 {"nolang", Standards::Language::None, 0 },
45 {"c", Standards::Language::None, 0 }, // TODO: should be C - FileSettings are currently expected to not be pre-identified
46 {"cpp", Standards::Language::None, 0 }, // TODO: should be CPP - FileSettings arecurrently expected to not be pre-identified
47 {"nolang.c", Standards::Language::None, 0 },
48 {"nolang.cpp", Standards::Language::None, 0 },
49 {"nolang.ml", Standards::Language::None, 0 }
50 };
51
52 // no language to enforce - identify only
53 {
54 std::list<FileSettings> fs1 = fs;
55 frontend::applyLang(fs1, s, Standards::Language::None);
56 auto it = fs1.cbegin();
57 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP); // unknown defaults to C++
58 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP); // unknown defaults to C++
59 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP); // unknown defaults to C++
60 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C);
61 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP);
62 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C); // markup files are always C
63 }
64
65 // language to enforce (C)
66 {
67 std::list<FileSettings> fs1 = fs;
68 frontend::applyLang(fs1, s, Standards::Language::C);
69 auto it = fs1.cbegin();
70 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C);
71 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C);
72 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C);
73 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C);
74 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C);
75 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C); // markup files are always C
76 }
77
78 // language to enforce (C++)
79 {
80 std::list<FileSettings> fs1 = fs;
81 frontend::applyLang(fs1, s, Standards::Language::CPP);
82 auto it = fs1.cbegin();
83 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP);
84 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP);
85 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP);
86 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP);
87 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::CPP);
88 ASSERT_EQUALS_ENUM((it++)->file.lang(), Standards::Language::C); // markup files are always C
89 }
90 }
91
92 void applyLangFiles() const
93 {

Callers

nothing calls this directly

Calls 3

applyLangFunction · 0.85
buildMethod · 0.80
langMethod · 0.80

Tested by

no test coverage detected