OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2009, Google Inc. | 2 * Copyright 2009, Google Inc. |
3 * All rights reserved. | 3 * All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 allocator->FreeID(id2); | 75 allocator->FreeID(id2); |
76 EXPECT_FALSE(allocator->InUse(id2)); | 76 EXPECT_FALSE(allocator->InUse(id2)); |
77 } | 77 } |
78 | 78 |
79 // Checks that the resource IDs are allocated conservatively, and re-used after | 79 // Checks that the resource IDs are allocated conservatively, and re-used after |
80 // being freed. | 80 // being freed. |
81 TEST_F(IdAllocatorTest, TestAdvanced) { | 81 TEST_F(IdAllocatorTest, TestAdvanced) { |
82 IdAllocator *allocator = id_allocator(); | 82 IdAllocator *allocator = id_allocator(); |
83 | 83 |
84 // Allocate a significant number of resources. | 84 // Allocate a significant number of resources. |
85 const int kNumResources = 100; | 85 const unsigned int kNumResources = 100; |
86 ResourceID ids[kNumResources]; | 86 ResourceID ids[kNumResources]; |
87 for (int i = 0; i < kNumResources; ++i) { | 87 for (int i = 0; i < kNumResources; ++i) { |
88 ids[i] = allocator->AllocateID(); | 88 ids[i] = allocator->AllocateID(); |
89 EXPECT_TRUE(allocator->InUse(ids[i])); | 89 EXPECT_TRUE(allocator->InUse(ids[i])); |
90 } | 90 } |
91 | 91 |
92 // Check that the allocation is conservative with resource IDs, that is that | 92 // Check that the allocation is conservative with resource IDs, that is that |
93 // the resource IDs don't go over kNumResources - so that the service doesn't | 93 // the resource IDs don't go over kNumResources - so that the service doesn't |
94 // have to allocate too many internal structures when the resources are used. | 94 // have to allocate too many internal structures when the resources are used. |
95 for (int i = 0; i < kNumResources; ++i) { | 95 for (int i = 0; i < kNumResources; ++i) { |
96 EXPECT_GT(kNumResources, ids[i]); | 96 EXPECT_GT(kNumResources, ids[i]); |
97 } | 97 } |
98 | 98 |
99 // Check that the next resources are still free. | 99 // Check that the next resources are still free. |
100 for (int i = 0; i < kNumResources; ++i) { | 100 for (int i = 0; i < kNumResources; ++i) { |
101 EXPECT_FALSE(allocator->InUse(kNumResources + i)); | 101 EXPECT_FALSE(allocator->InUse(kNumResources + i)); |
102 } | 102 } |
103 | 103 |
104 // Check that a new allocation re-uses the resource we just freed. | 104 // Check that a new allocation re-uses the resource we just freed. |
105 ResourceID id1 = ids[kNumResources / 2]; | 105 ResourceID id1 = ids[kNumResources / 2]; |
106 allocator->FreeID(id1); | 106 allocator->FreeID(id1); |
107 EXPECT_FALSE(allocator->InUse(id1)); | 107 EXPECT_FALSE(allocator->InUse(id1)); |
108 ResourceID id2 = allocator->AllocateID(); | 108 ResourceID id2 = allocator->AllocateID(); |
109 EXPECT_TRUE(allocator->InUse(id2)); | 109 EXPECT_TRUE(allocator->InUse(id2)); |
110 EXPECT_EQ(id1, id2); | 110 EXPECT_EQ(id1, id2); |
111 } | 111 } |
112 | 112 |
113 } // namespace command_buffer | 113 } // namespace command_buffer |
114 } // namespace o3d | 114 } // namespace o3d |
OLD | NEW |