From 880c8e07137d0fb4da8372bea2ea39fec35a0faa Mon Sep 17 00:00:00 2001 From: ayrton Date: Sat, 25 Nov 2023 14:15:07 -0700 Subject: [PATCH] Quality of Life Improvements - Counter for generated tests - Nicer messages when things go wrong Took 51 minutes --- ast_generator/ast_generator.py | 12 ++++++------ config.yaml | 2 +- fuzzer.py | 2 +- gazprea_fuzzer.py | 1 + 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/ast_generator/ast_generator.py b/ast_generator/ast_generator.py index b8b801e..1b68391 100644 --- a/ast_generator/ast_generator.py +++ b/ast_generator/ast_generator.py @@ -142,17 +142,17 @@ class AstGenerator: self.current_ast_element.append(element) self.current_ast_element = element - if block_type in [GAZ_PROCEDURE_TAG, GAZ_FUNCTION_TAG]: - self.generate_statements() - else: - self.generate_statements(include='declaration') - self.generate_statements(exclude='declaration') - # Generate the loop condition increment if we are in a loop if block_type == GAZ_LOOP_TAG: self.generate_loop_condition_check(loop_var) self.generate_loop_condition_increment(loop_var) + if block_type not in [GAZ_PROCEDURE_TAG, GAZ_FUNCTION_TAG]: + self.generate_statements() + else: + self.generate_statements(include='declaration') + self.generate_statements(exclude='declaration') + if return_stmt: self.generate_return(return_type=return_type, return_value=return_value) if self.settings['generation-options']['generate-dead-code']: diff --git a/config.yaml b/config.yaml index 5010022..12e5d59 100644 --- a/config.yaml +++ b/config.yaml @@ -90,7 +90,7 @@ misc-weights: type-qualifier-weights: const: 10 var: 60 - truthiness: 0.9 # Probability of conditionals being true + truthiness: 0.99 # Probability of conditionals being true block-termination-probability: 0.2 # probability for a block to terminate diff --git a/fuzzer.py b/fuzzer.py index 8d4b3ec..208fe1f 100644 --- a/fuzzer.py +++ b/fuzzer.py @@ -35,7 +35,6 @@ class GazpreaFuzzer: def fuzz(self): self.generator.generate_ast() - self.write_ast() # FIXME sometimes this is none self.gaz_source_gen = GazUnparser(self.generator.ast, True) try: @@ -56,6 +55,7 @@ class GazpreaFuzzer: pass # exec(str(self.ground_truth)) # exec(self.ground_truth, globals(), locals()) # FIXME the exec doesn't actually execute for some reason... + self.write_ast() # FIXME sometimes this is none self.out = buf.getvalue() diff --git a/gazprea_fuzzer.py b/gazprea_fuzzer.py index c7088f6..d2d0cec 100644 --- a/gazprea_fuzzer.py +++ b/gazprea_fuzzer.py @@ -129,6 +129,7 @@ class Fuzzer(): with open("{}/{}_{}.out".format(fuzzer_outputs, self.file_name, i), 'r') as y: out = y.read() if out == "": + print("Empty output, skipping", file=sys.stderr) os.system("rm -f {}/{}_{}.py".format(fuzzer_ground_truth, self.file_name, i)) os.system("rm -f {}/{}_{}.out".format(fuzzer_outputs, self.file_name, i)) if i - 1 >= min_i: