< prev index next >

test/native/gc/shared/test_collectorPolicy.cpp

Print this page




 144       MarkSweepPolicy msp;
 145       msp.initialize_all();
 146 
 147       ASSERT_EQ(param, msp.initial_young_size());
 148     }
 149   };
 150 
 151   class SetOldSizeCmd : public UnaryExecutor {
 152    public:
 153     SetOldSizeCmd(size_t param) : UnaryExecutor(param) { }
 154     void execute() {
 155       FLAG_SET_CMDLINE(size_t, OldSize, param);
 156     }
 157   };
 158 
 159   class SetMaxNewSizeCmd : public BinaryExecutor {
 160    public:
 161     SetMaxNewSizeCmd(size_t param1, size_t param2) : BinaryExecutor(param1, param2) { }
 162     void execute() {
 163       size_t heap_alignment = CollectorPolicy::compute_heap_alignment();
 164       size_t new_size_value = align_size_up(MaxHeapSize, heap_alignment)
 165               - param1 + param2;
 166       FLAG_SET_CMDLINE(size_t, MaxNewSize, new_size_value);
 167     }
 168   };
 169 
 170   class CheckOldMin : public UnaryExecutor {
 171    public:
 172     CheckOldMin(size_t param) : UnaryExecutor(param) { }
 173     void execute() {
 174       MarkSweepPolicy msp;
 175       msp.initialize_all();
 176       ASSERT_LE(msp.min_old_size(), param);
 177     }
 178   };
 179 
 180   class CheckOldInitial : public Executor {
 181    public:
 182     void execute() {
 183       size_t heap_alignment = CollectorPolicy::compute_heap_alignment();
 184 
 185       MarkSweepPolicy msp;
 186       msp.initialize_all();
 187 
 188       size_t expected_old_initial = align_size_up(InitialHeapSize, heap_alignment)
 189               - MaxNewSize;
 190 
 191       ASSERT_EQ(expected_old_initial, msp.initial_old_size());
 192     }
 193   };
 194 
 195   class CheckOldInitialMaxNewSize : public BinaryExecutor {
 196    public:
 197     CheckOldInitialMaxNewSize(size_t param1, size_t param2) : BinaryExecutor(param1, param2) { }
 198     void execute() {
 199       size_t heap_alignment = CollectorPolicy::compute_heap_alignment();
 200       size_t new_size_value = align_size_up(MaxHeapSize, heap_alignment)
 201               - param1 + param2;
 202 
 203       MarkSweepPolicy msp;
 204       msp.initialize_all();
 205 
 206       size_t expected_old_initial = align_size_up(MaxHeapSize, heap_alignment)
 207               - new_size_value;
 208 
 209       ASSERT_EQ(expected_old_initial, msp.initial_old_size());
 210     }
 211   };
 212 };
 213 
 214 
 215 // Testing that the NewSize flag is handled correct is hard because it
 216 // depends on so many other configurable variables. These tests only try to
 217 // verify that there are some basic rules for NewSize honored by the policies.
 218 
 219 // If NewSize has been ergonomically set, the collector policy
 220 // should use it for min
 221 TEST_VM(CollectorPolicy, young_min_ergo) {
 222   TestGenCollectorPolicy::SetNewSizeErgo setter(20 * M);
 223   TestGenCollectorPolicy::CheckYoungMin checker(20 * M);
 224 
 225   TestGenCollectorPolicy::TestWrapper::test(&setter, &checker);
 226 }




 144       MarkSweepPolicy msp;
 145       msp.initialize_all();
 146 
 147       ASSERT_EQ(param, msp.initial_young_size());
 148     }
 149   };
 150 
 151   class SetOldSizeCmd : public UnaryExecutor {
 152    public:
 153     SetOldSizeCmd(size_t param) : UnaryExecutor(param) { }
 154     void execute() {
 155       FLAG_SET_CMDLINE(size_t, OldSize, param);
 156     }
 157   };
 158 
 159   class SetMaxNewSizeCmd : public BinaryExecutor {
 160    public:
 161     SetMaxNewSizeCmd(size_t param1, size_t param2) : BinaryExecutor(param1, param2) { }
 162     void execute() {
 163       size_t heap_alignment = CollectorPolicy::compute_heap_alignment();
 164       size_t new_size_value = align_up(MaxHeapSize, heap_alignment)
 165               - param1 + param2;
 166       FLAG_SET_CMDLINE(size_t, MaxNewSize, new_size_value);
 167     }
 168   };
 169 
 170   class CheckOldMin : public UnaryExecutor {
 171    public:
 172     CheckOldMin(size_t param) : UnaryExecutor(param) { }
 173     void execute() {
 174       MarkSweepPolicy msp;
 175       msp.initialize_all();
 176       ASSERT_LE(msp.min_old_size(), param);
 177     }
 178   };
 179 
 180   class CheckOldInitial : public Executor {
 181    public:
 182     void execute() {
 183       size_t heap_alignment = CollectorPolicy::compute_heap_alignment();
 184 
 185       MarkSweepPolicy msp;
 186       msp.initialize_all();
 187 
 188       size_t expected_old_initial = align_up(InitialHeapSize, heap_alignment)
 189               - MaxNewSize;
 190 
 191       ASSERT_EQ(expected_old_initial, msp.initial_old_size());
 192     }
 193   };
 194 
 195   class CheckOldInitialMaxNewSize : public BinaryExecutor {
 196    public:
 197     CheckOldInitialMaxNewSize(size_t param1, size_t param2) : BinaryExecutor(param1, param2) { }
 198     void execute() {
 199       size_t heap_alignment = CollectorPolicy::compute_heap_alignment();
 200       size_t new_size_value = align_up(MaxHeapSize, heap_alignment)
 201               - param1 + param2;
 202 
 203       MarkSweepPolicy msp;
 204       msp.initialize_all();
 205 
 206       size_t expected_old_initial = align_up(MaxHeapSize, heap_alignment)
 207               - new_size_value;
 208 
 209       ASSERT_EQ(expected_old_initial, msp.initial_old_size());
 210     }
 211   };
 212 };
 213 
 214 
 215 // Testing that the NewSize flag is handled correct is hard because it
 216 // depends on so many other configurable variables. These tests only try to
 217 // verify that there are some basic rules for NewSize honored by the policies.
 218 
 219 // If NewSize has been ergonomically set, the collector policy
 220 // should use it for min
 221 TEST_VM(CollectorPolicy, young_min_ergo) {
 222   TestGenCollectorPolicy::SetNewSizeErgo setter(20 * M);
 223   TestGenCollectorPolicy::CheckYoungMin checker(20 * M);
 224 
 225   TestGenCollectorPolicy::TestWrapper::test(&setter, &checker);
 226 }


< prev index next >