Implement OEMCrypto_GetNumberOfOpenSessions
Merged from Widevine CDM repo: https://widevine-internal-review.googlesource.com/#/c/13560/ Change-Id: Ie19bf3e57d0c4b1621b95bd5912a751ccfbaaa7b
This commit is contained in:
@@ -1740,22 +1740,30 @@ TEST_F(OEMCryptoClientTest, TwoSessionsOpenClose) {
|
||||
}
|
||||
|
||||
TEST_F(OEMCryptoClientTest, MaxSessionsOpenClose) {
|
||||
size_t sessions_count;
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS,
|
||||
OEMCrypto_GetNumberOfOpenSessions(&sessions_count));
|
||||
ASSERT_EQ(0, sessions_count);
|
||||
size_t max_sessions;
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_GetMaxNumberOfSessions(&max_sessions));
|
||||
ASSERT_GT(max_sessions, 0);
|
||||
vector<Session> s(max_sessions);
|
||||
for (int i = 0; i < s.size(); i++) {
|
||||
s[i].open();
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, s[i].getStatus());
|
||||
ASSERT_TRUE(s[i].isOpen());
|
||||
|
||||
vector<OEMCrypto_SESSION> sessions;
|
||||
for (int i = 0; i < max_sessions; i++) {
|
||||
OEMCrypto_SESSION session_id;
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_OpenSession(&session_id));
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS,
|
||||
OEMCrypto_GetNumberOfOpenSessions(&sessions_count));
|
||||
ASSERT_EQ(i + 1, sessions_count);
|
||||
sessions.push_back(session_id);
|
||||
}
|
||||
for (int i = 0; i < s.size(); i++) {
|
||||
s[i].close();
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, s[i].getStatus());
|
||||
ASSERT_FALSE(s[i].isOpen());
|
||||
for (int i = 0; i < sessions.size(); i++) {
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS, OEMCrypto_CloseSession(sessions[i]));
|
||||
ASSERT_EQ(OEMCrypto_SUCCESS,
|
||||
OEMCrypto_GetNumberOfOpenSessions(&sessions_count));
|
||||
ASSERT_EQ(sessions.size() - i - 1, sessions_count);
|
||||
}
|
||||
}
|
||||
// TODO(kqyang): Add more tests exercising multiple sessions.
|
||||
|
||||
TEST_F(OEMCryptoClientTest, GenerateNonce) {
|
||||
Session s;
|
||||
|
||||
Reference in New Issue
Block a user