| 29 | self.memory_folder = os.path.join(conformance_tests_folder, module_name, CODEPLAIN_MEMORY_SUBFOLDER) |
| 30 | |
| 31 | def create_conformance_tests_memory( |
| 32 | self, render_context: RenderContext, exit_code: int, conformance_tests_issue: str |
| 33 | ): |
| 34 | |
| 35 | current_conformance_tests_issue_frid = render_context.conformance_tests_running_context.current_testing_frid |
| 36 | current_conformance_tests_issue_module = ( |
| 37 | render_context.conformance_tests_running_context.current_testing_module_name |
| 38 | ) |
| 39 | old_conformance_tests_issue_frid = ( |
| 40 | render_context.conformance_tests_running_context.previous_conformance_tests_issue_frid |
| 41 | ) |
| 42 | old_conformance_tests_issue_module = ( |
| 43 | render_context.conformance_tests_running_context.previous_conformance_tests_issue_module |
| 44 | ) |
| 45 | |
| 46 | old_conformance_tests_issue = ( |
| 47 | render_context.conformance_tests_running_context.previous_conformance_tests_issue_old |
| 48 | ) |
| 49 | |
| 50 | is_first_time_running_conformance_tests = ( |
| 51 | old_conformance_tests_issue_frid is None |
| 52 | or old_conformance_tests_issue_frid == "" |
| 53 | or old_conformance_tests_issue_module != current_conformance_tests_issue_module |
| 54 | ) |
| 55 | is_same_frid_as_previous_failing_test = ( |
| 56 | current_conformance_tests_issue_frid == old_conformance_tests_issue_frid |
| 57 | and current_conformance_tests_issue_module == old_conformance_tests_issue_module |
| 58 | ) |
| 59 | is_conformance_test_failed = exit_code != CONFORMANCE_TESTS_SUCCESS_EXIT_CODE |
| 60 | |
| 61 | should_create_memory = not is_first_time_running_conformance_tests and ( |
| 62 | is_same_frid_as_previous_failing_test or is_conformance_test_failed |
| 63 | ) |
| 64 | code_diff_files = render_context.conformance_tests_running_context.code_diff_files |
| 65 | |
| 66 | if not should_create_memory or code_diff_files is None: |
| 67 | console.debug( |
| 68 | "Skipping creation of conformance test memory because the conditions for creating memories are not met." |
| 69 | ) |
| 70 | return |
| 71 | |
| 72 | existing_files, existing_files_content = ImplementationCodeHelpers.fetch_existing_files( |
| 73 | render_context.build_folder |
| 74 | ) |
| 75 | memory_files, memory_files_content = MemoryManager.fetch_memory_files(self.memory_folder) |
| 76 | |
| 77 | conformance_tests_folder_name = ( |
| 78 | render_context.conformance_tests_running_context.get_current_conformance_test_folder_name() |
| 79 | ) |
| 80 | |
| 81 | ( |
| 82 | _, |
| 83 | existing_conformance_test_files_content, |
| 84 | ) = render_context.conformance_tests.fetch_existing_conformance_test_files( |
| 85 | render_context.module_name, |
| 86 | render_context.required_modules, |
| 87 | render_context.conformance_tests_running_context.current_testing_module_name, |
| 88 | conformance_tests_folder_name, |