diff --git a/repos/os/src/test/xml_generator/main.cc b/repos/os/src/test/xml_generator/main.cc
index e34b7ceae9..5564ff6012 100644
--- a/repos/os/src/test/xml_generator/main.cc
+++ b/repos/os/src/test/xml_generator/main.cc
@@ -11,7 +11,8 @@
* under the terms of the GNU General Public License version 2.
*/
-#include
+#include
+#include
#include
#include
@@ -62,11 +63,11 @@ static size_t fill_buffer_with_xml(char *dst, size_t dst_len)
}
-int main(int argc, char **argv)
+void Component::construct(Genode::Env &env)
{
- using Genode::printf;
+ using namespace Genode;
- printf("--- XML generator test started ---\n");
+ log("--- XML generator test started ---");
static char dst[1000];
@@ -75,7 +76,7 @@ int main(int argc, char **argv)
* corresponding run script).
*/
size_t used = fill_buffer_with_xml(dst, sizeof(dst));
- printf("result:\n\n%s\nused %ld bytes\n", dst, used);
+ log("result:\n\n", Cstring(dst), "\nused ", used, " bytes");
/*
* Test buffer overflow
@@ -83,7 +84,7 @@ int main(int argc, char **argv)
try {
fill_buffer_with_xml(dst, 20); }
catch (Genode::Xml_generator::Buffer_exceeded) {
- printf("buffer exceeded (expected error)\n"); }
+ log("buffer exceeded (expected error)"); }
/*
* Test the sanitizing of XML node content
@@ -95,11 +96,11 @@ int main(int argc, char **argv)
pattern[i] = i;
/* generate XML with the pattern as content */
- Genode::Xml_generator xml(dst, sizeof(dst), "data", [&] () {
+ Xml_generator xml(dst, sizeof(dst), "data", [&] () {
xml.append_sanitized(pattern, sizeof(pattern)); });
/* parse the generated XML data */
- Genode::Xml_node node(dst);
+ Xml_node node(dst);
/* obtain decoded node content */
char decoded[sizeof(dst)];
@@ -107,17 +108,16 @@ int main(int argc, char **argv)
/* compare result with original pattern */
if (decoded_len != sizeof(pattern)) {
- printf("decoded content has unexpected length %ld\n", decoded_len);
- return 1;
+ log("decoded content has unexpected length ", decoded_len);
+ return;
}
- if (Genode::memcmp(decoded, pattern, sizeof(pattern))) {
- printf("decoded content does not match original pattern\n");
- return 1;
+ if (memcmp(decoded, pattern, sizeof(pattern))) {
+ log("decoded content does not match original pattern");
+ return;
}
}
- printf("--- XML generator test finished ---\n");
-
- return 0;
+ log("--- XML generator test finished ---");
+ env.parent().exit(0);
}