Browse Source

Trade: use a better-debuggable way to test passed parameters.

The original tests were implemented back when it was only possible to
use the verification macros from within test cases.
pull/240/head
Vladimír Vondruš 5 years ago
parent
commit
70009347bc
  1. 37
      src/Magnum/Trade/Test/AbstractImporterTest.cpp

37
src/Magnum/Trade/Test/AbstractImporterTest.cpp

@ -27,6 +27,7 @@
#include <Corrade/Containers/ArrayView.h>
#include <Corrade/Containers/Optional.h>
#include <Corrade/TestSuite/Tester.h>
#include <Corrade/TestSuite/Compare/Container.h>
#include <Corrade/TestSuite/Compare/Numeric.h>
#include <Corrade/Utility/DebugStl.h>
#include <Corrade/Utility/Directory.h>
@ -630,7 +631,10 @@ void AbstractImporterTest::openData() {
void doClose() override { _opened = false; }
void doOpenData(Containers::ArrayView<const char> data) override {
_opened = (data.size() == 1 && data[0] == '\xa5');
CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xa5'}),
TestSuite::Compare::Container);
_opened = true;
}
bool _opened = false;
@ -652,7 +656,10 @@ void AbstractImporterTest::openFileAsData() {
void doClose() override { _opened = false; }
void doOpenData(Containers::ArrayView<const char> data) override {
_opened = (data.size() == 1 && data[0] == '\xa5');
CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xa5'}),
TestSuite::Compare::Container);
_opened = true;
}
bool _opened = false;
@ -830,12 +837,16 @@ void AbstractImporterTest::setFileCallbackTemplateNull() {
bool doIsOpened() const override { return false; }
void doClose() override {}
void doSetFileCallback(Containers::Optional<Containers::ArrayView<const char>>(*callback)(const std::string&, InputFileCallbackPolicy, void*), void* userData) override {
called = !callback && !userData;
CORRADE_VERIFY(!callback);
CORRADE_VERIFY(!userData);
called = true;
}
bool called = false;
} importer;
CORRADE_VERIFY(true); /* to record correct function name */
int a = 0;
importer.setFileCallback(static_cast<Containers::Optional<Containers::ArrayView<const char>>(*)(const std::string&, InputFileCallbackPolicy, int&)>(nullptr), a);
CORRADE_VERIFY(!importer.fileCallback());
@ -931,7 +942,10 @@ void AbstractImporterTest::setFileCallbackOpenFileDirectly() {
void doOpenFile(const std::string& filename) override {
/* Called because FileCallback is supported */
_opened = filename == "file.dat" && fileCallback() && fileCallbackUserData();
CORRADE_COMPARE(filename, "file.dat");
CORRADE_VERIFY(fileCallback());
CORRADE_VERIFY(fileCallbackUserData());
_opened = true;
}
void doOpenData(Containers::ArrayView<const char>) override {
@ -961,12 +975,18 @@ void AbstractImporterTest::setFileCallbackOpenFileThroughBaseImplementation() {
void doClose() override { _opened = false; }
void doOpenFile(const std::string& filename) override {
openFileCalled = filename == "file.dat" && fileCallback() && fileCallbackUserData();
CORRADE_COMPARE(filename, "file.dat");
CORRADE_VERIFY(fileCallback());
CORRADE_VERIFY(fileCallbackUserData());
openFileCalled = true;
AbstractImporter::doOpenFile(filename);
}
void doOpenData(Containers::ArrayView<const char> data) override {
_opened = (data.size() == 1 && data[0] == '\xb0');
CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xb0'}),
TestSuite::Compare::Container);
_opened = true;
}
bool _opened = false;
@ -1039,7 +1059,10 @@ void AbstractImporterTest::setFileCallbackOpenFileAsData() {
}
void doOpenData(Containers::ArrayView<const char> data) override {
_opened = (data.size() == 1 && data[0] == '\xb0');
CORRADE_COMPARE_AS(data,
Containers::arrayView({'\xb0'}),
TestSuite::Compare::Container);
_opened = true;
}
bool _opened = false;

Loading…
Cancel
Save