7 #include "flutter/fml/mapping.h"
8 #include "flutter/testing/testing.h"
11 #include "impeller/shader_archive/multi_arch_shader_archive_flatbuffers.h"
14 #include "impeller/shader_archive/shader_archive_flatbuffers.h"
21 std::string p_string) {
22 auto string = std::make_shared<std::string>(std::move(p_string));
23 return std::make_shared<fml::NonOwnedMapping>(
24 reinterpret_cast<const uint8_t*
>(string->data()), string->size(),
25 [
string](
auto,
auto) {});
29 return std::string{
reinterpret_cast<const char*
>(mapping.GetMapping()),
33 TEST(ShaderArchiveTest, CanReadAndWriteBlobs) {
47 ASSERT_NE(mapping,
nullptr);
62 ASSERT_TRUE(multi_mapping);
68 ASSERT_EQ(no_library,
nullptr);
73 ASSERT_EQ(library->GetShaderCount(), 5u);
80 ASSERT_NE(hello_vtx,
nullptr);
84 TEST(ShaderArchiveTest, ArchiveAndMultiArchiveHaveDifferentIdentifiers) {
88 auto archive_id = fb::ShaderArchiveIdentifier();
89 auto multi_archive_id = fb::MultiArchShaderArchiveIdentifier();
90 ASSERT_EQ(std::strlen(archive_id), std::strlen(multi_archive_id));
91 ASSERT_NE(std::strncmp(archive_id, multi_archive_id, std::strlen(archive_id)),