DataPathTestFixture.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /*
  2. * Copyright (c) 2017 The Linux Foundation. All rights reserved.
  3. *
  4. * Redistribution and use in source and binary forms, with or without
  5. * modification, are permitted provided that the following conditions are
  6. * met:
  7. * * Redistributions of source code must retain the above copyright
  8. * notice, this list of conditions and the following disclaimer.
  9. * * Redistributions in binary form must reproduce the above
  10. * copyright notice, this list of conditions and the following
  11. * disclaimer in the documentation and/or other materials provided
  12. * with the distribution.
  13. * * Neither the name of The Linux Foundation nor the names of its
  14. * contributors may be used to endorse or promote products derived
  15. * from this software without specific prior written permission.
  16. *
  17. * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
  18. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  19. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
  20. * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
  21. * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  22. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  23. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
  24. * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  25. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  26. * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
  27. * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  28. */
  29. #include "DataPathTestFixture.h"
  30. Pipe DataPathTestFixture::m_FromIPAPipe(IPA_CLIENT_TEST_CONS,
  31. IPA_TEST_CONFIGURATION_18);
  32. Pipe DataPathTestFixture::m_ToIpaPipe(IPA_CLIENT_TEST_PROD,
  33. IPA_TEST_CONFIGURATION_18);
  34. Pipe DataPathTestFixture::m_IpaDriverPipe(IPA_CLIENT_TEST2_PROD,
  35. IPA_TEST_CONFIGURATION_18);
  36. RoutingDriverWrapper DataPathTestFixture::m_Routing;
  37. Filtering DataPathTestFixture::m_Filtering;
  38. HeaderInsertion DataPathTestFixture::m_HeaderInsertion;
  39. DataPathTestFixture::DataPathTestFixture()
  40. {
  41. m_testSuiteName.push_back("DataPath");
  42. Register(*this);
  43. }
  44. bool DataPathTestFixture::Setup()
  45. {
  46. bool bRetVal = true;
  47. /*Set the configuration to support USB->IPA and IPA->USB pipes.*/
  48. ConfigureScenario(IPA_TEST_CONFIGURATION_18);
  49. bRetVal &= m_ToIpaPipe.Init();
  50. bRetVal &= m_FromIPAPipe.Init();
  51. bRetVal &= m_IpaDriverPipe.Init();
  52. if (!m_Routing.DeviceNodeIsOpened()) {
  53. LOG_MSG_ERROR(
  54. "Routing block is not ready for immediate commands!\n");
  55. return false;
  56. }
  57. if (!m_Filtering.DeviceNodeIsOpened()) {
  58. LOG_MSG_ERROR(
  59. "Filtering block is not ready for immediate commands!\n");
  60. return false;
  61. }
  62. if (!m_HeaderInsertion.DeviceNodeIsOpened())
  63. {
  64. LOG_MSG_ERROR("Header Insertion block is not ready for immediate commands!\n");
  65. return false;
  66. }\
  67. /*resetting this component will reset both Routing and Filtering tables*/
  68. m_HeaderInsertion.Reset();
  69. return bRetVal;
  70. }
  71. bool DataPathTestFixture::Teardown()
  72. {
  73. /*The Destroy method will close the inode.*/
  74. m_FromIPAPipe.Destroy();
  75. m_ToIpaPipe.Destroy();
  76. m_IpaDriverPipe.Destroy();
  77. return true;
  78. }
  79. bool DataPathTestFixture::Run()
  80. {
  81. LOG_MSG_DEBUG("Entering Function");
  82. if (!TestLogic()) {
  83. LOG_MSG_ERROR(
  84. "Test failed, Input and expected output mismatch.");
  85. return false;
  86. }
  87. LOG_MSG_DEBUG("Leaving Function (Returning True)");
  88. return true;
  89. }