def test_SV_error_filter(): path = DIRECTORY + "/SV_sane_examples.csv" filters = ["error::42"] file_dicts = bh2err.convert_file(path, "", filters=filters) content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "", input_filters=filters) assert file_dicts != [] assert len(file_dicts) == 3 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 37 assert file_dicts[0]["type"] == "E" assert file_dicts[0]["text"] == "Error 42: You didn't say the magic word." assert file_dicts[1]["filename"] == "test/config.c" assert file_dicts[1]["lnum"] == 0 assert file_dicts[1]["type"] == "E" assert file_dicts[1]["text"] == "Error 42: You didn't say the magic word." assert file_dicts[2]["filename"] == "test/config.c" assert file_dicts[2]["lnum"] == 0 assert file_dicts[2]["type"] == "E" assert file_dicts[2]["text"] == "Error 42: This should be found again."
def test_AV_sane_examples(): path = DIRECTORY + "/AV_sane_examples.csv" file_dicts = bh2err.convert_file(path, "") content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "") assert file_dicts != [] assert len(file_dicts) == 4 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.h" assert file_dicts[0]["lnum"] == 42 assert file_dicts[0]["type"] == "E" assert file_dicts[0]["text"] == "T custom:size_type -> T std:some_size" assert file_dicts[1]["filename"] == "test/file.h" assert file_dicts[1]["lnum"] == 100 assert file_dicts[1]["type"] == "W" assert file_dicts[1]["text"] == "S custom:tag -> S std:some_tag" assert file_dicts[2]["filename"] == "test/file.h" assert file_dicts[2]["lnum"] == 42 assert file_dicts[2]["type"] == "" assert file_dicts[2]["text"] == "T custom:size_type -> T std:some_size" assert file_dicts[3]["filename"] == "test/file.h" assert file_dicts[3]["lnum"] == 42 assert file_dicts[3]["type"] == "" assert file_dicts[3]["text"] == "T custom:size_type -> T std:some_size"
def test_SV_negation_filter(): path = DIRECTORY + "/SV_sane_examples.csv" filters = ["error:-:42"] file_dicts = bh2err.convert_file(path, "", filters=filters) content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "", input_filters=filters) assert file_dicts != [] assert len(file_dicts) == 3 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 120 assert file_dicts[0]["type"] == "W" assert file_dicts[0]["text"] == "Error 12312: Test" assert file_dicts[1]["filename"] == "test/file.h" assert file_dicts[1]["lnum"] == 42 assert file_dicts[1]["type"] == "E" assert file_dicts[1]["text"] == "ABC: asdf" assert file_dicts[2]["filename"] == "real/file.c" assert file_dicts[2]["lnum"] == 49 assert file_dicts[2]["type"] == "W" assert file_dicts[2]["text"] == "You didn't say the magic word."
def test_SV_sane_examples(): path = DIRECTORY + "/SV_sane_examples.csv" file_dicts = bh2err.convert_file(path, "") content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "") assert file_dicts != [] assert len(file_dicts) == 6 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 37 assert file_dicts[0]["type"] == "E" assert file_dicts[0]["text"] == "Error 42: You didn't say the magic word." assert file_dicts[1]["filename"] == "test/file.c" assert file_dicts[1]["lnum"] == 120 assert file_dicts[1]["type"] == "W" assert file_dicts[1]["text"] == "Error 12312: Test" assert file_dicts[2]["filename"] == "test/file.h" assert file_dicts[2]["lnum"] == 42 assert file_dicts[2]["type"] == "E" assert file_dicts[2]["text"] == "ABC: asdf" assert file_dicts[3]["filename"] == "real/file.c" assert file_dicts[3]["lnum"] == 49 assert file_dicts[3]["type"] == "W" assert file_dicts[3]["text"] == "You didn't say the magic word." assert file_dicts[4]["filename"] == "test/config.c" assert file_dicts[4]["lnum"] == 0 assert file_dicts[4]["type"] == "E" assert file_dicts[4]["text"] == "Error 42: You didn't say the magic word." assert file_dicts[5]["filename"] == "test/config.c" assert file_dicts[5]["lnum"] == 0 assert file_dicts[5]["type"] == "E" assert file_dicts[5]["text"] == "Error 42: This should be found again."
def test_SV_nonkeyword_filter(): path = DIRECTORY + "/SV_sane_examples.csv" filters = ["Id::SV01"] file_dicts = bh2err.convert_file(path, "", filters=filters) content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "", input_filters=filters) assert file_dicts != [] assert len(file_dicts) == 1 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 37 assert file_dicts[0]["type"] == "E" assert file_dicts[0]["text"] == "Error 42: You didn't say the magic word."
def test_SV_multiple_filters(): path = DIRECTORY + "/SV_sane_examples.csv" filters = ["error:-:42", "message::magic"] file_dicts = bh2err.convert_file(path, "", filters=filters) content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "", input_filters=filters) assert file_dicts != [] assert len(file_dicts) == 1 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "real/file.c" assert file_dicts[0]["lnum"] == 49 assert file_dicts[0]["type"] == "W" assert file_dicts[0]["text"] == "You didn't say the magic word."
def test_CY_sane_examples(): path = DIRECTORY + "/CY_sane_examples.csv" file_dicts = bh2err.convert_file(path, "") content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "") assert file_dicts != [] assert len(file_dicts) == 6 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 42 assert file_dicts[0]["type"] == "E" assert file_dicts[0]["text"] == "class A -> struct H" assert file_dicts[1]["filename"] == "test/file.c" assert file_dicts[1]["lnum"] == 42 assert file_dicts[1]["type"] == "" assert file_dicts[1]["text"] == "class A -> struct H" assert file_dicts[2]["filename"] == "test/file.c" assert file_dicts[2]["lnum"] == 42 assert file_dicts[2]["type"] == "E" assert file_dicts[2]["text"] == "" assert file_dicts[3]["filename"] == "test/file.c" assert file_dicts[3]["lnum"] == 42 assert file_dicts[3]["type"] == "E" assert file_dicts[3]["text"] == "" assert file_dicts[4]["filename"] == "test/file.c" assert file_dicts[4]["lnum"] == 42 assert file_dicts[4]["type"] == "" assert file_dicts[4]["text"] == "class A" assert file_dicts[5]["filename"] == "test/file.c" assert file_dicts[5]["lnum"] == 42 assert file_dicts[5]["type"] == "" assert file_dicts[5]["text"] == "class A"
def test_DE_sane_examples(): path = DIRECTORY + "/DE_sane_examples.csv" file_dicts = bh2err.convert_file(path, "") content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "") assert file_dicts != [] assert len(file_dicts) == 6 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 1904 assert file_dicts[0]["text"] == "my::ns::Class::GetID()" assert file_dicts[1]["filename"] == "test/file.h" assert file_dicts[1]["lnum"] == 100 assert file_dicts[1]["text"] == "my::ns::Class::GetAddress()-c" assert file_dicts[2]["filename"] == "real/file.c" assert file_dicts[2]["lnum"] == 42 assert file_dicts[2]["text"] == "" assert file_dicts[3]["filename"] == "real/test.c" assert file_dicts[3]["lnum"] == 4 assert file_dicts[3]["text"] == "Wait()" assert file_dicts[4]["filename"] == "test/config.c" assert file_dicts[4]["lnum"] == 0 assert file_dicts[4]["text"] == "" assert file_dicts[5]["filename"] == "test/config.c" assert file_dicts[5]["lnum"] == 0 assert file_dicts[5]["text"] == ""
def test_MV_sane_examples(): path = DIRECTORY + "/MV_sane_examples.csv" file_dicts = bh2err.convert_file(path, "") content_dicts = [] with open(path, "r") as f: content = f.read() content_dicts = bh2err.convert_text(content, "") assert file_dicts != [] assert len(file_dicts) == 9 assert content_dicts != [] assert content_dicts == file_dicts assert file_dicts[0]["filename"] == "test/file.c" assert file_dicts[0]["lnum"] == 81 assert file_dicts[0]["type"] == "E" assert file_dicts[0][ "text"] == "Metric.HIS.PATH (HIS PATH): 42.0. Allowed range: [1.0, 30.0]" assert file_dicts[1]["filename"] == "test/file.c" assert file_dicts[1]["lnum"] == 33 assert file_dicts[1]["type"] == "W" assert file_dicts[1][ "text"] == "Metric.HIS.RETURN (HIS RETURN): 6.0. Allowed range: [0.0, 2.0]" assert file_dicts[2]["filename"] == "test/file.h" assert file_dicts[2]["lnum"] == 41 assert file_dicts[2]["type"] == "" assert file_dicts[2][ "text"] == "Response for a class: 54.0. Allowed range: [0.0, 40.0]" assert file_dicts[3]["filename"] == "real/file.c" assert file_dicts[3]["lnum"] == 123 assert file_dicts[3]["type"] == "E" assert file_dicts[3][ "text"] == "Metric.OO.WMC.One: 42.0. Allowed range: [0.0, 20.0]" assert file_dicts[4]["filename"] == "test/config.c" assert file_dicts[4]["lnum"] == 0 assert file_dicts[4]["type"] == "E" assert file_dicts[4]["text"] == "Metric.OO.WMC.One (Weighted Methods per Class based on 1): "\ "28.0. Allowed range: [0.0, 15.0]" assert file_dicts[5]["filename"] == "test/file.c" assert file_dicts[5]["lnum"] == 33 assert file_dicts[5]["type"] == "W" assert file_dicts[5]["text"] == "Metric.HIS.RETURN (HIS RETURN)" assert file_dicts[6]["filename"] == "test/file.c" assert file_dicts[6]["lnum"] == 33 assert file_dicts[6]["type"] == "W" assert file_dicts[6]["text"] == "Metric.HIS.RETURN (HIS RETURN): 6.0." assert file_dicts[7]["filename"] == "test/file.c" assert file_dicts[7]["lnum"] == 33 assert file_dicts[7]["type"] == "W" assert file_dicts[7]["text"] == "Metric.HIS.RETURN (HIS RETURN): 6.0." assert file_dicts[8]["filename"] == "test/file.c" assert file_dicts[8]["lnum"] == 33 assert file_dicts[8]["type"] == "W" assert file_dicts[8]["text"] == "Metric.HIS.RETURN (HIS RETURN): 6.0."
def test_non_existent_file(): assert bh2err.convert_file(DIRECTORY + "/BOGUS_FILE", "") == []
def test_only_header_file(): path = DIRECTORY + "/ONLY_HEADERS.csv" assert bh2err.convert_file(path, "") == [] with open(path, "r") as f: content = f.read() assert bh2err.convert_text(content, "") == []