Changeset View
Changeset View
Standalone View
Standalone View
source/blender/io/wavefront_obj/tests/obj_exporter_tests.cc
| Context not available. | |||||
| #include "BKE_appdir.h" | #include "BKE_appdir.h" | ||||
| #include "BKE_blender_version.h" | #include "BKE_blender_version.h" | ||||
| #include "BKE_main.h" | |||||
| #include "BLI_fileops.h" | #include "BLI_fileops.h" | ||||
| #include "BLI_index_range.hh" | #include "BLI_index_range.hh" | ||||
| #include "BLI_string_utf8.h" | #include "BLI_string_utf8.h" | ||||
| #include "BLI_vector.hh" | #include "BLI_vector.hh" | ||||
| #include "BLO_readfile.h" | |||||
| #include "DEG_depsgraph.h" | #include "DEG_depsgraph.h" | ||||
| #include "obj_export_file_writer.hh" | #include "obj_export_file_writer.hh" | ||||
| Context not available. | |||||
| std::string tempdir = std::string(BKE_tempdir_base()); | std::string tempdir = std::string(BKE_tempdir_base()); | ||||
| std::string out_file_path = tempdir + BLI_path_basename(golden_obj.c_str()); | std::string out_file_path = tempdir + BLI_path_basename(golden_obj.c_str()); | ||||
| strncpy(params.filepath, out_file_path.c_str(), FILE_MAX - 1); | strncpy(params.filepath, out_file_path.c_str(), FILE_MAX - 1); | ||||
| params.blen_filepath = blendfile.c_str(); | params.blen_filepath = bfile->main->filepath; | ||||
| std::string golden_file_path = blender::tests::flags_test_asset_dir() + "/" + golden_obj; | |||||
| BLI_split_dir_part(golden_file_path.c_str(), params.file_base_for_tests, PATH_MAX); | |||||
| export_frame(depsgraph, params, out_file_path.c_str()); | export_frame(depsgraph, params, out_file_path.c_str()); | ||||
| std::string output_str = read_temp_file_in_string(out_file_path); | std::string output_str = read_temp_file_in_string(out_file_path); | ||||
| std::string golden_file_path = blender::tests::flags_test_asset_dir() + "/" + golden_obj; | |||||
| std::string golden_str = read_temp_file_in_string(golden_file_path); | std::string golden_str = read_temp_file_in_string(golden_file_path); | ||||
| bool are_equal = strings_equal_after_first_lines(output_str, golden_str); | bool are_equal = strings_equal_after_first_lines(output_str, golden_str); | ||||
| if (save_failing_test_output && !are_equal) { | if (save_failing_test_output && !are_equal) { | ||||
| Context not available. | |||||
| _export.params); | _export.params); | ||||
| } | } | ||||
| /* Note: texture paths in the resulting mtl file currently are always | TEST_F(obj_exporter_regression_test, cubes_with_textures_strip) | ||||
| * as they are stored in the source .blend file; not relative to where | |||||
| * the export is done. When that is properly fixed, the expected .mtl | |||||
| * file should be updated. */ | |||||
| TEST_F(obj_exporter_regression_test, cubes_with_textures) | |||||
| { | { | ||||
| OBJExportParamsDefault _export; | OBJExportParamsDefault _export; | ||||
| _export.params.path_mode = PATH_REFERENCE_STRIP; | |||||
| compare_obj_export_to_golden("io_tests/blend_geometry/cubes_with_textures.blend", | compare_obj_export_to_golden("io_tests/blend_geometry/cubes_with_textures.blend", | ||||
| "io_tests/obj/cubes_with_textures.obj", | "io_tests/obj/cubes_with_textures.obj", | ||||
| "io_tests/obj/cubes_with_textures.mtl", | "io_tests/obj/cubes_with_textures.mtl", | ||||
| _export.params); | _export.params); | ||||
| } | } | ||||
| TEST_F(obj_exporter_regression_test, cubes_with_textures_relative) | |||||
| { | |||||
| OBJExportParamsDefault _export; | |||||
| _export.params.path_mode = PATH_REFERENCE_RELATIVE; | |||||
| compare_obj_export_to_golden("io_tests/blend_geometry/cubes_with_textures.blend", | |||||
| "io_tests/obj/cubes_with_textures_rel.obj", | |||||
| "io_tests/obj/cubes_with_textures_rel.mtl", | |||||
| _export.params); | |||||
| } | |||||
| TEST_F(obj_exporter_regression_test, suzanne_all_data) | TEST_F(obj_exporter_regression_test, suzanne_all_data) | ||||
| { | { | ||||
| OBJExportParamsDefault _export; | OBJExportParamsDefault _export; | ||||
| Context not available. | |||||