Files
android/libwvdrmengine/cdm/profiler/test/entry_writer_test.cpp
Aaron Vaage a249c67504 OEMCrypto Profiler
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
2016-01-27 10:14:46 -08:00

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