blob: b6a7e775f0035537d58c7a50ff769ca5448a093a [file] [log] [blame]
Carl Shapiro1fb86202011-06-27 17:43:13 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
Brian Carlstrom578bbdc2011-07-21 14:07:47 -07003#include "common_test.h"
4#include "dex_file.h"
Brian Carlstrom578bbdc2011-07-21 14:07:47 -07005#include "scoped_ptr.h"
Carl Shapiro1fb86202011-06-27 17:43:13 -07006
7#include <stdio.h>
8#include "gtest/gtest.h"
9
10namespace art {
11
Brian Carlstrom7e49dca2011-07-22 18:07:34 -070012TEST(RawDexFileTest, Open) {
13 scoped_ptr<RawDexFile> raw(OpenRawDexFileBase64(kNestedDex));
14 ASSERT_TRUE(raw != NULL);
15}
Brian Carlstrom578bbdc2011-07-21 14:07:47 -070016
Brian Carlstrom7e49dca2011-07-22 18:07:34 -070017TEST(RawDexFileTest, Header) {
18 scoped_ptr<RawDexFile> raw(OpenRawDexFileBase64(kNestedDex));
19 ASSERT_TRUE(raw != NULL);
Brian Carlstrom578bbdc2011-07-21 14:07:47 -070020
Brian Carlstrom7e49dca2011-07-22 18:07:34 -070021 const RawDexFile::Header& header = raw->GetHeader();
22 // TODO: header.magic_
23 EXPECT_EQ(0x00d87910U, header.checksum_);
24 // TODO: header.signature_
25 EXPECT_EQ(904U, header.file_size_);
26 EXPECT_EQ(112U, header.header_size_);
27 EXPECT_EQ(0U, header.link_size_);
28 EXPECT_EQ(0U, header.link_off_);
29 EXPECT_EQ(15U, header.string_ids_size_);
30 EXPECT_EQ(112U, header.string_ids_off_);
31 EXPECT_EQ(7U, header.type_ids_size_);
32 EXPECT_EQ(172U, header.type_ids_off_);
33 EXPECT_EQ(2U, header.proto_ids_size_);
34 EXPECT_EQ(200U, header.proto_ids_off_);
35 EXPECT_EQ(1U, header.field_ids_size_);
36 EXPECT_EQ(224U, header.field_ids_off_);
37 EXPECT_EQ(3U, header.method_ids_size_);
38 EXPECT_EQ(232U, header.method_ids_off_);
39 EXPECT_EQ(2U, header.class_defs_size_);
40 EXPECT_EQ(256U, header.class_defs_off_);
41 EXPECT_EQ(584U, header.data_size_);
42 EXPECT_EQ(320U, header.data_off_);
43}
44
45TEST(RawDexFileTest, ClassDefs) {
46 scoped_ptr<RawDexFile> raw(OpenRawDexFileBase64(kNestedDex));
47 ASSERT_TRUE(raw != NULL);
48 EXPECT_EQ(2U, raw->NumClassDefs());
49
50 const RawDexFile::ClassDef& c0 = raw->GetClassDef(0);
51 EXPECT_STREQ("LNested$Inner;", raw->GetClassDescriptor(c0));
52
53 const RawDexFile::ClassDef& c1 = raw->GetClassDef(1);
54 EXPECT_STREQ("LNested;", raw->GetClassDescriptor(c1));
Carl Shapiro1fb86202011-06-27 17:43:13 -070055}
56
Carl Shapiro1fb86202011-06-27 17:43:13 -070057} // namespace art