Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 

294 wiersze
7.7 KiB

  1. #include "AutomatedTestReport.h"
  2. #include "GlobalDefine.h"
  3. CAutomatedTestReport::CAutomatedTestReport(QObject *parent) :
  4. QObject(parent)
  5. {
  6. }
  7. int CAutomatedTestReport::ClearAutomatedTestReport()
  8. {
  9. mTestPinsResult.clear();
  10. mPinCount = 0;
  11. mPreTestResult = AUTO_TEST_RESULT_UNKNOWN;
  12. return RET_OK;
  13. }
  14. int CAutomatedTestReport::SetPinCount(int Pincount)
  15. {
  16. mPinCount = Pincount;
  17. mTestPinsResult.clear();
  18. for(int i = 0; i < Pincount; i++)
  19. {
  20. mTestPinsResult.append(CPinTestResult(i+1));
  21. }
  22. return RET_OK;
  23. }
  24. int CAutomatedTestReport::SetPinResult(int PinNumber, bool ContinuityPassed, bool IsolationPassed)
  25. {
  26. int ZeroBasedPinIndex = PinNumber - 1;
  27. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  28. {
  29. return RET_ERROR;
  30. }
  31. mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass = IsolationPassed;
  32. mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass = ContinuityPassed;
  33. return RET_OK;
  34. }
  35. int CAutomatedTestReport::SetPinTestAllPassed(int PinNumber)
  36. {
  37. int ZeroBasedPinIndex = PinNumber - 1;
  38. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  39. {
  40. return RET_ERROR;
  41. }
  42. mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass = true;
  43. mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass = true;
  44. mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass = true;
  45. return RET_OK;
  46. }
  47. int CAutomatedTestReport::SetPinContinuityResult(int PinNumber,bool ContinuityPassed)
  48. {
  49. int ZeroBasedPinIndex = PinNumber - 1;
  50. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  51. {
  52. return RET_ERROR;
  53. }
  54. mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass = ContinuityPassed;
  55. return RET_OK;
  56. }
  57. int CAutomatedTestReport::SetPinIsolationResult(int PinNumber, bool IsolationPassed)
  58. {
  59. int ZeroBasedPinIndex = PinNumber - 1;
  60. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  61. {
  62. return RET_ERROR;
  63. }
  64. mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass = IsolationPassed;
  65. return RET_OK;
  66. }
  67. int CAutomatedTestReport::SetPinConcordanceTestResult(int PinNumber, bool AssignationTestPassed, int WrongPinNbr)
  68. {
  69. int ZeroBasedPinIndex = PinNumber - 1;
  70. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  71. {
  72. return RET_ERROR;
  73. }
  74. mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass = AssignationTestPassed;
  75. if(AssignationTestPassed == false)
  76. {
  77. mTestPinsResult[ZeroBasedPinIndex].mWrongAssignationPinNbr = WrongPinNbr;
  78. }
  79. return RET_OK;
  80. }
  81. int CAutomatedTestReport::SetPinSecondTestResult(int PinNumber, bool SecondTestPassed)
  82. {
  83. int ZeroBasedPinIndex = PinNumber - 1;
  84. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  85. {
  86. return RET_ERROR;
  87. }
  88. mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass = SecondTestPassed;
  89. return RET_OK;
  90. }
  91. int CAutomatedTestReport::AddShortedPinToPinTest(int PinNumber, int ShortedPinNumber)
  92. {
  93. int ZeroBasedPinIndex = PinNumber - 1;
  94. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  95. {
  96. return RET_ERROR;
  97. }
  98. mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.append(ShortedPinNumber);
  99. return RET_OK;
  100. }
  101. int CAutomatedTestReport::SetPreTestResult(bool PreTestPassed)
  102. {
  103. mPreTestResult = PreTestPassed;
  104. return RET_OK;
  105. }
  106. CPinTestResult::CPinTestResult(int PinNumber)
  107. {
  108. mPinNumber = PinNumber;
  109. mContinuityTestPass = AUTO_TEST_RESULT_UNKNOWN;
  110. mIsolationTestPass = AUTO_TEST_RESULT_UNKNOWN;
  111. mPinAssignationTestPass = AUTO_TEST_RESULT_UNKNOWN;
  112. mSecondTestPass = AUTO_TEST_RESULT_UNKNOWN;
  113. mShortedPinsList.clear();
  114. mWrongAssignationPinNbr = 0;
  115. }
  116. CPinTestResult::~CPinTestResult()
  117. {
  118. mShortedPinsList.clear();
  119. }
  120. bool CPinTestResult::IsPinTestSuccess()
  121. {
  122. if(mPinNumber > 0 &&
  123. mContinuityTestPass == AUTO_TEST_SUCCESS &&
  124. mIsolationTestPass == AUTO_TEST_SUCCESS &&
  125. mPinAssignationTestPass == AUTO_TEST_SUCCESS &&
  126. mSecondTestPass != AUTO_TEST_FAILED)
  127. {
  128. return true;
  129. }
  130. return false;
  131. }
  132. QString CAutomatedTestReport::GetPinIsolationResult(int PinNumber)
  133. {
  134. int ZeroBasedPinIndex = PinNumber - 1;
  135. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  136. {
  137. return QString("?");
  138. }
  139. if(mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass == AUTO_TEST_RESULT_UNKNOWN)
  140. {
  141. return QString("N/A");
  142. }
  143. else if(mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass == AUTO_TEST_SUCCESS)
  144. {
  145. return QString("Succès");
  146. }
  147. else if(mTestPinsResult[ZeroBasedPinIndex].mIsolationTestPass == AUTO_TEST_FAILED)
  148. {
  149. QString Result("Échec[");
  150. for(int i = 0; i < mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.size(); i++)
  151. {
  152. Result.append(QString("%1").arg(mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.at(i)));
  153. if(i != mTestPinsResult[ZeroBasedPinIndex].mShortedPinsList.size() - 1)
  154. {
  155. Result.append(",");
  156. }
  157. }
  158. Result.append("]");
  159. return Result;
  160. }
  161. return QString("?");
  162. }
  163. QString CAutomatedTestReport::GetPinContinuityResult(int PinNumber)
  164. {
  165. int ZeroBasedPinIndex = PinNumber - 1;
  166. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  167. {
  168. return QString("?");
  169. }
  170. if(mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass == AUTO_TEST_RESULT_UNKNOWN)
  171. {
  172. return QString("N/A");
  173. }
  174. else if(mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass == AUTO_TEST_SUCCESS)
  175. {
  176. return QString("Succès");
  177. }
  178. else if(mTestPinsResult[ZeroBasedPinIndex].mContinuityTestPass == AUTO_TEST_FAILED)
  179. {
  180. return QString("Échec");
  181. }
  182. return QString("?");
  183. }
  184. QString CAutomatedTestReport::GetPinConcordanceResult(int PinNumber)
  185. {
  186. int ZeroBasedPinIndex = PinNumber - 1;
  187. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  188. {
  189. return QString("?");
  190. }
  191. if(mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass == AUTO_TEST_RESULT_UNKNOWN)
  192. {
  193. return QString("N/A");
  194. }
  195. else if(mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass == AUTO_TEST_SUCCESS)
  196. {
  197. return QString("Succès");
  198. }
  199. else if(mTestPinsResult[ZeroBasedPinIndex].mPinAssignationTestPass == AUTO_TEST_FAILED)
  200. {
  201. return QString("Échec[%1]").arg(mTestPinsResult[ZeroBasedPinIndex].mWrongAssignationPinNbr);
  202. }
  203. return QString("?");
  204. }
  205. QString CAutomatedTestReport::GetPinSecondTestResult(int PinNumber)
  206. {
  207. int ZeroBasedPinIndex = PinNumber - 1;
  208. if(ZeroBasedPinIndex < 0 || ZeroBasedPinIndex >= mPinCount) //Try not to crash.
  209. {
  210. return QString("?");
  211. }
  212. if(mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass == AUTO_TEST_RESULT_UNKNOWN)
  213. {
  214. return QString("N/A");
  215. }
  216. else if(mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass == AUTO_TEST_SUCCESS)
  217. {
  218. return QString("Succès");
  219. }
  220. else if(mTestPinsResult[ZeroBasedPinIndex].mSecondTestPass == AUTO_TEST_FAILED)
  221. {
  222. return QString("Échec");
  223. }
  224. return QString("?");
  225. }
  226. bool CAutomatedTestReport::IsAutomatedTestSuccess()
  227. {
  228. if(mPinCount == 0)
  229. {
  230. return false;
  231. }
  232. for(int i = 0; i < mTestPinsResult.size(); i++)
  233. {
  234. if(mTestPinsResult[i].IsPinTestSuccess() == false)
  235. {
  236. return false;
  237. }
  238. }
  239. return true;
  240. }
  241. QString CAutomatedTestReport::GetPretestResult()
  242. {
  243. if(mPreTestResult)
  244. {
  245. return "Succès";
  246. }
  247. return "Échec";
  248. }