Mercurial > hg > orthanc
changeset 6346:24f66486186d
added unit test SystemToolbox.ReadRange to track an issue with LSB
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 22 Oct 2025 18:27:52 +0200 |
parents | 37b2e9fac910 |
children | 4364c26b0339 |
files | OrthancFramework/UnitTestsSources/FileStorageTests.cpp |
diffstat | 1 files changed, 43 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/OrthancFramework/UnitTestsSources/FileStorageTests.cpp Wed Oct 22 07:49:26 2025 +0200 +++ b/OrthancFramework/UnitTestsSources/FileStorageTests.cpp Wed Oct 22 18:27:52 2025 +0200 @@ -354,4 +354,46 @@ ASSERT_EQ("o", s); ASSERT_THROW(StorageAccessor::Range::ParseHttpRange("bytes=5-").Extract(s, "Hello"), OrthancException); } -} \ No newline at end of file +} + + +TEST(SystemToolbox, ReadRange) +{ + const boost::filesystem::path path(SystemToolbox::PathFromUtf8("UnitTestsResults/hello.txt")); + SystemToolbox::WriteFile("abc", path); + + std::string s; + SystemToolbox::ReadFileRange(s, path, 0, 1, true); + ASSERT_EQ(1u, s.size()); + ASSERT_EQ('a', s[0]); + + SystemToolbox::ReadFileRange(s, path, 1, 2, true); + ASSERT_EQ(1u, s.size()); + ASSERT_EQ('b', s[0]); + + SystemToolbox::ReadFileRange(s, path, 2, 3, true); + ASSERT_EQ(1u, s.size()); + ASSERT_EQ('c', s[0]); + + ASSERT_THROW(SystemToolbox::ReadFileRange(s, path, 3, 4, true), OrthancException); + + SystemToolbox::ReadFileRange(s, path, 0, 2, true); + ASSERT_EQ(2u, s.size()); + ASSERT_EQ('a', s[0]); + ASSERT_EQ('b', s[1]); + + SystemToolbox::ReadFileRange(s, path, 1, 3, true); + ASSERT_EQ(2u, s.size()); + ASSERT_EQ('b', s[0]); + ASSERT_EQ('c', s[1]); + + ASSERT_THROW(SystemToolbox::ReadFileRange(s, path, 2, 4, true), OrthancException); + + SystemToolbox::ReadFileRange(s, path, 0, 3, true); + ASSERT_EQ(3u, s.size()); + ASSERT_EQ('a', s[0]); + ASSERT_EQ('b', s[1]); + ASSERT_EQ('c', s[2]); + + ASSERT_THROW(SystemToolbox::ReadFileRange(s, path, 1, 4, true), OrthancException); +}