Skip to content

Commit 444b25a

Browse files
committed
Enhanced filtering including vulnerability type parameter in benchmark scripts.
1 parent 076fd92 commit 444b25a

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

scripts/python/benchmark-checkers/run-benchmark.py

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -306,7 +306,7 @@ def check_sound_analysis_evmlisa(directory_path):
306306
if sound:
307307
print("[EVMLiSA] All analysis are SOUND.")
308308

309-
def get_results_evmlisa(directory_path, print_data):
309+
def get_results_evmlisa(directory_path, print_data, vulnerability_type):
310310
warnings_counts = {}
311311
failed = 0
312312

@@ -318,14 +318,14 @@ def get_results_evmlisa(directory_path, print_data):
318318
data = json.load(file)
319319
if "vulnerabilities" in data:
320320
vulnerabilities = data["vulnerabilities"]
321-
if "reentrancy" in vulnerabilities:
321+
if "reentrancy" in vulnerabilities and vulnerability_type == "reentrancy":
322322
warnings_counts[filename] = vulnerabilities['reentrancy']
323-
elif "tx_origin" in vulnerabilities:
323+
elif "tx_origin" in vulnerabilities and vulnerability_type == "tx-origin":
324324
warnings_counts[filename] = vulnerabilities['tx_origin']
325-
elif "timestamp_dependency" in vulnerabilities:
325+
elif "timestamp_dependency" in vulnerabilities and vulnerability_type == "timestamp-dependency":
326326
warnings_counts[filename] = vulnerabilities['timestamp_dependency']
327327
else:
328-
print(f"[EVMLiSA] Warning: 'reentrancy', 'tx_origin' and 'timestam_-dependency' not found in {filename}")
328+
print(f"[EVMLiSA] Warning: 'reentrancy', 'tx_origin' and 'timestam_dependency' not found in {filename}")
329329
else:
330330
print(f"[EVMLiSA] Warning: 'vulnerabilities' not found in {filename}")
331331
except Exception as e:
@@ -520,7 +520,6 @@ def get_results_solidifi(folder_path, type, print_data):
520520

521521

522522
sorted_data = dict(sorted(line_counts.items()))
523-
524523
print(print_data)
525524
print(sorted_data)
526525

@@ -677,8 +676,8 @@ def calculate_f_measure(precision, recall):
677676
check_sound_analysis_evmlisa('./solidifi/tx-origin/results/evmlisa')
678677

679678
results_solidifi = get_results_solidifi('./solidifi/SolidiFI-buggy-contracts/tx.origin', 'tx-origin', 'solidify')
680-
results_evmlisa = subtract_dicts(get_results_evmlisa('./solidifi/tx-origin/results/evmlisa', 'evmlisa-buggy-solidifi'),
681-
get_results_evmlisa('./solidifi/vanilla/results/evmlisa', 'evmlisa-solidifi/vanilla'))
679+
results_evmlisa = subtract_dicts(get_results_evmlisa('./solidifi/tx-origin/results/evmlisa', 'evmlisa-buggy-solidifi', 'tx-origin'),
680+
get_results_evmlisa('./solidifi/vanilla/results/evmlisa', 'evmlisa-solidifi/vanilla', 'tx-origin'))
682681

683682
# Precision
684683
evmlisa_precision = calculate_precision(results_evmlisa, results_solidifi)
@@ -716,8 +715,8 @@ def calculate_f_measure(precision, recall):
716715
check_sound_analysis_evmlisa('./solidifi/timestamp-dependency/results/evmlisa')
717716

718717
results_solidifi = get_results_solidifi('./solidifi/SolidiFI-buggy-contracts/Timestamp-Dependency', 'timestamp-dependency', 'solidify')
719-
results_evmlisa = subtract_dicts(get_results_evmlisa('./solidifi/timestamp-dependency/results/evmlisa', 'evmlisa-buggy-solidifi'),
720-
get_results_evmlisa('./solidifi/vanilla/results/evmlisa', 'evmlisa-solidifi/vanilla'))
718+
results_evmlisa = subtract_dicts(get_results_evmlisa('./solidifi/timestamp-dependency/results/evmlisa', 'evmlisa-buggy-solidifi', 'timestamp-dependency'),
719+
get_results_evmlisa('./solidifi/vanilla/results/evmlisa', 'evmlisa-solidifi/vanilla', 'timestamp-dependency'))
721720

722721
# Precision
723722
evmlisa_precision = calculate_precision(results_evmlisa, results_solidifi)
@@ -745,8 +744,8 @@ def calculate_f_measure(precision, recall):
745744

746745
check_sound_analysis_evmlisa('./smartbugs/timestamp-dependency/results/evmlisa')
747746

748-
results_evmlisa = get_results_evmlisa('./smartbugs/timestamp-dependency/results/evmlisa', 'evmlisa-buggy-smartbugs')
749-
results_smartbugs = get_results_smartbugs('./smartbugs/timestamp-dependency/source-code/vulnerabilities.json', 'smartbugs')
747+
results_evmlisa = get_results_evmlisa('./smartbugs/timestamp-dependency/results/evmlisa', 'evmlisa-buggy-smartbugs', 'timestamp-dependency')
748+
results_smartbugs = get_results_smartbugs('./smartbugs/timestamp-dependency/source-code/vulnerabilities.json', 'smartbugs', 'timestamp-dependency')
750749

751750
# Precision
752751
evmlisa_precision = calculate_precision(results_evmlisa, results_smartbugs)
@@ -794,8 +793,8 @@ def calculate_f_measure(precision, recall):
794793
check_sound_analysis_evmlisa('./solidifi/reentrancy/results/evmlisa')
795794
check_sound_analysis_evmlisa('./solidifi/vanilla/results/evmlisa')
796795

797-
results_evmlisa = subtract_dicts(get_results_evmlisa('./solidifi/reentrancy/results/evmlisa', 'evmlisa-buggy-solidifi'),
798-
get_results_evmlisa('./solidifi/vanilla/results/evmlisa', 'evmlisa-solidifi/vanilla'))
796+
results_evmlisa = subtract_dicts(get_results_evmlisa('./solidifi/reentrancy/results/evmlisa', 'evmlisa-buggy-solidifi', 'reentrancy'),
797+
get_results_evmlisa('./solidifi/vanilla/results/evmlisa', 'evmlisa-solidifi/vanilla', 'reentrancy'))
799798
results_ethersolve = subtract_dicts(get_results_ethersolve('./solidifi/reentrancy/results/ethersolve', 'ethersolve-buggy-solidifi'),
800799
get_results_ethersolve('./solidifi/vanilla/results/ethersolve', 'ethersolve-solidifi/vanilla'))
801800
results_solidifi = get_results_solidifi('./solidifi/SolidiFI-buggy-contracts/Re-entrancy', 'reentrancy', 'solidify')
@@ -839,7 +838,7 @@ def calculate_f_measure(precision, recall):
839838

840839
check_sound_analysis_evmlisa('./smartbugs/reentrancy/results/evmlisa')
841840

842-
results_evmlisa = get_results_evmlisa('./smartbugs/reentrancy/results/evmlisa', 'evmlisa-buggy-smartbugs')
841+
results_evmlisa = get_results_evmlisa('./smartbugs/reentrancy/results/evmlisa', 'evmlisa-buggy-smartbugs', 'reentrancy')
843842
results_ethersolve = get_results_ethersolve('./smartbugs/reentrancy/results/ethersolve', 'ethersolve-buggy-smartbugs')
844843
results_smartbugs = get_results_smartbugs('./smartbugs/reentrancy/source-code/vulnerabilities.json', 'smartbugs')
845844

@@ -882,7 +881,7 @@ def calculate_f_measure(precision, recall):
882881

883882
check_sound_analysis_evmlisa('./slise/reentrancy-db1/results/evmlisa')
884883

885-
results_evmlisa = get_results_evmlisa('./slise/reentrancy-db1/results/evmlisa', 'evmlisa-buggy-slise-db1')
884+
results_evmlisa = get_results_evmlisa('./slise/reentrancy-db1/results/evmlisa', 'evmlisa-buggy-slise-db1', 'reentrancy')
886885
results_ethersolve = get_results_ethersolve('./slise/reentrancy-db1/results/ethersolve', 'ethersolve-buggy-slise-db1')
887886
results_slise = get_results_slise('./slise/reentrancy-db1/source-code/vulnerabilities.json', 'slise-db1')
888887

0 commit comments

Comments
 (0)