summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2014-07-03 10:58:12 +0000
committerrandomdan <randomdan@localhost>2014-07-03 10:58:12 +0000
commit25e5dd996b30df3ad7ee5cf3645a4ba0873aee2f (patch)
tree2441f4dc9f3ec33ab392d560ff78e0fce820bca0
parentAdd missing unit test data (diff)
downloadslicer-25e5dd996b30df3ad7ee5cf3645a4ba0873aee2f.tar.bz2
slicer-25e5dd996b30df3ad7ee5cf3645a4ba0873aee2f.tar.xz
slicer-25e5dd996b30df3ad7ee5cf3645a4ba0873aee2f.zip
Fix handling of Byte data type (treat as integer)
-rw-r--r--slicer/test/run-slicer.cpp27
-rw-r--r--slicer/xml/serializer.cpp4
2 files changed, 24 insertions, 7 deletions
diff --git a/slicer/test/run-slicer.cpp b/slicer/test/run-slicer.cpp
index 35db875..c6a1ed2 100644
--- a/slicer/test/run-slicer.cpp
+++ b/slicer/test/run-slicer.cpp
@@ -21,18 +21,35 @@ verify(const fs::path & root, const fs::path & tmp, const fs::path & infile, con
fprintf(stderr, "%s : Deserialize\n", input.string().c_str());
IceInternal::Handle<T> p = Slicer::Deserialize<Serializer, T>(input);
- fprintf(stderr, "%s : Check1\n", input.string().c_str());
- if (check) check(*p);
+ if (check) {
+ fprintf(stderr, "%s : Check1\n", input.string().c_str());
+ check(*p);
+ }
fprintf(stderr, "%s : Serialize -> %s\n", input.string().c_str(), output.string().c_str());
Slicer::Serialize<Serializer>(p, output);
- fprintf(stderr, "%s : Check2\n", input.string().c_str());
- if (check) check(*p);
+ if (check) {
+ fprintf(stderr, "%s : Check2\n", input.string().c_str());
+ check(*p);
+ }
fprintf(stderr, "%s : OK\n", input.string().c_str());
system(stringbf("diff -w %s %s", input, output));
}
void
+checkBuiltIns_valuesCorrect(const TestModule::BuiltIns & bt)
+{
+ BOOST_ASSERT(bt.mbool);
+ BOOST_ASSERT(bt.mbyte == 4);
+ BOOST_ASSERT(bt.mshort == 40);
+ BOOST_ASSERT(bt.mint == 80);
+ BOOST_ASSERT(bt.mlong == 800);
+ BOOST_ASSERT(bt.mfloat == 3.125);
+ BOOST_ASSERT(bt.mdouble == 3.0625);
+ BOOST_ASSERT(bt.mstring == "Sample text");
+}
+
+void
checkOptionals_notset(const TestModule::Optionals & opts)
{
BOOST_ASSERT(!opts.optSimple);
@@ -86,7 +103,7 @@ main(int, char ** argv)
fs::create_directory(tmp);
// Execute
- verify<TestModule::BuiltIns, Slicer::Xml>(root, tmp, "builtins.xml");
+ verify<TestModule::BuiltIns, Slicer::Xml>(root, tmp, "builtins.xml", checkBuiltIns_valuesCorrect);
verify<TestModule::Optionals, Slicer::Xml>(root, tmp, "optionals-notset.xml", checkOptionals_notset);
verify<TestModule::Optionals, Slicer::Xml>(root, tmp, "optionals-areset.xml", checkOptionals_areset);
verify<TestModule::InheritanceCont, Slicer::Xml>(root, tmp, "inherit-a.xml");
diff --git a/slicer/xml/serializer.cpp b/slicer/xml/serializer.cpp
index b08e274..bc593da 100644
--- a/slicer/xml/serializer.cpp
+++ b/slicer/xml/serializer.cpp
@@ -34,7 +34,7 @@ namespace Slicer {
void set(Ice::Byte & v) const override
{
- v = boost::lexical_cast<Ice::Byte>(value);
+ v = boost::numeric_cast<Ice::Byte>(boost::lexical_cast<int>(value));
}
void set(Ice::Short & v) const override
@@ -106,7 +106,7 @@ namespace Slicer {
virtual void get(const Ice::Byte & value) const
{
- apply(boost::lexical_cast<Glib::ustring>(value));
+ apply(boost::lexical_cast<Glib::ustring>((int)value));
}
virtual void set(const Ice::Short & value) const