1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/*
2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *
4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  Use of this source code is governed by a BSD-style license
5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  that can be found in the LICENSE file in the root of the source
6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  tree. An additional intellectual property rights grant can be found
7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  in the file PATENTS.  All contributing project authors may
8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org *  be found in the AUTHORS file in the root of the source tree.
9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */
10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
1169e3fb96715bd0b45c1561010fe8eda162ade1adphoglund@webrtc.org#include "webrtc/system_wrappers/source/thread_posix.h"
12b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
13c6d6fed3c0a82bb7a09095381b974e8e5eebcb35pbos@webrtc.org#include "testing/gtest/include/gtest/gtest.h"
14b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgTEST(ThreadTestPosix, PrioritySettings) {
1669e3fb96715bd0b45c1561010fe8eda162ade1adphoglund@webrtc.org  // API assumes that max_prio - min_prio > 2. Test the extreme case.
17b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org  const int kMinPrio = -1;
18b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org  const int kMaxPrio = 2;
19b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org
20b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org  int last_priority = kMinPrio;
21b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org  for (int priority = webrtc::kLowPriority;
22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org       priority <= webrtc::kRealtimePriority; ++priority) {
23b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    int system_priority = webrtc::ConvertToSystemPriority(
24b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org        static_cast<webrtc::ThreadPriority>(priority), kMinPrio, kMaxPrio);
25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    EXPECT_GT(system_priority, kMinPrio);
26b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    EXPECT_LT(system_priority, kMaxPrio);
27b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    EXPECT_GE(system_priority, last_priority);
28b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org    last_priority = system_priority;
29b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org  }
30b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org}
31