1a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org// Copyright 2010 the V8 project authors. All rights reserved. 23484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// Use of this source code is governed by a BSD-style license that can be 33484964a86451e86dcf04be9bd8c0d76ee04f081rossberg@chromium.org// found in the LICENSE file. 4a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 5a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#ifndef V8_V8_TEST_H_ 6a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#define V8_V8_TEST_H_ 7a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 8a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#include "v8.h" 9a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 10a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org/** 11a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org * Testing support for the V8 JavaScript engine. 12a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org */ 13a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.orgnamespace v8 { 14a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 15594006017e46d82ed7146611dc12c20e3c509c7ddanno@chromium.orgclass V8_EXPORT Testing { 16a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org public: 17a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org enum StressType { 18a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org kStressTypeOpt, 19a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org kStressTypeDeopt 20a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org }; 21a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 22a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org /** 23a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org * Set the type of stressing to do. The default if not set is kStressTypeOpt. 24a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org */ 25a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org static void SetStressRunType(StressType type); 26a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 27a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org /** 28a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org * Get the number of runs of a given test that is required to get the full 29a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org * stress coverage. 30a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org */ 31a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org static int GetStressRuns(); 32a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 33a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org /** 34a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org * Indicate the number of the run which is about to start. The value of run 35a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org * should be between 0 and one less than the result from GetStressRuns() 36a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org */ 37a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org static void PrepareStressRun(int run); 38b08986cb66c3f6687247cb6da186c1e73057e399whesse@chromium.org 39b08986cb66c3f6687247cb6da186c1e73057e399whesse@chromium.org /** 40b08986cb66c3f6687247cb6da186c1e73057e399whesse@chromium.org * Force deoptimization of all functions. 41b08986cb66c3f6687247cb6da186c1e73057e399whesse@chromium.org */ 42b08986cb66c3f6687247cb6da186c1e73057e399whesse@chromium.org static void DeoptimizeAll(); 43a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org}; 44a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 45a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 46a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org} // namespace v8 47a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org 48a55512615f5adc085d23bc8589d155c4b579fb7bkasperl@chromium.org#endif // V8_V8_TEST_H_ 49