limit_reached_SUITE.erl 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. -module(limit_reached_SUITE).
  2. -include_lib("common_test/include/ct.hrl").
  3. -include_lib("eunit/include/eunit.hrl").
  4. %%-compile([export_all, nowarn_export_all]).
  5. -export([
  6. all/0, groups/0,
  7. init_per_suite/1, end_per_suite/1,
  8. init_per_group/2, end_per_group/2,
  9. init_per_testcase/2, end_per_testcase/2,
  10. limit_reached1_test/1,
  11. limit_reached2_test/1,
  12. limit_reached3_test/1,
  13. limit_reached4_test/1,
  14. limit_reached5_test/1
  15. ]).
  16. all() ->
  17. [
  18. {group, test_group1}
  19. %% перелік груп тестів або ж перелік окремих тестів
  20. %%limit_reached1_test,
  21. %%limit_reached2_test
  22. ].
  23. groups() ->
  24. [
  25. {
  26. test_group1,
  27. [sequence], %% виконувати тести послідовно
  28. [
  29. limit_reached1_test,
  30. limit_reached2_test,
  31. limit_reached3_test,
  32. limit_reached4_test,
  33. limit_reached5_test
  34. ]
  35. }
  36. ].
  37. %% виконується перед запуском переліку тестів
  38. init_per_suite(Config) ->
  39. {ok, _} = application:ensure_all_started(token_bucket),
  40. Config.
  41. %% виконується після завершення всіх тестів
  42. end_per_suite(Config) ->
  43. Config.
  44. %% виконується перед запуском групи тестів
  45. init_per_group(_GroupName, Config) ->
  46. Config.
  47. %% виконується після завершення групи тестів
  48. end_per_group(_GroupName, _Config) ->
  49. ok.
  50. %% виконується перед запуском кожного тесту
  51. init_per_testcase(_TestCase, Config) ->
  52. Config.
  53. %% виконується після кожного тесту
  54. end_per_testcase(_TestCase, Config) ->
  55. Config.
  56. limit_reached1_test(_Config) ->
  57. ?assertEqual(false, token_bucket:is_limit_reached(123) ),
  58. ct:pal("limit_reached1_test/1 : [OK]"),
  59. ok.
  60. %%Config.
  61. %%{save_config, Config}.
  62. limit_reached2_test(_Config) ->
  63. timer:sleep(1001), %% wait 1 sec
  64. R = [token_bucket:is_limit_reached(123) || _ <- lists:seq(1,5)],
  65. ?assertEqual([false,false,false,true,true], R),
  66. ct:pal("limit_reached2_test/1 : [OK]"),
  67. ok.
  68. limit_reached3_test(_Config) ->
  69. timer:sleep(1001), %% wait 1 sec
  70. R = [token_bucket:is_limit_reached(123, 4) || _ <- lists:seq(1,5)],
  71. ?assertEqual([false,false,false,false,true], R),
  72. ct:pal("limit_reached3_test/1 : [OK]"),
  73. ok.
  74. limit_reached4_test(_Config) ->
  75. timer:sleep(1001), %% wait 1 sec
  76. R = [token_bucket:is_limit_reached(123, infinity) || _ <- lists:seq(1,5)],
  77. ?assertEqual([false,false,false,false,false], R),
  78. ct:pal("limit_reached4_test/1 : [OK]"),
  79. ok.
  80. limit_reached5_test(_Config) ->
  81. timer:sleep(1001), %% wait 1 sec
  82. R = [token_bucket:is_limit_reached(123) || _ <- lists:seq(1,5)],
  83. ?assertEqual([false,false,false,true,true], R),
  84. R2 = [token_bucket:is_limit_reached(123, 4) || _ <- lists:seq(1,5)],
  85. ?assertEqual([false,true,true,true,true], R2),
  86. R3 = [token_bucket:is_limit_reached(777, 4) || _ <- lists:seq(1,5)],
  87. ?assertEqual([false,false,false,false,true], R3),
  88. timer:sleep(1001), %% wait 1 sec
  89. ?assertEqual(false, token_bucket:is_limit_reached(123) ),
  90. ct:pal("limit_reached5_test/1 : [OK]"),
  91. ok.