TC_uassert.c 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*
  2. * Copyright (c) 2006-2025, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #include <rtthread.h>
  7. #include "utest.h"
  8. static void TC_uassert_true_false(void)
  9. {
  10. uassert_true(1);
  11. uassert_false(0);
  12. }
  13. static void TC_uassert_null_not_null(void)
  14. {
  15. int *ptr = RT_NULL;
  16. int value = 10;
  17. int *ptr2 = &value;
  18. uassert_null(ptr);
  19. uassert_not_null(ptr2);
  20. }
  21. static void TC_uassert_int_op(void)
  22. {
  23. int a = 5;
  24. int b = 10;
  25. uassert_int_equal(a, a);
  26. uassert_int_not_equal(a, b);
  27. uassert_value_less(a, b);
  28. uassert_value_less_equal(a, b);
  29. uassert_value_less_equal(a, a);
  30. uassert_value_greater(b, a);
  31. uassert_value_greater_equal(b, a);
  32. uassert_value_greater_equal(b, b);
  33. }
  34. static void TC_uassert_float_op(void)
  35. {
  36. float a = 5.0;
  37. float b = 5.0;
  38. uassert_float_equal(a, b);
  39. uassert_float_not_equal(a, b + 0.0002);
  40. }
  41. static void TC_uassert_ptr_op(void)
  42. {
  43. int a = 5;
  44. int b = 10;
  45. int *ptr_a = &a;
  46. int *ptr_b = &b;
  47. uassert_ptr_equal(ptr_a, ptr_a);
  48. uassert_ptr_not_equal(ptr_a, ptr_b);
  49. }
  50. static void TC_uassert_str_op(void)
  51. {
  52. const char *str1 = "Hello";
  53. const char *str2 = "Hello";
  54. const char *str3 = "World";
  55. uassert_str_equal(str1, str2);
  56. uassert_str_not_equal(str1, str3);
  57. }
  58. static void TC_uassert_in_range(void)
  59. {
  60. int value = 5;
  61. uassert_in_range(value, 1, 10);
  62. uassert_not_in_range(value, 10, 20);
  63. }
  64. static void utest_do_tc(void)
  65. {
  66. UTEST_UNIT_RUN(TC_uassert_true_false);
  67. UTEST_UNIT_RUN(TC_uassert_null_not_null);
  68. UTEST_UNIT_RUN(TC_uassert_int_op);
  69. UTEST_UNIT_RUN(TC_uassert_float_op);
  70. UTEST_UNIT_RUN(TC_uassert_ptr_op);
  71. UTEST_UNIT_RUN(TC_uassert_str_op);
  72. UTEST_UNIT_RUN(TC_uassert_in_range);
  73. }
  74. UTEST_TC_EXPORT(utest_do_tc, "components.utilities.utest.uassert", RT_NULL, RT_NULL, 10);