You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2008/11/11 21:49:47 UTC

svn commit: r713160 - in /incubator/qpid/trunk/qpid/cpp/src: qpid/framing/FieldValue.h tests/FieldTable.cpp

Author: rhs
Date: Tue Nov 11 12:49:46 2008
New Revision: 713160

URL: http://svn.apache.org/viewvc?rev=713160&view=rev
Log:
fixed encoding of 64 bit types and added additional tests for 64 bit integers

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/framing/FieldValue.h
    incubator/qpid/trunk/qpid/cpp/src/tests/FieldTable.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/framing/FieldValue.h
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/framing/FieldValue.h?rev=713160&r1=713159&r2=713160&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/framing/FieldValue.h (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/framing/FieldValue.h Tue Nov 11 12:49:46 2008
@@ -139,7 +139,7 @@
     }
     FixedWidthValue(uint64_t v)
     {
-        for (int i = width; i > 0; --i) {
+        for (int i = width; i > 1; --i) {
             octets[i-1] = (uint8_t) (0xFF & v); v >>= 8;
         }
         octets[0] = (uint8_t) (0xFF & v);

Modified: incubator/qpid/trunk/qpid/cpp/src/tests/FieldTable.cpp
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/tests/FieldTable.cpp?rev=713160&r1=713159&r2=713160&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/tests/FieldTable.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/tests/FieldTable.cpp Tue Nov 11 12:49:46 2008
@@ -161,12 +161,17 @@
 {
     FieldTable args;
     args.setInt64("a",100);
+    args.setInt64("b",-(int64_t) ((int64_t) 1<<34));
     
-    args.setUInt64("b",1u);
-    BOOST_CHECK_EQUAL(1u, args.getAsUInt64("b"));
+    args.setUInt64("c",1u);
+    args.setUInt64("d",(uint64_t) ((uint64_t) 1<<34));
+    BOOST_CHECK_EQUAL(1u, args.getAsUInt64("c"));
     BOOST_CHECK_EQUAL(100u, args.getAsUInt64("a"));
-    BOOST_CHECK_EQUAL(1, args.getAsInt64("b"));
+    BOOST_CHECK_EQUAL(1, args.getAsInt64("c"));
     BOOST_CHECK_EQUAL(100, args.getAsInt64("a"));
+    BOOST_CHECK_EQUAL(-(int64_t) ((int64_t) 1<<34), args.getAsInt64("b"));
+    BOOST_CHECK_EQUAL((uint64_t) ((uint64_t) 1<<34), args.getAsUInt64("d"));
+    BOOST_CHECK_EQUAL((int64_t) ((int64_t) 1<<34), args.getAsInt64("d"));
 
 }