diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-06-30 15:22:40 +0200 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-06-30 15:22:40 +0200 |
| commit | bf49cfef2f923bcaaf6e4f44470b0c29cb829c34 (patch) | |
| tree | 1a298ed54bf99af35c89c7ce6d03766332aad5b6 | |
| parent | 25f8033d556aa17afaea4a5196ea7a69fe248320 (diff) | |
| download | emulator-bug-study-bf49cfef2f923bcaaf6e4f44470b0c29cb829c34.tar.gz emulator-bug-study-bf49cfef2f923bcaaf6e4f44470b0c29cb829c34.zip | |
add analyze_results script and results for 118 and deepseek-2-tmp
| -rwxr-xr-x | classification/tools/analyze_results.py | 48 | ||||
| -rw-r--r-- | results/classifier/118/analysis.csv | 23 | ||||
| -rw-r--r-- | results/classifier/deepseek-2-tmp/analysis.csv | 7 | ||||
| -rw-r--r-- | results/classifier/deepseek-2-tmp/categories.csv | 19 |
4 files changed, 97 insertions, 0 deletions
diff --git a/classification/tools/analyze_results.py b/classification/tools/analyze_results.py new file mode 100755 index 00000000..663c1f55 --- /dev/null +++ b/classification/tools/analyze_results.py @@ -0,0 +1,48 @@ +from argparse import ArgumentParser +from os import path, listdir + +parser = ArgumentParser() + +parser.add_argument('-b', '--bugs', required = True) +parser.add_argument('-d', '--search_directory', required = True) + +args = parser.parse_args() + +def list_files_recursive(directory, basename = False): + result = [] + for entry in listdir(directory): + full_path = path.join(directory, entry) + if path.isdir(full_path): + result = result + list_files_recursive(full_path, basename) + else: + if basename: + result.append(path.basename(full_path)) + else: + result.append(full_path) + return result + +def output_csv(dictionary, full_path): + with open(path.join(full_path, 'analysis.csv'), "w") as file: + file.write("category, count\n") + for key, value in dictionary.items(): + file.write(f"{key}, {value}\n") + +def main(): + result = {} + mistranslation_bugs = list_files_recursive(args.bugs, True) + bugs = list_files_recursive(args.search_directory, False) + + for mistranslation_bug in mistranslation_bugs: + for bug in bugs: + if mistranslation_bug == path.basename(bug): + category = path.basename(path.dirname(bug)) + if category in result: + result[category] += 1 + else: + result[category] = 1 + continue + + output_csv(result, args.search_directory) + +if __name__ == "__main__": + main() diff --git a/results/classifier/118/analysis.csv b/results/classifier/118/analysis.csv new file mode 100644 index 00000000..a0afa543 --- /dev/null +++ b/results/classifier/118/analysis.csv @@ -0,0 +1,23 @@ +category, count +none, 8 +review, 16 +semantic-x86, 6 +all, 6 +register, 2 +architecture-x86, 4 +architecture-ppc, 3 +graphic, 1 +performance, 1 +debug, 2 +kernel, 1 +assembly-x86, 2 +mistranslation, 1 +TCG, 1 +unknown, 1 +architecture-i386, 1 +user-level, 1 +device, 1 +x86, 1 +architecture, 1 +architecture-risc-v, 1 +risc-v, 1 diff --git a/results/classifier/deepseek-2-tmp/analysis.csv b/results/classifier/deepseek-2-tmp/analysis.csv new file mode 100644 index 00000000..d3a2e693 --- /dev/null +++ b/results/classifier/deepseek-2-tmp/analysis.csv @@ -0,0 +1,7 @@ +category, count +mistranslation, 19 +manual-review, 2 +assembly, 1 +KVM, 1 +hypervisor, 1 +other, 1 diff --git a/results/classifier/deepseek-2-tmp/categories.csv b/results/classifier/deepseek-2-tmp/categories.csv new file mode 100644 index 00000000..5d4346a2 --- /dev/null +++ b/results/classifier/deepseek-2-tmp/categories.csv @@ -0,0 +1,19 @@ +category, count +vnc, 47 +performance, 85 +network, 319 +graphic, 321 +device, 698 +permissions, 33 +other, 569 +manual-review, 560 +boot, 123 +kernel, 37 +hypervisor, 413 +KVM, 107 +files, 202 +debug, 67 +assembly, 35 +mistranslation, 415 +peripherals, 204 +socket, 31 |