Bläddra i källkod

2009-02-08 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

	Added tests for array_ptr.
	* test/array_funTest.cc
Tatsuhiro Tsujikawa 16 år sedan
förälder
incheckning
b8d177dd5d
2 ändrade filer med 30 tillägg och 0 borttagningar
  1. 5 0
      ChangeLog
  2. 25 0
      test/array_funTest.cc

+ 5 - 0
ChangeLog

@@ -1,3 +1,8 @@
+2009-02-08  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
+
+	Added tests for array_ptr.
+	* test/array_funTest.cc
+	
 2009-02-08  Tatsuhiro Tsujikawa  <t-tujikawa@users.sourceforge.net>
 
 	Don't send ip parameter to a tracker if ip parameter is empty

+ 25 - 0
test/array_funTest.cc

@@ -11,13 +11,21 @@ class array_funTest:public CppUnit::TestFixture {
   CPPUNIT_TEST(testArray_negate);
   CPPUNIT_TEST(testArray_and);
   CPPUNIT_TEST(testArrayLength);
+  CPPUNIT_TEST(testArrayPtr);
   CPPUNIT_TEST_SUITE_END();
+
 public:
   void testBit_negate();
   void testBit_and();
   void testArray_negate();
   void testArray_and();
   void testArrayLength();
+  void testArrayPtr();
+
+  struct X{
+    int m;
+  };
+
 };
 
 
@@ -77,4 +85,21 @@ void array_funTest::testArrayLength()
   CPPUNIT_ASSERT_EQUAL((size_t)0, arrayLength(zeroLengthArray));
 }
 
+// Check operator[] in const context.
+static void arrayPtrConst(const array_ptr<struct array_funTest::X>& ax)
+{
+  CPPUNIT_ASSERT_EQUAL(100, ax[3].m);
+  CPPUNIT_ASSERT_EQUAL(99, ax[2].m);
+}
+
+void array_funTest::testArrayPtr()
+{
+  array_ptr<struct X> ax(new struct X[10]);
+  ax[3].m = 100;
+  ax[2].m = 99;
+  CPPUNIT_ASSERT_EQUAL(100, ax[3].m);
+  CPPUNIT_ASSERT_EQUAL(99, ax[2].m);
+  arrayPtrConst(ax);
+}
+
 } // namespace aria2