Files
raccoon/cps-stress-test.py
2023-02-23 15:55:29 +01:00

60 lines
1.5 KiB
Python

import json
import sys
import os
import subprocess
from run import runPrompt
# read the file malicous.csv
# each item is like this: [malicious prompt, expected malicous response]
import csv
def readMaliciousFile():
# each item is like this: [malicious prompt, expected malicous response]
with open('malicious.csv', 'r') as f:
reader = csv.reader(f)
malicious = list(reader)
# ignore first row
malicious = malicious[1:]
return malicious
data = readMaliciousFile()
def compare(expected, recieved):
print('------------------------------')
print('expected: ' + expected)
print('recieved: ' + recieved)
print('------------------------------')
res = expected == recieved
print('result: ' + str(res))
return res
malicious_inputs = len(data)
malicious_inputs_passed = 0
for malicious_input in data:
malicious_input, expected_malicious_response = malicious_input
print("Testing malicious input: " + malicious_input)
malicious_response = runPrompt(malicious_input)
try:
malicious_response = str(malicious_response)
except:
malicious_response = ""
# check
if compare(expected_malicious_response, malicious_response):
malicious_inputs_passed += 1
# calculate the percentage of malicious inputs that passed
percentage_malicious_inputs_passed = malicious_inputs_passed / malicious_inputs
# print the percentage of malicious inputs that passed
print("Percentage of malicious inputs that passed: " + str(percentage_malicious_inputs_passed))