blob: 843466d02064251aa72850ca44e6cf58ad8a178c [file] [log] [blame]
Brian Carlstrom7e49dca2011-07-22 18:07:34 -07001// Copyright 2011 Google Inc. All Rights Reserved.
2
3#include "class_linker.h"
4#include "common_test.h"
5#include "dex_cache.h"
6#include "heap.h"
7#include "object.h"
Brian Carlstrom7e49dca2011-07-22 18:07:34 -07008
9#include <stdio.h>
10#include "gtest/gtest.h"
11
12namespace art {
13
Brian Carlstromf734cf52011-08-17 16:28:14 -070014class DexCacheTest : public CommonTest {};
Brian Carlstrom7e49dca2011-07-22 18:07:34 -070015
16TEST_F(DexCacheTest, Open) {
17
Brian Carlstrom9ea1cb12011-08-24 23:18:18 -070018 DexCache* dex_cache = class_linker_->AllocDexCache(*java_lang_dex_file_.get());
Brian Carlstrom7e49dca2011-07-22 18:07:34 -070019 ASSERT_TRUE(dex_cache != NULL);
Brian Carlstromc4fa2c02011-08-21 03:00:12 -070020
Brian Carlstroma663ea52011-08-19 23:33:41 -070021 EXPECT_EQ(java_lang_dex_file_->NumStringIds(), dex_cache->NumStrings());
Brian Carlstrom1caa2c22011-08-28 13:02:33 -070022 EXPECT_EQ(java_lang_dex_file_->NumTypeIds(), dex_cache->NumResolvedTypes());
23 EXPECT_EQ(java_lang_dex_file_->NumMethodIds(), dex_cache->NumResolvedMethods());
24 EXPECT_EQ(java_lang_dex_file_->NumFieldIds(), dex_cache->NumResolvedFields());
25 EXPECT_EQ(java_lang_dex_file_->NumMethodIds(), dex_cache->NumCodeAndDirectMethods());
26 EXPECT_EQ(java_lang_dex_file_->NumTypeIds(), dex_cache->NumInitializedStaticStorage());
Brian Carlstromc4fa2c02011-08-21 03:00:12 -070027
28 EXPECT_LE(0, dex_cache->GetStrings()->GetLength());
Brian Carlstrom1caa2c22011-08-28 13:02:33 -070029 EXPECT_LE(0, dex_cache->GetResolvedTypes()->GetLength());
30 EXPECT_LE(0, dex_cache->GetResolvedMethods()->GetLength());
31 EXPECT_LE(0, dex_cache->GetResolvedFields()->GetLength());
32 EXPECT_LE(0, dex_cache->GetCodeAndDirectMethods()->GetLength());
33 EXPECT_LE(0, dex_cache->GetInitializedStaticStorage()->GetLength());
Brian Carlstromc4fa2c02011-08-21 03:00:12 -070034
35 EXPECT_EQ(java_lang_dex_file_->NumStringIds(),
36 static_cast<uint32_t>(dex_cache->GetStrings()->GetLength()));
37 EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),
Brian Carlstrom1caa2c22011-08-28 13:02:33 -070038 static_cast<uint32_t>(dex_cache->GetResolvedTypes()->GetLength()));
Brian Carlstromc4fa2c02011-08-21 03:00:12 -070039 EXPECT_EQ(java_lang_dex_file_->NumMethodIds(),
Brian Carlstrom1caa2c22011-08-28 13:02:33 -070040 static_cast<uint32_t>(dex_cache->GetResolvedMethods()->GetLength()));
Brian Carlstromc4fa2c02011-08-21 03:00:12 -070041 EXPECT_EQ(java_lang_dex_file_->NumFieldIds(),
Brian Carlstrom1caa2c22011-08-28 13:02:33 -070042 static_cast<uint32_t>(dex_cache->GetResolvedFields()->GetLength()));
43 EXPECT_EQ(java_lang_dex_file_->NumMethodIds(),
44 static_cast<uint32_t>(dex_cache->GetCodeAndDirectMethods()->NumCodeAndDirectMethods()));
45 EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),
46 static_cast<uint32_t>(dex_cache->GetInitializedStaticStorage()->GetLength()));
Brian Carlstrom7e49dca2011-07-22 18:07:34 -070047}
48
49} // namespace art