Reject unsupported parsed PPI blend modes

This commit is contained in:
2026-06-02 17:39:45 +02:00
parent 52da64fc96
commit 48fdfd849d
4 changed files with 14 additions and 2 deletions

View File

@@ -395,10 +395,14 @@ void rejects_invalid_project_body_summaries(pp::tests::Harness& h)
ppi_header_size + (128U * 128U * 4U) + 20U,
std::numeric_limits<float>::quiet_NaN());
auto bad_blend_mode = minimal_project();
write_u32_at(bad_blend_mode, ppi_header_size + (128U * 128U * 4U) + 31U, 99U);
const auto truncated_result = parse_ppi_project_summary(truncated);
const auto mismatched_frames_result = parse_ppi_project_summary(mismatched_frames);
const auto bad_layer_name_result = parse_ppi_project_summary(bad_layer_name);
const auto non_finite_opacity_result = parse_ppi_project_summary(non_finite_opacity);
const auto bad_blend_mode_result = parse_ppi_project_summary(bad_blend_mode);
PP_EXPECT(h, !truncated_result.ok());
PP_EXPECT(h, truncated_result.status().code == StatusCode::out_of_range);
@@ -408,6 +412,8 @@ void rejects_invalid_project_body_summaries(pp::tests::Harness& h)
PP_EXPECT(h, bad_layer_name_result.status().code == StatusCode::out_of_range);
PP_EXPECT(h, !non_finite_opacity_result.ok());
PP_EXPECT(h, non_finite_opacity_result.status().code == StatusCode::invalid_argument);
PP_EXPECT(h, !bad_blend_mode_result.ok());
PP_EXPECT(h, bad_blend_mode_result.status().code == StatusCode::out_of_range);
}
void creates_minimal_project_for_roundtrip_load(pp::tests::Harness& h)