test: span: Add tests for begin() and rbegin()

Verify that the begin() and rbegin() iterators (and their const version)
reference the correct values. The end() and rend() iterators can't be
tested the same way as they're not dereferenceable.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Laurent Pinchart 2021-04-13 02:48:08 +03:00
parent c3269524e4
commit c244d07286

View file

@ -72,12 +72,24 @@ protected:
staticSpan = Span<int, 4>{ v };
staticSpan.begin();
staticSpan.cbegin();
if (*staticSpan.begin() != 1) {
std::cout << "Span<static_extent>::begin() failed" << std::endl;
return TestFail;
}
if (*staticSpan.cbegin() != 1) {
std::cout << "Span<static_extent>::cbegin() failed" << std::endl;
return TestFail;
}
staticSpan.end();
staticSpan.cend();
staticSpan.rbegin();
staticSpan.crbegin();
if (*staticSpan.rbegin() != 4) {
std::cout << "Span<static_extent>::rbegin() failed" << std::endl;
return TestFail;
}
if (*staticSpan.crbegin() != 4) {
std::cout << "Span<static_extent>::crbegin() failed" << std::endl;
return TestFail;
}
staticSpan.rend();
staticSpan.crend();
@ -141,12 +153,24 @@ protected:
dynamicSpan = Span<int>{ a };
dynamicSpan.begin();
dynamicSpan.cbegin();
if (*dynamicSpan.begin() != 1) {
std::cout << "Span<dynamic_extent>::begin() failed" << std::endl;
return TestFail;
}
if (*dynamicSpan.cbegin() != 1) {
std::cout << "Span<dynamic_extent>::cbegin() failed" << std::endl;
return TestFail;
}
dynamicSpan.end();
dynamicSpan.cend();
dynamicSpan.rbegin();
dynamicSpan.crbegin();
if (*dynamicSpan.rbegin() != 4) {
std::cout << "Span<dynamic_extent>::rbegin() failed" << std::endl;
return TestFail;
}
if (*dynamicSpan.crbegin() != 4) {
std::cout << "Span<dynamic_extent>::crbegin() failed" << std::endl;
return TestFail;
}
dynamicSpan.rend();
dynamicSpan.crend();