aboutsummaryrefslogtreecommitdiff
path: root/test.cc
diff options
context:
space:
mode:
authorAdrian Kummerländer2014-05-29 13:26:37 +0200
committerAdrian Kummerländer2014-05-29 13:26:37 +0200
commit3bc793d95293d40dbab62c593ce4ceaa86fae25b (patch)
tree07a0f99d72a074a75955a593318cc8bcd394f4c2 /test.cc
parent52b60c1a8c23f11ab18fad06e0957490c7436e0a (diff)
downloadInputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.tar
InputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.tar.gz
InputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.tar.bz2
InputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.tar.lz
InputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.tar.xz
InputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.tar.zst
InputXSLT-3bc793d95293d40dbab62c593ce4ceaa86fae25b.zip
Improved TransformationFacade error handling
* ErrorHandler class created in 5859cb6 now caches all errors instead of pushing them to std::cerr ** cached errors are retrieved by TransformationFacade's "generate" member method * test frontend pushes all errors to std::cerr * FunctionTransform returns errors to the calling template as XML ** FunctionTransform test case demonstrates how one may test for successful transformation * "generate" member method returns std::string vector wrapped in a std::unique_ptr ** this is used as a kind of optional pointer, as the std::unique_ptr instance only wraps a vector if errors where actually generated
Diffstat (limited to 'test.cc')
-rw-r--r--test.cc12
1 files changed, 10 insertions, 2 deletions
diff --git a/test.cc b/test.cc
index 9d1dd3a..0c5e4b2 100644
--- a/test.cc
+++ b/test.cc
@@ -48,12 +48,20 @@ int main(int ac, char** av) {
plattform.getEntityResolver()
);
+ InputXSLT::TransformationFacade::return_type errors{};
+
if ( variables.count("target") ) {
- return transformation.generate(
+ errors = transformation.generate(
variables["target"].as<std::string>()
);
} else {
- return transformation.generate(std::cout);
+ errors = transformation.generate(std::cout);
+ }
+
+ if ( errors ) {
+ for ( auto&& error : *errors ) {
+ std::cerr << error << std::endl;
+ }
}
} else {
std::cout << optionDescription << std::endl;