dex_file_test.cc revision f615a61aef972cfc1dc23931ac2ed0da14c3fedb
11fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro// Copyright 2011 Google Inc. All Rights Reserved. 21fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro 3578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom#include "common_test.h" 4578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom#include "dex_file.h" 5578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom#include "scoped_ptr.h" 61fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro 71fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro#include <stdio.h> 81fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro#include "gtest/gtest.h" 91fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro 101fb8620309a4e94d11879aabc33364acfa733904Carl Shapironamespace art { 111fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro 12f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian CarlstromTEST(DexFileTest, Open) { 13f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom scoped_ptr<DexFile> dex(OpenDexFileBase64(kNestedDex)); 14f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom ASSERT_TRUE(dex != NULL); 157e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom} 167e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom 17f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian CarlstromTEST(DexFileTest, Header) { 18f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom scoped_ptr<DexFile> raw(OpenDexFileBase64(kNestedDex)); 197e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom ASSERT_TRUE(raw != NULL); 207e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom 21f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom const DexFile::Header& header = raw->GetHeader(); 227e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom // TODO: header.magic_ 237e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(0x00d87910U, header.checksum_); 247e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom // TODO: header.signature_ 257e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(904U, header.file_size_); 267e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(112U, header.header_size_); 277e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(0U, header.link_size_); 287e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(0U, header.link_off_); 297e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(15U, header.string_ids_size_); 307e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(112U, header.string_ids_off_); 317e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(7U, header.type_ids_size_); 327e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(172U, header.type_ids_off_); 337e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(2U, header.proto_ids_size_); 347e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(200U, header.proto_ids_off_); 357e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(1U, header.field_ids_size_); 367e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(224U, header.field_ids_off_); 377e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(3U, header.method_ids_size_); 387e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(232U, header.method_ids_off_); 397e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(2U, header.class_defs_size_); 407e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(256U, header.class_defs_off_); 417e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(584U, header.data_size_); 427e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(320U, header.data_off_); 437e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom} 447e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom 45f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian CarlstromTEST(DexFileTest, ClassDefs) { 46f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom scoped_ptr<DexFile> raw(OpenDexFileBase64(kNestedDex)); 477e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom ASSERT_TRUE(raw != NULL); 487e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_EQ(2U, raw->NumClassDefs()); 49578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom 50f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom const DexFile::ClassDef& c0 = raw->GetClassDef(0); 517e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_STREQ("LNested$Inner;", raw->GetClassDescriptor(c0)); 52578bbdc684db8ed68e9fedbc678669d27fa68b6eBrian Carlstrom 53f615a61aef972cfc1dc23931ac2ed0da14c3fedbBrian Carlstrom const DexFile::ClassDef& c1 = raw->GetClassDef(1); 547e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom EXPECT_STREQ("LNested;", raw->GetClassDescriptor(c1)); 551fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro} 561fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro 571fb8620309a4e94d11879aabc33364acfa733904Carl Shapiro} // namespace art 58