This CL is a merge from the widevine repo of: http://go/wvgerrit/16491 Circular Buffer http://go/wvgerrit/16512 Circular Buffer Tests http://go/wvgerrit/16493 Entry Writer http://go/wvgerrit/16495 Profiled Scope http://go/wvgerrit/16500 Stats Collection http://go/wvgerrit/16543 Disallow Stats Copy or Assign http://go/wvgerrit/16514 Moving OEM Function Enum http://go/wvgerrit/16501 Defining Session Interface http://go/wvgerrit/16502 Session Definitions http://go/wvgerrit/16573 Remove code to num bytes table http://go/wvgerrit/16556 Connecting Profiler to Profiled Scope http://go/wvgerrit/16557 Android Reading Profiler History http://go/wvgerrit/16574 Adding Get Stats Method http://go/wvgerrit/16606 Seperating Session Parsing http://go/wvgerrit/16607 Adding get stats method to DRMPlugin http://go/wvgerrit/16608 Fixing Linux Build Failure http://go/wvgerrit/16612 Stop Clearing History http://go/wvgerrit/16613 Accessing profiler information using session id http://go/wvgerrit/16614 Making All Session Subsets of Global Session BUG: 25123303 BUG: 26027857 Change-Id: Ie2422e644aa631871852ea0e461695aeb7060f88
169 lines
4.5 KiB
C++
169 lines
4.5 KiB
C++
// Copyright 2015 Google Inc. All Rights Reserved.
|
|
|
|
#include <gtest/gtest.h>
|
|
#include <stdint.h>
|
|
|
|
#include "entry_writer.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
TEST(EntryWriterTest, ConstructorTest) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_TRUE(writer.GetData() != nullptr);
|
|
ASSERT_EQ(0u, writer.GetSize());
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteU8Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(1, writer.WriteU8(0x01));
|
|
ASSERT_EQ(0x01u, writer.GetData()[0]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteU16Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(2, writer.WriteU16(0x0102));
|
|
ASSERT_EQ(0x01u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteU32Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(4, writer.WriteU32(0x01020304));
|
|
ASSERT_EQ(0x01u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteU64Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(8, writer.WriteU64(0x0102030405060708));
|
|
ASSERT_EQ(0x01u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
ASSERT_EQ(0x05u, writer.GetData()[4]);
|
|
ASSERT_EQ(0x06u, writer.GetData()[5]);
|
|
ASSERT_EQ(0x07u, writer.GetData()[6]);
|
|
ASSERT_EQ(0x08u, writer.GetData()[7]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs8Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(1, writer.WriteVLV(0x01));
|
|
ASSERT_EQ(0x01u, writer.GetData()[0]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs16Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(2, writer.WriteVLV(0x0102));
|
|
ASSERT_EQ(0x01u | 0x20u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs24Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(3, writer.WriteVLV(0x010203));
|
|
ASSERT_EQ(0x01u | 0x40u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs32Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(4, writer.WriteVLV(0x01020304));
|
|
ASSERT_EQ(0x01u | 0x60u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs40Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(5, writer.WriteVLV(0x0102030405));
|
|
ASSERT_EQ(0x01u | 0x80u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
ASSERT_EQ(0x05u, writer.GetData()[4]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs48Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(6, writer.WriteVLV(0x010203040506));
|
|
ASSERT_EQ(0x01u | 0xA0u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
ASSERT_EQ(0x05u, writer.GetData()[4]);
|
|
ASSERT_EQ(0x06u, writer.GetData()[5]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs56Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(7, writer.WriteVLV(0x01020304050607));
|
|
ASSERT_EQ(0x01u | 0xC0u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
ASSERT_EQ(0x05u, writer.GetData()[4]);
|
|
ASSERT_EQ(0x06u, writer.GetData()[5]);
|
|
ASSERT_EQ(0x07u, writer.GetData()[6]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, WriteVLVAs64Test) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(8, writer.WriteVLV(0x0102030405060708));
|
|
ASSERT_EQ(0x01u | 0xE0u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
ASSERT_EQ(0x05u, writer.GetData()[4]);
|
|
ASSERT_EQ(0x06u, writer.GetData()[5]);
|
|
ASSERT_EQ(0x07u, writer.GetData()[6]);
|
|
ASSERT_EQ(0x08u, writer.GetData()[7]);
|
|
}
|
|
|
|
TEST(EntryWriterTest, ClearTest) {
|
|
oemprofiler::EntryWriter writer;
|
|
|
|
ASSERT_EQ(0u, writer.GetSize());
|
|
|
|
ASSERT_EQ(1, writer.WriteU8(0x01));
|
|
ASSERT_EQ(1u, writer.GetSize());
|
|
|
|
ASSERT_EQ(1, writer.WriteU8(0x02));
|
|
ASSERT_EQ(2u, writer.GetSize());
|
|
|
|
ASSERT_EQ(1, writer.WriteU8(0x03));
|
|
ASSERT_EQ(3u, writer.GetSize());
|
|
|
|
ASSERT_EQ(1, writer.WriteU8(0x04));
|
|
ASSERT_EQ(4u, writer.GetSize());
|
|
|
|
writer.Clear();
|
|
|
|
ASSERT_EQ(0u, writer.GetSize());
|
|
|
|
//Clear should not clear the data form the buffer
|
|
ASSERT_EQ(0x01u, writer.GetData()[0]);
|
|
ASSERT_EQ(0x02u, writer.GetData()[1]);
|
|
ASSERT_EQ(0x03u, writer.GetData()[2]);
|
|
ASSERT_EQ(0x04u, writer.GetData()[3]);
|
|
}
|
|
|
|
} // namespace
|