mirror of
https://github.com/github/codeql.git
synced 2025-12-17 01:03:14 +01:00
Adjust framework coverage jobs to cover C#
This commit is contained in:
2
csharp/documentation/library-coverage/cwe-sink.csv
Normal file
2
csharp/documentation/library-coverage/cwe-sink.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
CWE,Sink identifier,Label
|
||||||
|
CWE-079,html,Cross-site scripting
|
||||||
|
2
csharp/documentation/library-coverage/frameworks.csv
Normal file
2
csharp/documentation/library-coverage/frameworks.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
Framework name,URL,Namespace prefixes
|
||||||
|
System,,System.* System
|
||||||
|
14
csharp/ql/src/meta/frameworks/Coverage.ql
Normal file
14
csharp/ql/src/meta/frameworks/Coverage.ql
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
/**
|
||||||
|
* @name Framework coverage
|
||||||
|
* @description The number of API endpoints covered by CSV models sorted by
|
||||||
|
* package and source-, sink-, and summary-kind.
|
||||||
|
* @kind table
|
||||||
|
* @id cs/meta/framework-coverage
|
||||||
|
*/
|
||||||
|
|
||||||
|
import csharp
|
||||||
|
import semmle.code.csharp.dataflow.ExternalFlow
|
||||||
|
|
||||||
|
from string namespace, int pkgs, string kind, string part, int n
|
||||||
|
where modelCoverage(namespace, pkgs, kind, part, n)
|
||||||
|
select namespace, pkgs, kind, part, n
|
||||||
@@ -24,11 +24,9 @@ def compare_folders(folder1, folder2, output_file):
|
|||||||
Compares the contents of two folders and writes the differences to the output file.
|
Compares the contents of two folders and writes the differences to the output file.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
languages = ['java']
|
|
||||||
|
|
||||||
return_md = ""
|
return_md = ""
|
||||||
|
|
||||||
for lang in languages:
|
for lang in settings.languages:
|
||||||
expected_files = ""
|
expected_files = ""
|
||||||
|
|
||||||
generated_output_rst = settings.generated_output_rst.format(
|
generated_output_rst = settings.generated_output_rst.format(
|
||||||
|
|||||||
@@ -22,8 +22,7 @@ owner = repo.split('/')[0]
|
|||||||
|
|
||||||
|
|
||||||
def overwrite_files():
|
def overwrite_files():
|
||||||
languages = ['java']
|
for lang in settings.languages:
|
||||||
for lang in languages:
|
|
||||||
repo_output_rst = settings.repo_output_rst.format(language=lang)
|
repo_output_rst = settings.repo_output_rst.format(language=lang)
|
||||||
repo_output_csv = settings.repo_output_csv.format(language=lang)
|
repo_output_csv = settings.repo_output_csv.format(language=lang)
|
||||||
|
|
||||||
|
|||||||
@@ -110,7 +110,9 @@ if len(sys.argv) > 2:
|
|||||||
# Languages for which we want to generate coverage reports.
|
# Languages for which we want to generate coverage reports.
|
||||||
configs = [
|
configs = [
|
||||||
utils.LanguageConfig(
|
utils.LanguageConfig(
|
||||||
"java", "Java", ".java", query_prefix + "java/ql/src/meta/frameworks/Coverage.ql")
|
"java", "Java", ".java", query_prefix + "java/ql/src/meta/frameworks/Coverage.ql"),
|
||||||
|
utils.LanguageConfig(
|
||||||
|
"csharp", "C#", ".cs", query_prefix + "csharp/ql/src/meta/frameworks/Coverage.ql")
|
||||||
]
|
]
|
||||||
|
|
||||||
# The names of input and output files. The placeholder {language} is replaced with the language name.
|
# The names of input and output files. The placeholder {language} is replaced with the language name.
|
||||||
@@ -125,8 +127,8 @@ else:
|
|||||||
output_rst = settings.generated_output_rst
|
output_rst = settings.generated_output_rst
|
||||||
output_csv = settings.generated_output_csv
|
output_csv = settings.generated_output_csv
|
||||||
|
|
||||||
for config in configs:
|
for lang in settings.languages:
|
||||||
lang = config.lang
|
config = [c for c in configs if c.lang == lang][0]
|
||||||
db = "empty-" + lang
|
db = "empty-" + lang
|
||||||
ql_output = output_ql_csv.format(language=lang)
|
ql_output = output_ql_csv.format(language=lang)
|
||||||
utils.create_empty_database(lang, config.ext, db)
|
utils.create_empty_database(lang, config.ext, db)
|
||||||
|
|||||||
@@ -71,13 +71,16 @@ else:
|
|||||||
|
|
||||||
configs = [
|
configs = [
|
||||||
utils.LanguageConfig(
|
utils.LanguageConfig(
|
||||||
"java", "Java", ".java", "java/ql/src/meta/frameworks/Coverage.ql")
|
"java", "Java", ".java", "java/ql/src/meta/frameworks/Coverage.ql"),
|
||||||
|
utils.LanguageConfig(
|
||||||
|
"csharp", "C#", ".cs", "csharp/ql/src/meta/frameworks/Coverage.ql")
|
||||||
]
|
]
|
||||||
|
|
||||||
# todo: change this when we cover multiple languages. We should compute the SHAs
|
# todo: change this when we cover multiple languages. We should compute the SHAs
|
||||||
# only once and not per language
|
# only once and not per language
|
||||||
output_prefix = "framework-coverage-timeseries-"
|
output_prefix = "framework-coverage-timeseries-"
|
||||||
for config in configs:
|
for lang in settings.languages:
|
||||||
|
config = [c for c in configs if c.lang == lang][0]
|
||||||
with open(output_prefix + config.lang + ".csv", 'w', newline='') as csvfile_total:
|
with open(output_prefix + config.lang + ".csv", 'w', newline='') as csvfile_total:
|
||||||
with open(output_prefix + config.lang + "-packages.csv", 'w', newline='') as csvfile_packages:
|
with open(output_prefix + config.lang + "-packages.csv", 'w', newline='') as csvfile_packages:
|
||||||
csvwriter_total = csv.writer(csvfile_total)
|
csvwriter_total = csv.writer(csvfile_total)
|
||||||
|
|||||||
@@ -20,3 +20,5 @@ output_rst_file_name = "coverage.rst"
|
|||||||
output_csv_file_name = "coverage.csv"
|
output_csv_file_name = "coverage.csv"
|
||||||
repo_output_rst = documentation_folder + output_rst_file_name
|
repo_output_rst = documentation_folder + output_rst_file_name
|
||||||
repo_output_csv = documentation_folder + output_csv_file_name
|
repo_output_csv = documentation_folder + output_csv_file_name
|
||||||
|
|
||||||
|
languages = ['java', 'csharp']
|
||||||
|
|||||||
Reference in New Issue
Block a user