Skip to content

Commit a1562fa

Browse files
committed
fix selfcheck issues
1 parent 6e8bf04 commit a1562fa

1 file changed

Lines changed: 31 additions & 41 deletions

File tree

test/testsarif.cpp

Lines changed: 31 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -383,15 +383,15 @@ int main() {
383383
void sarifBasicStructure()
384384
{
385385
// Create a simple test with null pointer dereference
386-
const std::string testCode = R"(
386+
const std::string basicTestCode = R"(
387387
int main() {
388388
int* p = nullptr;
389389
*p = 5; // null pointer dereference
390390
return 0;
391391
}
392392
)";
393393

394-
const std::string sarif = runCppcheckSarif(testCode);
394+
const std::string sarif = runCppcheckSarif(basicTestCode);
395395

396396
std::string errorMsg;
397397
const bool isValid = validateSarifJson(sarif, errorMsg);
@@ -414,11 +414,11 @@ int main() {
414414
const picojson::array& runs = root.at("runs").get<picojson::array>();
415415
ASSERT_EQUALS(1, static_cast<int>(runs.size()));
416416

417-
const picojson::object& run = runs[0].get<picojson::object>();
418-
ASSERT(run.find("tool") != run.end());
419-
ASSERT(run.find("results") != run.end());
417+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
418+
ASSERT(sarifRun.find("tool") != sarifRun.end());
419+
ASSERT(sarifRun.find("results") != sarifRun.end());
420420

421-
const picojson::object& tool = run.at("tool").get<picojson::object>();
421+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
422422
ASSERT(tool.find("driver") != tool.end());
423423

424424
const picojson::object& driver = tool.at("driver").get<picojson::object>();
@@ -438,8 +438,8 @@ int main() {
438438
picojson::parse(json, sarif);
439439
const picojson::object& root = json.get<picojson::object>();
440440
const picojson::array& runs = root.at("runs").get<picojson::array>();
441-
const picojson::object& run = runs[0].get<picojson::object>();
442-
const picojson::array& results = run.at("results").get<picojson::array>();
441+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
442+
const picojson::array& results = sarifRun.at("results").get<picojson::array>();
443443

444444
ASSERT(results.size() > 0);
445445

@@ -484,8 +484,8 @@ int main() {
484484
picojson::parse(json, sarif);
485485
const picojson::object& root = json.get<picojson::object>();
486486
const picojson::array& runs = root.at("runs").get<picojson::array>();
487-
const picojson::object& run = runs[0].get<picojson::object>();
488-
const picojson::object& tool = run.at("tool").get<picojson::object>();
487+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
488+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
489489
const picojson::object& driver = tool.at("driver").get<picojson::object>();
490490
const picojson::array& rules = driver.at("rules").get<picojson::array>();
491491

@@ -503,7 +503,6 @@ int main() {
503503
ASSERT(r.find("help") != r.end());
504504
ASSERT(r.find("defaultConfiguration") != r.end());
505505

506-
const std::string ruleId = r.at("id").get<std::string>();
507506
const std::string name = r.at("name").get<std::string>();
508507

509508
// Check that generic descriptions don't contain empty quotes
@@ -523,8 +522,8 @@ int main() {
523522
picojson::parse(json, sarif);
524523
const picojson::object& root = json.get<picojson::object>();
525524
const picojson::array& runs = root.at("runs").get<picojson::array>();
526-
const picojson::object& run = runs[0].get<picojson::object>();
527-
const picojson::object& tool = run.at("tool").get<picojson::object>();
525+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
526+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
528527
const picojson::object& driver = tool.at("driver").get<picojson::object>();
529528
const picojson::array& rules = driver.at("rules").get<picojson::array>();
530529

@@ -581,8 +580,8 @@ int main() {
581580
picojson::parse(json, sarif);
582581
const picojson::object& root = json.get<picojson::object>();
583582
const picojson::array& runs = root.at("runs").get<picojson::array>();
584-
const picojson::object& run = runs[0].get<picojson::object>();
585-
const picojson::array& results = run.at("results").get<picojson::array>();
583+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
584+
const picojson::array& results = sarifRun.at("results").get<picojson::array>();
586585

587586
ASSERT(results.size() > 0);
588587

@@ -632,8 +631,8 @@ int main() {
632631
picojson::parse(json, sarif);
633632
const picojson::object& root = json.get<picojson::object>();
634633
const picojson::array& runs = root.at("runs").get<picojson::array>();
635-
const picojson::object& run = runs[0].get<picojson::object>();
636-
const picojson::object& tool = run.at("tool").get<picojson::object>();
634+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
635+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
637636
const picojson::object& driver = tool.at("driver").get<picojson::object>();
638637
const picojson::array& rules = driver.at("rules").get<picojson::array>();
639638

@@ -643,7 +642,6 @@ int main() {
643642
for (const auto& rule : rules)
644643
{
645644
const picojson::object& r = rule.get<picojson::object>();
646-
const std::string ruleId = r.at("id").get<std::string>();
647645
const std::string name = r.at("name").get<std::string>();
648646

649647
// Verify we have proper rule structure
@@ -676,8 +674,8 @@ int main() {
676674
picojson::parse(json, sarif);
677675
const picojson::object& root = json.get<picojson::object>();
678676
const picojson::array& runs = root.at("runs").get<picojson::array>();
679-
const picojson::object& run = runs[0].get<picojson::object>();
680-
const picojson::array& results = run.at("results").get<picojson::array>();
677+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
678+
const picojson::array& results = sarifRun.at("results").get<picojson::array>();
681679

682680
ASSERT(results.size() > 0);
683681

@@ -806,8 +804,8 @@ int main() {
806804
picojson::parse(json, sarif);
807805
const picojson::object& root = json.get<picojson::object>();
808806
const picojson::array& runs = root.at("runs").get<picojson::array>();
809-
const picojson::object& run = runs[0].get<picojson::object>();
810-
const picojson::object& tool = run.at("tool").get<picojson::object>();
807+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
808+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
811809
const picojson::object& driver = tool.at("driver").get<picojson::object>();
812810
const picojson::array& rules = driver.at("rules").get<picojson::array>();
813811

@@ -831,7 +829,6 @@ int main() {
831829

832830
bool hasSecurityTag = false;
833831
bool hasCweTag = false;
834-
std::string cweTag;
835832

836833
for (const auto& tag : tags)
837834
{
@@ -844,7 +841,7 @@ int main() {
844841
{
845842
hasCweTag = true;
846843
foundAnyCweTag = true;
847-
cweTag = tagStr;
844+
std::string cweTag = tagStr;
848845

849846
// Validate CWE tag format: external/cwe/cwe-<number>
850847
ASSERT_EQUALS(0, tagStr.find("external/cwe/cwe-"));
@@ -900,8 +897,8 @@ int main() {
900897
picojson::parse(json, sarif);
901898
const picojson::object& root = json.get<picojson::object>();
902899
const picojson::array& runs = root.at("runs").get<picojson::array>();
903-
const picojson::object& run = runs[0].get<picojson::object>();
904-
const picojson::object& tool = run.at("tool").get<picojson::object>();
900+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
901+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
905902
const picojson::object& driver = tool.at("driver").get<picojson::object>();
906903
const picojson::array& rules = driver.at("rules").get<picojson::array>();
907904

@@ -952,8 +949,8 @@ int main() {
952949
picojson::parse(json, sarif);
953950
const picojson::object& root = json.get<picojson::object>();
954951
const picojson::array& runs = root.at("runs").get<picojson::array>();
955-
const picojson::object& run = runs[0].get<picojson::object>();
956-
const picojson::array& results = run.at("results").get<picojson::array>();
952+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
953+
const picojson::array& results = sarifRun.at("results").get<picojson::array>();
957954

958955
ASSERT(results.size() > 0);
959956

@@ -981,7 +978,7 @@ int main() {
981978
ASSERT(hasWarning || hasNote);
982979

983980
// Verify rule consistency between rules and results
984-
const picojson::object& tool = run.at("tool").get<picojson::object>();
981+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
985982
const picojson::object& driver = tool.at("driver").get<picojson::object>();
986983
const picojson::array& rules = driver.at("rules").get<picojson::array>();
987984

@@ -1015,8 +1012,8 @@ int main() {
10151012
picojson::parse(json, sarif);
10161013
const picojson::object& root = json.get<picojson::object>();
10171014
const picojson::array& runs = root.at("runs").get<picojson::array>();
1018-
const picojson::object& run = runs[0].get<picojson::object>();
1019-
const picojson::object& tool = run.at("tool").get<picojson::object>();
1015+
const picojson::object& sarifRun = runs[0].get<picojson::object>();
1016+
const picojson::object& tool = sarifRun.at("tool").get<picojson::object>();
10201017
const picojson::object& driver = tool.at("driver").get<picojson::object>();
10211018
const picojson::array& rules = driver.at("rules").get<picojson::array>();
10221019

@@ -1028,23 +1025,16 @@ int main() {
10281025
for (const auto& rule : rules)
10291026
{
10301027
const picojson::object& r = rule.get<picojson::object>();
1031-
const std::string ruleId = r.at("id").get<std::string>();
10321028
const picojson::object& props = r.at("properties").get<picojson::object>();
10331029

10341030
// Check if rule has CWE tag
10351031
bool hasCWE = false;
10361032
if (props.find("tags") != props.end())
10371033
{
10381034
const picojson::array& tags = props.at("tags").get<picojson::array>();
1039-
for (const auto& tag : tags)
1040-
{
1041-
const std::string tagStr = tag.get<std::string>();
1042-
if (tagStr.find("external/cwe/") == 0)
1043-
{
1044-
hasCWE = true;
1045-
break;
1046-
}
1047-
}
1035+
hasCWE = std::any_of(tags.begin(), tags.end(), [](const picojson::value& tag) {
1036+
return tag.get<std::string>().find("external/cwe/") == 0;
1037+
});
10481038
}
10491039

10501040
if (hasCWE)

0 commit comments

Comments
 (0)