ptr_array_test.cpp
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:12k
源码类别:

Symbian

开发平台:

C/C++

  1. /* ***** BEGIN LICENSE BLOCK ***** 
  2.  * Version: RCSL 1.0/RPSL 1.0 
  3.  *  
  4.  * Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved. 
  5.  *      
  6.  * The contents of this file, and the files included with this file, are 
  7.  * subject to the current version of the RealNetworks Public Source License 
  8.  * Version 1.0 (the "RPSL") available at 
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed 
  10.  * the file under the RealNetworks Community Source License Version 1.0 
  11.  * (the "RCSL") available at http://www.helixcommunity.org/content/rcsl, 
  12.  * in which case the RCSL will apply. You may also obtain the license terms 
  13.  * directly from RealNetworks.  You may not use this file except in 
  14.  * compliance with the RPSL or, if you have a valid RCSL with RealNetworks 
  15.  * applicable to this file, the RCSL.  Please see the applicable RPSL or 
  16.  * RCSL for the rights, obligations and limitations governing use of the 
  17.  * contents of the file.  
  18.  *  
  19.  * This file is part of the Helix DNA Technology. RealNetworks is the 
  20.  * developer of the Original Code and owns the copyrights in the portions 
  21.  * it created. 
  22.  *  
  23.  * This file, and the files included with this file, is distributed and made 
  24.  * available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER 
  25.  * EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES, 
  26.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS 
  27.  * FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. 
  28.  * 
  29.  * Technology Compatibility Kit Test Suite(s) Location: 
  30.  *    http://www.helixcommunity.org/content/tck 
  31.  * 
  32.  * Contributor(s): 
  33.  *  
  34.  * ***** END LICENSE BLOCK ***** */ 
  35. #include "./ptr_array_test.h"
  36. #include "hx_ut_debug.h"
  37. #include "ut_param_util.h"
  38. #include "./param_util.h"
  39. HLXPtrArrayTest::HLXPtrArrayTest()
  40. {}
  41. const char* HLXPtrArrayTest::DefaultCommandLine() const
  42. {
  43.     return "tptrarray tptrarray.in";
  44. }
  45.     
  46. void HLXPtrArrayTest::GetCommandInfo(UTVector<HLXUnitTestCmdInfo*>& cmds)
  47. {
  48.     cmds.Resize(16);
  49.     cmds[0] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  50.     "IsEmpty",
  51.     &HLXPtrArrayTest::HandleIsEmptyCmd,
  52.     2);
  53.     cmds[1] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  54.     "GetSize",
  55.     &HLXPtrArrayTest::HandleGetSizeCmd,
  56.     2);
  57.     cmds[2] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  58.     "GetUpperBound",
  59.     &HLXPtrArrayTest::HandleGetUpperBoundCmd,
  60.     2);
  61.     cmds[3] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  62.     "SetSize",
  63.     &HLXPtrArrayTest::HandleSetSizeCmd,
  64.     3);
  65.     cmds[4] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  66.     "FreeExtra",
  67.     &HLXPtrArrayTest::HandleFreeExtraCmd,
  68.     1);
  69.     cmds[5] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  70.     "RemoveAll",
  71.     &HLXPtrArrayTest::HandleRemoveAllCmd,
  72.     1);
  73.     cmds[6] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  74.     "GetAt",
  75.     &HLXPtrArrayTest::HandleGetAtCmd,
  76.     3);
  77.     cmds[7] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  78.     "SetAt",
  79.     &HLXPtrArrayTest::HandleSetAtCmd,
  80.     3);
  81.     cmds[8] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  82.     "ElementAt",
  83.     &HLXPtrArrayTest::HandleElementAtCmd,
  84.     3);
  85.     cmds[9] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  86.     "SetAtGrow",
  87.     &HLXPtrArrayTest::HandleSetAtGrowCmd,
  88.     3);
  89.     cmds[10] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  90.     "Add",
  91.     &HLXPtrArrayTest::HandleAddCmd,
  92.     2);
  93.     cmds[11] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  94.     "ArrayOp",
  95.     &HLXPtrArrayTest::HandleArrayOpCmd,
  96.     3);
  97.     cmds[12] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  98.     "InsertAt",
  99.     &HLXPtrArrayTest::HandleInsertAtCmd,
  100.     4);
  101.     cmds[13] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  102.     "RemoveAt",
  103.     &HLXPtrArrayTest::HandleRemoveAtCmd,
  104.     3);
  105.     cmds[14] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  106.     "InsertArrayAt",
  107.     &HLXPtrArrayTest::HandleInsertArrayAtCmd,
  108.     3);
  109.     cmds[15] = new HLXUnitTestCmdInfoDisp<HLXPtrArrayTest>(this, 
  110.     "IsNull",
  111.     &HLXPtrArrayTest::HandleIsNullCmd,
  112.     3);
  113. }
  114. HLXCmdBasedTest* HLXPtrArrayTest::Clone() const
  115. {
  116.     return new HLXPtrArrayTest();
  117. }
  118. bool HLXPtrArrayTest::HandleIsEmptyCmd(const UTVector<UTString>& info)
  119. {
  120.     bool ret = false;
  121.     bool expected = false;
  122.     if (!UTParamUtil::GetBool(info[1], expected))
  123.     {
  124. DPRINTF(D_ERROR, ("HLXPtrArrayTest::HandleIsEmptyCmd : failed to convert parametern"));
  125.     }
  126.     else if ((m_array.IsEmpty() == TRUE) != expected)
  127.     {
  128. DPRINTF(D_ERROR, ("HLXPtrArrayTest::HandleIsEmptyCmd : got %d expected %dn",
  129.   m_array.IsEmpty(),
  130.   expected));
  131.     }
  132.     else
  133. ret = true;
  134.     return ret;
  135. }
  136. bool HLXPtrArrayTest::HandleGetSizeCmd(const UTVector<UTString>& info)
  137. {
  138.     bool ret = false;
  139.     
  140.     int expected = 0;
  141.     if (!UTParamUtil::GetInt(info[1], expected))
  142.     {
  143. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetSizeCmd() : failed parameter conversionn"));
  144.     }
  145.     else if (expected != m_array.GetSize())
  146.     {
  147. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetSizeCmd() : got %d expected %dn",
  148.    m_array.GetSize(),
  149.    expected));
  150.     }
  151.     else
  152. ret = true;
  153.     return ret;
  154. }
  155. bool HLXPtrArrayTest::HandleGetUpperBoundCmd(const UTVector<UTString>& info)
  156. {
  157.     bool ret = false;
  158.     int expected = 0;
  159.     if (!UTParamUtil::GetInt(info[1], expected))
  160.     {
  161. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetUpperBoundCmd() : failed parameter conversionn"));
  162.     }
  163.     else if (expected != m_array.GetUpperBound())
  164.     {
  165. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetUpperBoundCmd() : got %d expected%dn",
  166.    m_array.GetUpperBound(),
  167.    expected));
  168.     }
  169.     else
  170. ret = true;
  171.     return ret;
  172. }
  173. bool HLXPtrArrayTest::HandleSetSizeCmd(const UTVector<UTString>& info)
  174. {
  175.     bool ret = false;
  176.     
  177.     int newSize = 0;
  178.     int growSize = 0;
  179.     if (!UTParamUtil::GetInt(info[1], newSize) ||
  180. !UTParamUtil::GetInt(info[2], growSize))
  181.     {
  182. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleSetSizeCmd : failed to convert parametersn"));
  183.     }
  184.     else 
  185.     {
  186. m_array.SetSize(newSize, growSize);
  187. ret = true;
  188.     }
  189.     return ret;
  190. }
  191. bool HLXPtrArrayTest::HandleFreeExtraCmd(const UTVector<UTString>& /*info*/)
  192. {
  193.     m_array.FreeExtra();
  194.     return true;
  195. }
  196. bool HLXPtrArrayTest::HandleRemoveAllCmd(const UTVector<UTString>& /*info*/)
  197. {
  198.     m_array.RemoveAll();
  199.     return true;
  200. }
  201. bool HLXPtrArrayTest::HandleGetAtCmd(const UTVector<UTString>& info)
  202. {
  203.     bool ret = false;
  204.     int index = 0;
  205.     int expected = 0;
  206.     if (!UTParamUtil::GetInt(info[1], index) ||
  207. !UTParamUtil::GetInt(info[2], expected))
  208.     {
  209. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetAtCmd : failed to convert parametersn"));
  210.     }
  211.     else if (!m_array.GetAt(index))
  212.     {
  213. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetAtCmd : index %d does not contain a valuen", 
  214.    index));
  215.     }
  216.     else
  217.     {
  218. int result = *((int*)m_array.GetAt(index));
  219. if (result != expected)
  220. {
  221.     DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleGetAtCmd : got %d expected %dn",
  222.        result, 
  223.        expected));
  224. }
  225. else
  226.     ret = true;
  227.     }
  228.     return ret;
  229. }
  230. bool HLXPtrArrayTest::HandleSetAtCmd(const UTVector<UTString>& info)
  231. {
  232.     bool ret = false;
  233.     int index = 0;
  234.     int value = 0;
  235.     if (!UTParamUtil::GetInt(info[1], index) ||
  236. !UTParamUtil::GetInt(info[2], value))
  237.     {
  238. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleSetAtCmd : failed to convert parametersn"));
  239.     }
  240.     else 
  241.     {
  242. m_array.SetAt(index, new int(value));
  243. ret = true;
  244.     }
  245.     return ret;
  246. }
  247. bool HLXPtrArrayTest::HandleElementAtCmd(const UTVector<UTString>& info)
  248. {
  249.     bool ret = false;
  250.     int index = 0;
  251.     int expected = 0;
  252.     if (!UTParamUtil::GetInt(info[1], index) ||
  253. !UTParamUtil::GetInt(info[2], expected))
  254.     {
  255. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleElementAtCmd : failed to convert parametersn"));
  256.     }
  257.     else 
  258.     {
  259. int result = *((int*)m_array.ElementAt(index));
  260. if (result != expected)
  261. {
  262.     DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleElementAtCmd : got %d expected %dn",
  263.        result, 
  264.        expected));
  265. }
  266. else
  267.     ret = true;
  268.     }
  269.     return ret;
  270. }
  271. bool HLXPtrArrayTest::HandleSetAtGrowCmd(const UTVector<UTString>& info)
  272. {
  273.     bool ret = false;
  274.     int index = 0;
  275.     int value = 0;
  276.     if (!UTParamUtil::GetInt(info[1], index) ||
  277. !UTParamUtil::GetInt(info[2], value))
  278.     {
  279. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleSetAtGrowCmd : failed to convert parametersn"));
  280.     }
  281.     else 
  282.     {
  283. m_array.SetAtGrow(index, new int(value));
  284. ret = true;
  285.     }
  286.     return ret;
  287. }
  288. bool HLXPtrArrayTest::HandleAddCmd(const UTVector<UTString>& info)
  289. {
  290.     bool ret = false;
  291.     int value = 0;
  292.     if (!UTParamUtil::GetInt(info[1], value))
  293.     {
  294. DPRINTF(D_ERROR,("HLXPtrArrayTest::HandleAddCmd : failed parameter conversionn"));
  295.     }
  296.     else
  297.     {
  298. m_array.Add(new int(value));
  299. ret = true;
  300.     }
  301.     return ret;
  302. }
  303. bool HLXPtrArrayTest::HandleArrayOpCmd(const UTVector<UTString>& info)
  304. {
  305.     bool ret = false;
  306.     int index = 0;
  307.     int expected = 0;
  308.     if (!UTParamUtil::GetInt(info[1], index) ||
  309. !UTParamUtil::GetInt(info[2], expected))
  310.     {
  311. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleArrayOpCmd : failed to convert parametersn"));
  312.     }
  313.     else 
  314.     {
  315. int result = *((int*)m_array[index]);
  316. if (result != expected)
  317. {
  318.     DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleArrayOpCmd : got %d expected %dn",
  319.        result, 
  320.        expected));
  321. }
  322. else
  323.     ret = true;
  324.     }
  325.     return ret;
  326. }
  327. bool HLXPtrArrayTest::HandleInsertAtCmd(const UTVector<UTString>& info)
  328. {
  329.     bool ret = false;
  330.         
  331.     int index = 0;
  332.     int value = 0;
  333.     int count = 0;
  334.     if (!UTParamUtil::GetInt(info[1], index) ||
  335. !UTParamUtil::GetInt(info[2], value) ||
  336. !UTParamUtil::GetInt(info[3], count))
  337.     {
  338. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleInsertAtCmd : failed to convert parametersn"));
  339.     }
  340.     else 
  341.     {
  342. m_array.InsertAt(index, new int(value), count);
  343. ret = true;
  344.     }
  345.     return ret;
  346. }
  347. bool HLXPtrArrayTest::HandleRemoveAtCmd(const UTVector<UTString>& info)
  348. {
  349.     bool ret = false;
  350.     int index = 0;
  351.     int count = 0;
  352.     if (!UTParamUtil::GetInt(info[1], index) ||
  353. !UTParamUtil::GetInt(info[2], count))
  354.     {
  355. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleRemoveAtCmd : failed to convert parametersn"));
  356.     }
  357.     else 
  358.     {
  359. m_array.RemoveAt(index, count);
  360. ret = true;
  361.     }
  362.     return ret;
  363. }
  364. bool HLXPtrArrayTest::HandleInsertArrayAtCmd(const UTVector<UTString>& info)
  365. {
  366.     bool ret = false;
  367.     int index = 0;
  368.     CHXPtrArray array;
  369.     
  370.     if (!UTParamUtil::GetInt(info[1], index) ||
  371. !GetArray(info[2], array))
  372.     {
  373. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandlInsertArrayAtCmd : failed to convert parametersn"));
  374.     }
  375.     else
  376.     {
  377. m_array.InsertAt(index, &array);
  378. ret = true;
  379.     }
  380.     return ret;
  381. }
  382. bool HLXPtrArrayTest::HandleIsNullCmd(const UTVector<UTString>& info)
  383. {
  384.     bool ret = false;
  385.     
  386.     int index = 0;
  387.     bool expected = false;
  388.     if (!UTParamUtil::GetInt(info[1], index) ||
  389. !UTParamUtil::GetBool(info[2], expected))
  390.     {
  391. DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleIsNullCmd : failed to convert parametersn"));
  392.     }
  393.     else
  394.     {
  395. bool result = (m_array.GetAt(index) == 0);
  396. if (result != expected)
  397. {
  398.     DPRINTF (D_ERROR, ("HLXPtrArrayTest::HandleIsNullCmd : got %d expected %dn",
  399.        result,
  400.        expected));
  401. }
  402. else
  403.     ret = true;
  404.     }
  405.     return ret;
  406. }