mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +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.
|
||||
"""
|
||||
|
||||
languages = ['java']
|
||||
|
||||
return_md = ""
|
||||
|
||||
for lang in languages:
|
||||
for lang in settings.languages:
|
||||
expected_files = ""
|
||||
|
||||
generated_output_rst = settings.generated_output_rst.format(
|
||||
|
||||
@@ -22,8 +22,7 @@ owner = repo.split('/')[0]
|
||||
|
||||
|
||||
def overwrite_files():
|
||||
languages = ['java']
|
||||
for lang in languages:
|
||||
for lang in settings.languages:
|
||||
repo_output_rst = settings.repo_output_rst.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.
|
||||
configs = [
|
||||
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.
|
||||
@@ -125,8 +127,8 @@ else:
|
||||
output_rst = settings.generated_output_rst
|
||||
output_csv = settings.generated_output_csv
|
||||
|
||||
for config in configs:
|
||||
lang = config.lang
|
||||
for lang in settings.languages:
|
||||
config = [c for c in configs if c.lang == lang][0]
|
||||
db = "empty-" + lang
|
||||
ql_output = output_ql_csv.format(language=lang)
|
||||
utils.create_empty_database(lang, config.ext, db)
|
||||
|
||||
@@ -71,13 +71,16 @@ else:
|
||||
|
||||
configs = [
|
||||
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
|
||||
# only once and not per language
|
||||
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 + "-packages.csv", 'w', newline='') as csvfile_packages:
|
||||
csvwriter_total = csv.writer(csvfile_total)
|
||||
|
||||
@@ -20,3 +20,5 @@ output_rst_file_name = "coverage.rst"
|
||||
output_csv_file_name = "coverage.csv"
|
||||
repo_output_rst = documentation_folder + output_rst_file_name
|
||||
repo_output_csv = documentation_folder + output_csv_file_name
|
||||
|
||||
languages = ['java', 'csharp']
|
||||
|
||||
Reference in New Issue
Block a user