MCPcopy Create free account
hub / github.com/GDRETools/gdsdecomp / test_exported_project

Method test_exported_project

utility/import_exporter.cpp:2781–2932  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2779}
2780
2781Error ImportExporter::test_exported_project(const String &p_original_project_dir) {
2782 if (p_original_project_dir.is_empty()) {
2783 print_line("Original project directory is empty, running tests without import comparison...");
2784 }
2785 // clear errors
2786 GDRESettings::get_singleton()->get_errors();
2787 original_project_dir = p_original_project_dir;
2788 Error _ret_err = OK;
2789#if TESTS_ENABLED
2790 const bool is_unit_testing = GDRESettings::is_testing();
2791#else
2792 const bool is_unit_testing = false;
2793#endif
2794 if (report.is_null() || output_dir.is_empty()) {
2795 ERR_FAIL_V_MSG(ERR_BUG, "Export hasn't been run yet");
2796 }
2797 if (!GDRESettings::get_singleton()->is_pack_loaded()) {
2798 ERR_FAIL_V_MSG(ERR_BUG, "Pack is not loaded, cannot test exported project");
2799 }
2800 String tmp_dir;
2801 if (original_project_dir.has_extension("zip")) {
2802 tmp_dir = get_settings()->get_gdre_tmp_path().path_join("test_recovery").path_join(original_project_dir.get_file().get_basename());
2803 print_line(vformat("Extracting original project zip to temporary directory %s...", tmp_dir));
2804
2805 if (DirAccess::dir_exists_absolute(tmp_dir)) {
2806 gdre::rimraf(tmp_dir);
2807 }
2808 gdre::ensure_dir(tmp_dir);
2809 Error err = gdre::unzip_file_to_dir(original_project_dir, tmp_dir);
2810 if (err != OK) {
2811 print_line("Error extracting original project zip: " + String::num_int64(err));
2812 return err;
2813 }
2814 original_project_dir = tmp_dir;
2815 }
2816
2817 auto rimraf_tmp_dir = [&]() {
2818 if (!tmp_dir.is_empty() && DirAccess::dir_exists_absolute(tmp_dir)) {
2819 gdre::rimraf(tmp_dir);
2820 }
2821 String reimport_dir = GDRESettings::get_gdre_tmp_path().path_join("test_reimport");
2822 if (DirAccess::dir_exists_absolute(reimport_dir)) {
2823 gdre::rimraf(reimport_dir);
2824 }
2825 };
2826
2827 Vector<Ref<ExportReport>> export_failed_reports = array_to_vector<Ref<ExportReport>>(report->get_failed());
2828 bool had_failed_exports = export_failed_reports.size() > 0;
2829 GDRE_CHECK(!had_failed_exports);
2830 Vector<Ref<ExportReport>> successes = array_to_vector<Ref<ExportReport>>(report->get_successes());
2831 Vector<Ref<ExportReport>> success_reports;
2832 Vector<Ref<ExportReport>> failed_reports;
2833 Vector<Ref<ExportReport>> not_run_reports;
2834
2835 Vector<String> unzipped_output_dirs;
2836 for (auto &download : report->get_downloaded_plugins()) {
2837 Vector<String> dirs = download.operator Dictionary().get("unzipped_output_dirs", "");
2838 for (auto &unzipped_output_dir : dirs) {

Callers 1

test_export_projectFunction · 0.80

Calls 15

get_settingsFunction · 0.85
is_pack_loadedMethod · 0.80
get_gdre_tmp_pathMethod · 0.80
get_failedMethod · 0.80
get_successesMethod · 0.80
push_backMethod · 0.80
get_saved_pathMethod · 0.80
get_test_errorMethod · 0.80
get_import_infoMethod · 0.80

Tested by

no test coverage detected