tc_auto.cpp 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. /*
  2. * Copyright (c) 2006-2025, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2025-09-19 Rbb666 the first version
  9. */
  10. #include <rtthread.h>
  11. #include "utest.h"
  12. #include <vector>
  13. /**
  14. * @brief Test auto keyword.
  15. */
  16. static void test_auto(void)
  17. {
  18. auto x = 42;
  19. auto y = 3.14;
  20. if (x != 42 || y != 3.14)
  21. {
  22. uassert_false(true);
  23. }
  24. uassert_true(true);
  25. }
  26. /**
  27. * @brief Test range-based for loop.
  28. */
  29. static void test_range_for(void)
  30. {
  31. std::vector<int> v = {1, 2, 3, 4, 5};
  32. int sum = 0;
  33. for (auto i : v)
  34. {
  35. sum += i;
  36. }
  37. if (sum != 15)
  38. {
  39. uassert_false(true);
  40. }
  41. uassert_true(true);
  42. }
  43. static rt_err_t utest_tc_init(void)
  44. {
  45. return RT_EOK;
  46. }
  47. static rt_err_t utest_tc_cleanup(void)
  48. {
  49. return RT_EOK;
  50. }
  51. static void testcase(void)
  52. {
  53. /* Test auto keyword */
  54. UTEST_UNIT_RUN(test_auto);
  55. /* Test range-based for loop */
  56. UTEST_UNIT_RUN(test_range_for);
  57. }
  58. UTEST_TC_EXPORT(testcase, "components.libc.cpp.auto_tc", utest_tc_init, utest_tc_cleanup, 10);