dex_cache_test.cc revision c4fa2c0c6302d3d9979e8d8a4030499c10d6b68b
17e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom// Copyright 2011 Google Inc. All Rights Reserved.
27e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
37e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "class_linker.h"
47e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "common_test.h"
57e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "dex_cache.h"
67e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "heap.h"
77e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "object.h"
87e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "scoped_ptr.h"
97e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
107e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include <stdio.h>
117e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom#include "gtest/gtest.h"
127e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
137e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstromnamespace art {
147e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
15f734cf55d510976f4862b15e35fc86eae2a3daf8Brian Carlstromclass DexCacheTest : public CommonTest {};
167e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
177e49dca262933bc30cbc8b9f07cfc8cce2343389Brian CarlstromTEST_F(DexCacheTest, Open) {
187e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
19a663ea5de4c9ab6b1510fdebd6d8eca77ba699aeBrian Carlstrom  DexCache* dex_cache = class_linker_->AllocDexCache(java_lang_dex_file_.get());
207e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom  ASSERT_TRUE(dex_cache != NULL);
21c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom
22a663ea5de4c9ab6b1510fdebd6d8eca77ba699aeBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumStringIds(), dex_cache->NumStrings());
23a663ea5de4c9ab6b1510fdebd6d8eca77ba699aeBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),   dex_cache->NumClasses());
24a663ea5de4c9ab6b1510fdebd6d8eca77ba699aeBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumMethodIds(), dex_cache->NumMethods());
25a663ea5de4c9ab6b1510fdebd6d8eca77ba699aeBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumFieldIds(),  dex_cache->NumFields());
26c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom
27c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_LE(0, dex_cache->GetStrings()->GetLength());
28c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_LE(0, dex_cache->GetClasses()->GetLength());
29c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_LE(0, dex_cache->GetMethods()->GetLength());
30c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_LE(0, dex_cache->GetFields()->GetLength());
31c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom
32c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumStringIds(),
33c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom            static_cast<uint32_t>(dex_cache->GetStrings()->GetLength()));
34c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumTypeIds(),
35c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom            static_cast<uint32_t>(dex_cache->GetClasses()->GetLength()));
36c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumMethodIds(),
37c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom            static_cast<uint32_t>(dex_cache->GetMethods()->GetLength()));
38c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom  EXPECT_EQ(java_lang_dex_file_->NumFieldIds(),
39c4fa2c0c6302d3d9979e8d8a4030499c10d6b68bBrian Carlstrom            static_cast<uint32_t>(dex_cache->GetFields()->GetLength()));
407e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom}
417e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom
427e49dca262933bc30cbc8b9f07cfc8cce2343389Brian Carlstrom}  // namespace art
43