Mercurial > hg > orthanc
diff OrthancFramework/UnitTestsSources/ImageTests.cpp @ 4325:b96aedfa8cc1
unit tests now running in WebAssembly
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 24 Nov 2020 16:21:29 +0100 |
parents | cb9aef006229 |
children | d9473bd5ed43 |
line wrap: on
line diff
--- a/OrthancFramework/UnitTestsSources/ImageTests.cpp Tue Nov 24 12:37:52 2020 +0100 +++ b/OrthancFramework/UnitTestsSources/ImageTests.cpp Tue Nov 24 16:21:29 2020 +0100 @@ -36,9 +36,12 @@ #include "../Sources/Images/PngWriter.h" #include "../Sources/Images/PamReader.h" #include "../Sources/Images/PamWriter.h" -#include "../Sources/SystemToolbox.h" #include "../Sources/Toolbox.h" -#include "../Sources/TemporaryFile.h" + +#if ORTHANC_SANDBOXED != 1 +# include "../Sources/SystemToolbox.h" +# include "../Sources/TemporaryFile.h" +#endif #include <stdint.h> @@ -65,14 +68,21 @@ Orthanc::ImageAccessor accessor; accessor.AssignReadOnly(Orthanc::PixelFormat_RGB24, width, height, pitch, &image[0]); - Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/ColorPattern.png", accessor); + std::string f; - std::string f, md5; +#if ORTHANC_SANDBOXED == 1 + Orthanc::IImageWriter::WriteToMemory(w, f, accessor); +#else + Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/ColorPattern.png", accessor); Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/ColorPattern.png"); +#endif + + std::string md5; Orthanc::Toolbox::ComputeMD5(md5, f); ASSERT_EQ("604e785f53c99cae6ea4584870b2c41d", md5); } + TEST(PngWriter, Gray8Pattern) { Orthanc::PngWriter w; @@ -93,10 +103,16 @@ Orthanc::ImageAccessor accessor; accessor.AssignReadOnly(Orthanc::PixelFormat_Grayscale8, width, height, pitch, &image[0]); + std::string f; + +#if ORTHANC_SANDBOXED == 1 + Orthanc::IImageWriter::WriteToMemory(w, f, accessor); +#else Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray8Pattern.png", accessor); + Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/Gray8Pattern.png"); +#endif - std::string f, md5; - Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/Gray8Pattern.png"); + std::string md5; Orthanc::Toolbox::ComputeMD5(md5, f); ASSERT_EQ("5a9b98bea3d0a6d983980cc38bfbcdb3", md5); } @@ -122,10 +138,17 @@ Orthanc::ImageAccessor accessor; accessor.AssignReadOnly(Orthanc::PixelFormat_Grayscale16, width, height, pitch, &image[0]); - Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray16Pattern.png", accessor); - std::string f, md5; + std::string f; + +#if ORTHANC_SANDBOXED == 1 + Orthanc::IImageWriter::WriteToMemory(w, f, accessor); +#else + Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray16Pattern.png", accessor); Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/Gray16Pattern.png"); +#endif + + std::string md5; Orthanc::Toolbox::ComputeMD5(md5, f); ASSERT_EQ("0785866a08bf0a02d2eeff87f658571c", md5); } @@ -175,6 +198,7 @@ } } +#if ORTHANC_SANDBOXED != 1 { Orthanc::TemporaryFile tmp; tmp.Write(s); @@ -197,6 +221,7 @@ } } } +#endif } @@ -218,34 +243,51 @@ } Orthanc::JpegWriter w; - Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/hello.jpg", img); + Orthanc::IImageWriter::WriteToMemory(w, s, img); - Orthanc::IImageWriter::WriteToMemory(w, s, img); +#if ORTHANC_SANDBOXED != 1 + Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/hello.jpg", img); Orthanc::SystemToolbox::WriteFile(s, "UnitTestsResults/hello2.jpg"); std::string t; Orthanc::SystemToolbox::ReadFile(t, "UnitTestsResults/hello.jpg"); ASSERT_EQ(s.size(), t.size()); ASSERT_EQ(0, memcmp(s.c_str(), t.c_str(), s.size())); +#endif } { - Orthanc::JpegReader r1, r2; - r1.ReadFromFile("UnitTestsResults/hello.jpg"); + Orthanc::JpegReader r1; + r1.ReadFromMemory(s); ASSERT_EQ(16u, r1.GetWidth()); ASSERT_EQ(16u, r1.GetHeight()); - r2.ReadFromMemory(s); +#if ORTHANC_SANDBOXED != 1 + Orthanc::JpegReader r2; + r2.ReadFromFile("UnitTestsResults/hello.jpg"); ASSERT_EQ(16u, r2.GetWidth()); ASSERT_EQ(16u, r2.GetHeight()); +#endif + unsigned int value = 0; for (unsigned int y = 0; y < r1.GetHeight(); y++) { const uint8_t* p1 = reinterpret_cast<const uint8_t*>(r1.GetConstRow(y)); +#if ORTHANC_SANDBOXED != 1 const uint8_t* p2 = reinterpret_cast<const uint8_t*>(r2.GetConstRow(y)); - for (unsigned int x = 0; x < r1.GetWidth(); x++) +#endif + for (unsigned int x = 0; x < r1.GetWidth(); x++, value++) { + ASSERT_TRUE(*p1 == value || + *p1 == value - 1 || + *p1 == value + 1); // Be tolerant to differences of +-1 + +#if ORTHANC_SANDBOXED != 1 ASSERT_EQ(*p1, *p2); + p2++; +#endif + + p1++; } } } @@ -274,10 +316,16 @@ Orthanc::ImageAccessor accessor; accessor.AssignReadOnly(Orthanc::PixelFormat_RGB24, width, height, pitch, &image[0]); - Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/ColorPattern.pam", accessor); + std::string f; - std::string f, md5; +#if ORTHANC_SANDBOXED == 1 + Orthanc::IImageWriter::WriteToMemory(w, f, accessor); +#else + Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/ColorPattern.pam", accessor); Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/ColorPattern.pam"); +#endif + + std::string md5; Orthanc::Toolbox::ComputeMD5(md5, f); ASSERT_EQ("81a3441754e88969ebbe53e69891e841", md5); } @@ -302,10 +350,16 @@ Orthanc::ImageAccessor accessor; accessor.AssignReadOnly(Orthanc::PixelFormat_Grayscale8, width, height, pitch, &image[0]); - Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray8Pattern.pam", accessor); + std::string f; - std::string f, md5; +#if ORTHANC_SANDBOXED == 1 + Orthanc::IImageWriter::WriteToMemory(w, f, accessor); +#else + Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray8Pattern.pam", accessor); Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/Gray8Pattern.pam"); +#endif + + std::string md5; Orthanc::Toolbox::ComputeMD5(md5, f); ASSERT_EQ("7873c408d26a9d11dd1c1de5e69cc0a3", md5); } @@ -331,10 +385,17 @@ Orthanc::ImageAccessor accessor; accessor.AssignReadOnly(Orthanc::PixelFormat_Grayscale16, width, height, pitch, &image[0]); - Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray16Pattern.pam", accessor); + + std::string f; - std::string f, md5; +#if ORTHANC_SANDBOXED == 1 + Orthanc::IImageWriter::WriteToMemory(w, f, accessor); +#else + Orthanc::IImageWriter::WriteToFile(w, "UnitTestsResults/Gray16Pattern.pam", accessor); Orthanc::SystemToolbox::ReadFile(f, "UnitTestsResults/Gray16Pattern.pam"); +#endif + + std::string md5; Orthanc::Toolbox::ComputeMD5(md5, f); ASSERT_EQ("b268772bf28f3b2b8520ff21c5e3dcb6", md5); } @@ -407,6 +468,7 @@ } } +#if ORTHANC_SANDBOXED != 1 { Orthanc::TemporaryFile tmp; tmp.Write(s); @@ -430,7 +492,9 @@ } } } +#endif +#if ORTHANC_SANDBOXED != 1 { Orthanc::TemporaryFile tmp; tmp.Write(s); @@ -455,5 +519,5 @@ } } } - +#endif }