Adjust framework coverage jobs to cover C#

This commit is contained in:
Tamas Vajk
2021-06-24 15:09:23 +02:00
parent b7a43dccd3
commit 016e8fb2cf
8 changed files with 32 additions and 10 deletions

View File

@@ -0,0 +1,2 @@
CWE,Sink identifier,Label
CWE-079,html,Cross-site scripting
1 CWE Sink identifier Label
2 CWE-079 html Cross-site scripting

View File

@@ -0,0 +1,2 @@
Framework name,URL,Namespace prefixes
System,,System.* System
1 Framework name URL Namespace prefixes
2 System System.* System

View 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

View File

@@ -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(

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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']