Skip to content

Commit 016e8fb

Browse files
committed
Adjust framework coverage jobs to cover C#
1 parent b7a43dc commit 016e8fb

File tree

8 files changed

+32
-10
lines changed

8 files changed

+32
-10
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
CWE,Sink identifier,Label
2+
CWE-079,html,Cross-site scripting
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Framework name,URL,Namespace prefixes
2+
System,,System.* System
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**
2+
* @name Framework coverage
3+
* @description The number of API endpoints covered by CSV models sorted by
4+
* package and source-, sink-, and summary-kind.
5+
* @kind table
6+
* @id cs/meta/framework-coverage
7+
*/
8+
9+
import csharp
10+
import semmle.code.csharp.dataflow.ExternalFlow
11+
12+
from string namespace, int pkgs, string kind, string part, int n
13+
where modelCoverage(namespace, pkgs, kind, part, n)
14+
select namespace, pkgs, kind, part, n

misc/scripts/library-coverage/compare.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,9 @@ def compare_folders(folder1, folder2, output_file):
2424
Compares the contents of two folders and writes the differences to the output file.
2525
"""
2626

27-
languages = ['java']
28-
2927
return_md = ""
3028

31-
for lang in languages:
29+
for lang in settings.languages:
3230
expected_files = ""
3331

3432
generated_output_rst = settings.generated_output_rst.format(

misc/scripts/library-coverage/create-pr.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222

2323

2424
def overwrite_files():
25-
languages = ['java']
26-
for lang in languages:
25+
for lang in settings.languages:
2726
repo_output_rst = settings.repo_output_rst.format(language=lang)
2827
repo_output_csv = settings.repo_output_csv.format(language=lang)
2928

misc/scripts/library-coverage/generate-report.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ def add_package_stats_to_row(row, sorted_cwes, collect):
110110
# Languages for which we want to generate coverage reports.
111111
configs = [
112112
utils.LanguageConfig(
113-
"java", "Java", ".java", query_prefix + "java/ql/src/meta/frameworks/Coverage.ql")
113+
"java", "Java", ".java", query_prefix + "java/ql/src/meta/frameworks/Coverage.ql"),
114+
utils.LanguageConfig(
115+
"csharp", "C#", ".cs", query_prefix + "csharp/ql/src/meta/frameworks/Coverage.ql")
114116
]
115117

116118
# The names of input and output files. The placeholder {language} is replaced with the language name.
@@ -125,8 +127,8 @@ def add_package_stats_to_row(row, sorted_cwes, collect):
125127
output_rst = settings.generated_output_rst
126128
output_csv = settings.generated_output_csv
127129

128-
for config in configs:
129-
lang = config.lang
130+
for lang in settings.languages:
131+
config = [c for c in configs if c.lang == lang][0]
130132
db = "empty-" + lang
131133
ql_output = output_ql_csv.format(language=lang)
132134
utils.create_empty_database(lang, config.ext, db)

misc/scripts/library-coverage/generate-timeseries.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,13 +71,16 @@ def get_packages(lang, query):
7171

7272
configs = [
7373
utils.LanguageConfig(
74-
"java", "Java", ".java", "java/ql/src/meta/frameworks/Coverage.ql")
74+
"java", "Java", ".java", "java/ql/src/meta/frameworks/Coverage.ql"),
75+
utils.LanguageConfig(
76+
"csharp", "C#", ".cs", "csharp/ql/src/meta/frameworks/Coverage.ql")
7577
]
7678

7779
# todo: change this when we cover multiple languages. We should compute the SHAs
7880
# only once and not per language
7981
output_prefix = "framework-coverage-timeseries-"
80-
for config in configs:
82+
for lang in settings.languages:
83+
config = [c for c in configs if c.lang == lang][0]
8184
with open(output_prefix + config.lang + ".csv", 'w', newline='') as csvfile_total:
8285
with open(output_prefix + config.lang + "-packages.csv", 'w', newline='') as csvfile_packages:
8386
csvwriter_total = csv.writer(csvfile_total)

misc/scripts/library-coverage/settings.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,5 @@
2020
output_csv_file_name = "coverage.csv"
2121
repo_output_rst = documentation_folder + output_rst_file_name
2222
repo_output_csv = documentation_folder + output_csv_file_name
23+
24+
languages = ['java', 'csharp']

0 commit comments

Comments
 (0)