dex_cache_test.cc revision 1caa2c205e51dda670207828f25451fb7623cea6
12faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes// Copyright 2011 Google Inc. All Rights Reserved.
22faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes
32faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "class_linker.h"
42faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "common_test.h"
52faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "dex_cache.h"
62faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "heap.h"
72faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "object.h"
82faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "scoped_ptr.h"
92faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes
102faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include <stdio.h>
112faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes#include "gtest/gtest.h"
122faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes
132faa5f1271587cda765f26bcf2951065300a01ffElliott Hughesnamespace art {
142faa5f1271587cda765f26bcf2951065300a01ffElliott Hughes
152faa5f1271587cda765f26bcf2951065300a01ffElliott Hughesclass DexCacheTest : public CommonTest {};
1678128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom
1778128a63b2615744760b7f8ab83df9764a5d4a95Brian CarlstromTEST_F(DexCacheTest, Open) {
1878128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom
1978128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  DexCache* dex_cache = class_linker_->AllocDexCache(*java_lang_dex_file_.get());
2027ec961a1da540ba7f16c07a682585ab167317adBrian Carlstrom  ASSERT_TRUE(dex_cache != NULL);
2127ec961a1da540ba7f16c07a682585ab167317adBrian Carlstrom
2278128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumStringIds(), dex_cache->NumStrings());
2378128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),   dex_cache->NumResolvedTypes());
2478128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumMethodIds(), dex_cache->NumResolvedMethods());
2578128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumFieldIds(),  dex_cache->NumResolvedFields());
26e3c845cdb5884e770287a5c0c65c8bb64733c388Elliott Hughes  EXPECT_EQ(java_lang_dex_file_->NumMethodIds(), dex_cache->NumCodeAndDirectMethods());
273a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers  EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),   dex_cache->NumInitializedStaticStorage());
28916e74e45b60902af342a71bdbfb806ff29c6c2bBrian Carlstrom
2978128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_LE(0, dex_cache->GetStrings()->GetLength());
3057b86d47b66322693a070185fadfb43cb9c12eabIan Rogers  EXPECT_LE(0, dex_cache->GetResolvedTypes()->GetLength());
316d4d9fcb4f01e287ee29e81cd1c941ee5d11d379Ian Rogers  EXPECT_LE(0, dex_cache->GetResolvedMethods()->GetLength());
32e5448b5a12003b405b22cde3b94f962ab4888a87Elliott Hughes  EXPECT_LE(0, dex_cache->GetResolvedFields()->GetLength());
3378128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_LE(0, dex_cache->GetCodeAndDirectMethods()->GetLength());
34a0e180632411f7fe0edf454e571c42209ee7b540Elliott Hughes  EXPECT_LE(0, dex_cache->GetInitializedStaticStorage()->GetLength());
3500f7d0eaa6bd93d33bf0c1429bf4ba0b3f28abacIan Rogers
3678128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumStringIds(),
3778128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom            static_cast<uint32_t>(dex_cache->GetStrings()->GetLength()));
38776ac1fa61237db645adb4370a4aab888530caf4Ian Rogers  EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),
3978128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom            static_cast<uint32_t>(dex_cache->GetResolvedTypes()->GetLength()));
4078128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumMethodIds(),
4178128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom            static_cast<uint32_t>(dex_cache->GetResolvedMethods()->GetLength()));
4278128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumFieldIds(),
4378128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom            static_cast<uint32_t>(dex_cache->GetResolvedFields()->GetLength()));
4478128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumMethodIds(),
4529e7ac74a3f9aec192099fec381baadaa55730adBrian Carlstrom            static_cast<uint32_t>(dex_cache->GetCodeAndDirectMethods()->NumCodeAndDirectMethods()));
4629e7ac74a3f9aec192099fec381baadaa55730adBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),
4778128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom            static_cast<uint32_t>(dex_cache->GetInitializedStaticStorage()->GetLength()));
4878128a63b2615744760b7f8ab83df9764a5d4a95Brian Carlstrom}
49a6cc893c4b142cd410fc956963b6f5a014e983adBrian Carlstrom
5029e7ac74a3f9aec192099fec381baadaa55730adBrian Carlstrom}  // namespace art
51aded5f7ab991f3c1132851599d3bc60ff6707eedBrian Carlstrom