1b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch// Copyright 2010 the V8 project authors. All rights reserved. 2b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdoch// found in the LICENSE file. 4b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 5b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch#ifndef V8_V8_TEST_H_ 6b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch#define V8_V8_TEST_H_ 7b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 8014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch#include "v8.h" // NOLINT(build/include) 9b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 10b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch/** 11b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch * Testing support for the V8 JavaScript engine. 12b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch */ 13b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdochnamespace v8 { 14b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 15b8a8cc1952d61a2f3a2568848933943a543b5d3eBen Murdochclass V8_EXPORT Testing { 16b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch public: 17b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch enum StressType { 18b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch kStressTypeOpt, 19b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch kStressTypeDeopt 20b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch }; 21b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 22b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch /** 23b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch * Set the type of stressing to do. The default if not set is kStressTypeOpt. 24b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch */ 25b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch static void SetStressRunType(StressType type); 26b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 27b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch /** 28b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch * Get the number of runs of a given test that is required to get the full 29b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch * stress coverage. 30b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch */ 31b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch static int GetStressRuns(); 32b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 33b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch /** 34b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch * Indicate the number of the run which is about to start. The value of run 35b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch * should be between 0 and one less than the result from GetStressRuns() 36b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch */ 37b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch static void PrepareStressRun(int run); 3844f0eee88ff00398ff7f715fab053374d808c90dSteve Block 3944f0eee88ff00398ff7f715fab053374d808c90dSteve Block /** 4044f0eee88ff00398ff7f715fab053374d808c90dSteve Block * Force deoptimization of all functions. 4144f0eee88ff00398ff7f715fab053374d808c90dSteve Block */ 42014dc512cdd3e367bee49a713fdc5ed92584a3e5Ben Murdoch static void DeoptimizeAll(Isolate* isolate); 43b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch}; 44b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 45b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 46b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch} // namespace v8 47b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch 48b0fe1620dcb4135ac3ab2d66ff93072373911299Ben Murdoch#endif // V8_V8_TEST_H_ 49