nice_ut.cpp 988 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #include "nice.h"
  2. #include "platform.h"
  3. #include <library/cpp/testing/unittest/registar.h>
  4. #ifdef _unix_
  5. #include <sys/resource.h>
  6. static int GetPriority() {
  7. return getpriority(PRIO_PROCESS, 0);
  8. }
  9. #endif
  10. Y_UNIT_TEST_SUITE(NiceTest) {
  11. Y_UNIT_TEST(TestNiceZero) {
  12. UNIT_ASSERT(Nice(0));
  13. UNIT_ASSERT(Nice(0));
  14. }
  15. #ifdef _unix_
  16. Y_UNIT_TEST(TestNice) {
  17. int prio = GetPriority();
  18. if (prio >= 10) {
  19. return;
  20. }
  21. if (Nice(-2)) {
  22. UNIT_ASSERT_VALUES_EQUAL(GetPriority(), prio - 2);
  23. prio -= 2;
  24. } else {
  25. UNIT_ASSERT_VALUES_EQUAL(GetPriority(), prio);
  26. }
  27. UNIT_ASSERT(Nice(1));
  28. UNIT_ASSERT_VALUES_EQUAL(GetPriority(), prio + 1);
  29. UNIT_ASSERT(Nice(0));
  30. UNIT_ASSERT_VALUES_EQUAL(GetPriority(), prio + 1);
  31. UNIT_ASSERT(Nice(2));
  32. UNIT_ASSERT_VALUES_EQUAL(GetPriority(), prio + 3);
  33. }
  34. #endif
  35. } // Y_UNIT_TEST_SUITE(NiceTest)