Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(149)

Unified Diff: test/cctest/test-api.cc

Issue 17072002: Introduce THREADED_PROFILED_TEST macro (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Moved THREADED_PROFILED_TEST macro into test-api.cc Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/cctest/test-api.cc
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
index 8f96a4a9d1637784c0cc1175bfb72a6af7a993f3..353ac835a968fc7807cb026e2e7973d1d11692d6 100755
--- a/test/cctest/test-api.cc
+++ b/test/cctest/test-api.cc
@@ -73,6 +73,25 @@ using ::v8::V8;
using ::v8::Value;
+#define THREADED_PROFILED_TEST(Name) \
+ static void Test##Name(); \
+ TEST(Name##WithProfiler) { \
+ RunWithProfiler(&Test##Name); \
+ } \
+ THREADED_TEST(Name)
+
+void RunWithProfiler(void (*test)()) {
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
+ v8::Local<v8::String> profile_name = v8::String::New("my_profile1");
+ v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
+
+ cpu_profiler->StartCpuProfiling(profile_name);
+ (*test)();
+ cpu_profiler->DeleteAllCpuProfiles();
+}
+
+
static void ExpectString(const char* code, const char* expected) {
Local<Value> result = CompileRun(code);
CHECK(result->IsString());
@@ -938,56 +957,33 @@ static void Return239Callback(
template<typename Handler>
static void TestFunctionTemplateInitializer(Handler handler,
Handler handler_2) {
- for (int i = 0; i < 2; i++) {
- bool is_profiling = (i > 0);
- // Test constructor calls.
- {
- LocalContext env;
- v8::HandleScope scope(env->GetIsolate());
-
- v8::Local<v8::String> profile_name = v8::String::New("my_profile1");
- v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
- if (is_profiling) {
- cpu_profiler->StartCpuProfiling(profile_name);
- }
-
- Local<v8::FunctionTemplate> fun_templ =
- v8::FunctionTemplate::New(handler);
- Local<Function> fun = fun_templ->GetFunction();
- env->Global()->Set(v8_str("obj"), fun);
- Local<Script> script = v8_compile("obj()");
- for (int i = 0; i < 30; i++) {
- CHECK_EQ(102, script->Run()->Int32Value());
- }
+ // Test constructor calls.
+ {
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
- if (is_profiling) {
- cpu_profiler->StopCpuProfiling(profile_name);
- }
+ Local<v8::FunctionTemplate> fun_templ =
+ v8::FunctionTemplate::New(handler);
+ Local<Function> fun = fun_templ->GetFunction();
+ env->Global()->Set(v8_str("obj"), fun);
+ Local<Script> script = v8_compile("obj()");
+ for (int i = 0; i < 30; i++) {
+ CHECK_EQ(102, script->Run()->Int32Value());
}
- // Use SetCallHandler to initialize a function template, should work like
- // the previous one.
- {
- LocalContext env;
- v8::HandleScope scope(env->GetIsolate());
-
- v8::Local<v8::String> profile_name = v8::String::New("my_profile2");
- v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
- if (is_profiling) {
- cpu_profiler->StartCpuProfiling(profile_name);
- }
-
- Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
- fun_templ->SetCallHandler(handler_2);
- Local<Function> fun = fun_templ->GetFunction();
- env->Global()->Set(v8_str("obj"), fun);
- Local<Script> script = v8_compile("obj()");
- for (int i = 0; i < 30; i++) {
- CHECK_EQ(102, script->Run()->Int32Value());
- }
+ }
+ // Use SetCallHandler to initialize a function template, should work like
+ // the previous one.
+ {
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
- if (is_profiling) {
- cpu_profiler->DeleteAllCpuProfiles();
- }
+ Local<v8::FunctionTemplate> fun_templ = v8::FunctionTemplate::New();
+ fun_templ->SetCallHandler(handler_2);
+ Local<Function> fun = fun_templ->GetFunction();
+ env->Global()->Set(v8_str("obj"), fun);
+ Local<Script> script = v8_compile("obj()");
+ for (int i = 0; i < 30; i++) {
+ CHECK_EQ(102, script->Run()->Int32Value());
}
}
}
@@ -996,44 +992,31 @@ static void TestFunctionTemplateInitializer(Handler handler,
template<typename Constructor, typename Accessor>
static void TestFunctionTemplateAccessor(Constructor constructor,
Accessor accessor) {
- for (int i = 0; i < 2; i++) {
- bool is_profiling = (i > 0);
- LocalContext env;
- v8::HandleScope scope(env->GetIsolate());
-
- v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
- if (is_profiling) {
- v8::Local<v8::String> profile_name = v8::String::New("my_profile1");
- cpu_profiler->StartCpuProfiling(profile_name);
- }
-
- Local<v8::FunctionTemplate> fun_templ =
- v8::FunctionTemplate::New(constructor);
- fun_templ->SetClassName(v8_str("funky"));
- fun_templ->InstanceTemplate()->SetAccessor(v8_str("m"), accessor);
- Local<Function> fun = fun_templ->GetFunction();
- env->Global()->Set(v8_str("obj"), fun);
- Local<Value> result = v8_compile("(new obj()).toString()")->Run();
- CHECK_EQ(v8_str("[object funky]"), result);
- CompileRun("var obj_instance = new obj();");
- Local<Script> script;
- script = v8_compile("obj_instance.x");
- for (int i = 0; i < 30; i++) {
- CHECK_EQ(1, script->Run()->Int32Value());
- }
- script = v8_compile("obj_instance.m");
- for (int i = 0; i < 30; i++) {
- CHECK_EQ(239, script->Run()->Int32Value());
- }
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
- if (is_profiling) {
- cpu_profiler->DeleteAllCpuProfiles();
- }
+ Local<v8::FunctionTemplate> fun_templ =
+ v8::FunctionTemplate::New(constructor);
+ fun_templ->SetClassName(v8_str("funky"));
+ fun_templ->InstanceTemplate()->SetAccessor(v8_str("m"), accessor);
+ Local<Function> fun = fun_templ->GetFunction();
+ env->Global()->Set(v8_str("obj"), fun);
+ Local<Value> result = v8_compile("(new obj()).toString()")->Run();
+ CHECK_EQ(v8_str("[object funky]"), result);
+ CompileRun("var obj_instance = new obj();");
+ Local<Script> script;
+ script = v8_compile("obj_instance.x");
+ for (int i = 0; i < 30; i++) {
+ CHECK_EQ(1, script->Run()->Int32Value());
+ }
+ script = v8_compile("obj_instance.m");
+ for (int i = 0; i < 30; i++) {
+ CHECK_EQ(239, script->Run()->Int32Value());
}
}
-THREADED_TEST(FunctionTemplate) {
+THREADED_PROFILED_TEST(FunctionTemplate) {
TestFunctionTemplateInitializer(handle_call, handle_call_2);
TestFunctionTemplateInitializer(handle_call_indirect, handle_call_indirect_2);
TestFunctionTemplateInitializer(handle_callback, handle_callback_2);
@@ -1067,39 +1050,26 @@ static void SimpleCallback(const v8::FunctionCallbackInfo<v8::Value>& info) {
template<typename Callback>
static void TestSimpleCallback(Callback callback) {
- for (int i = 0; i < 2; i++) {
- bool is_profiling = i;
- LocalContext env;
- v8::HandleScope scope(env->GetIsolate());
-
- v8::CpuProfiler* cpu_profiler = env->GetIsolate()->GetCpuProfiler();
- if (is_profiling) {
- v8::Local<v8::String> profile_name = v8::String::New("my_profile1");
- cpu_profiler->StartCpuProfiling(profile_name);
- }
-
- v8::Handle<v8::ObjectTemplate> object_template = v8::ObjectTemplate::New();
- object_template->Set("callback", v8::FunctionTemplate::New(callback));
- v8::Local<v8::Object> object = object_template->NewInstance();
- (*env)->Global()->Set(v8_str("callback_object"), object);
- v8::Handle<v8::Script> script;
- script = v8_compile("callback_object.callback(17)");
- for (int i = 0; i < 30; i++) {
- CHECK_EQ(51424, script->Run()->Int32Value());
- }
- script = v8_compile("callback_object.callback(17, 24)");
- for (int i = 0; i < 30; i++) {
- CHECK_EQ(51425, script->Run()->Int32Value());
- }
+ LocalContext env;
+ v8::HandleScope scope(env->GetIsolate());
- if (is_profiling) {
- cpu_profiler->DeleteAllCpuProfiles();
- }
+ v8::Handle<v8::ObjectTemplate> object_template = v8::ObjectTemplate::New();
+ object_template->Set("callback", v8::FunctionTemplate::New(callback));
+ v8::Local<v8::Object> object = object_template->NewInstance();
+ (*env)->Global()->Set(v8_str("callback_object"), object);
+ v8::Handle<v8::Script> script;
+ script = v8_compile("callback_object.callback(17)");
+ for (int i = 0; i < 30; i++) {
+ CHECK_EQ(51424, script->Run()->Int32Value());
+ }
+ script = v8_compile("callback_object.callback(17, 24)");
+ for (int i = 0; i < 30; i++) {
+ CHECK_EQ(51425, script->Run()->Int32Value());
}
}
-THREADED_TEST(SimpleCallback) {
+THREADED_PROFILED_TEST(SimpleCallback) {
TestSimpleCallback(SimpleDirectCallback);
TestSimpleCallback(SimpleIndirectCallback);
TestSimpleCallback(SimpleCallback);
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698