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

Side by Side Diff: test/cctest/test-debug.cc

Issue 6711068: Use v8::internal threading support in samples/shell.cc. (Closed)
Patch Set: Created 9 years, 9 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 unified diff | Download patch
« no previous file with comments | « test/cctest/test-circular-queue.cc ('k') | test/cctest/test-sockets.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 4703 matching lines...) Expand 10 before | Expand all | Expand 10 after
4714 * response messages to the debugger. Fills queues and makes 4714 * response messages to the debugger. Fills queues and makes
4715 * them grow. 4715 * them grow.
4716 */ 4716 */
4717 Barriers message_queue_barriers; 4717 Barriers message_queue_barriers;
4718 4718
4719 // This is the debugger thread, that executes no v8 calls except 4719 // This is the debugger thread, that executes no v8 calls except
4720 // placing JSON debugger commands in the queue. 4720 // placing JSON debugger commands in the queue.
4721 class MessageQueueDebuggerThread : public v8::internal::Thread { 4721 class MessageQueueDebuggerThread : public v8::internal::Thread {
4722 public: 4722 public:
4723 explicit MessageQueueDebuggerThread(v8::internal::Isolate* isolate) 4723 explicit MessageQueueDebuggerThread(v8::internal::Isolate* isolate)
4724 : Thread(isolate) { } 4724 : Thread(isolate, "MessageQueueDebuggerThread") { }
4725 void Run(); 4725 void Run();
4726 }; 4726 };
4727 4727
4728 static void MessageHandler(const uint16_t* message, int length, 4728 static void MessageHandler(const uint16_t* message, int length,
4729 v8::Debug::ClientData* client_data) { 4729 v8::Debug::ClientData* client_data) {
4730 static char print_buffer[1000]; 4730 static char print_buffer[1000];
4731 Utf16ToAscii(message, length, print_buffer); 4731 Utf16ToAscii(message, length, print_buffer);
4732 if (IsBreakEventMessage(print_buffer)) { 4732 if (IsBreakEventMessage(print_buffer)) {
4733 // Lets test script wait until break occurs to send commands. 4733 // Lets test script wait until break occurs to send commands.
4734 // Signals when a break is reported. 4734 // Signals when a break is reported.
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
4965 /* This test interrupts a running infinite loop that is 4965 /* This test interrupts a running infinite loop that is
4966 * occupying the v8 thread by a break command from the 4966 * occupying the v8 thread by a break command from the
4967 * debugger thread. It then changes the value of a 4967 * debugger thread. It then changes the value of a
4968 * global object, to make the loop terminate. 4968 * global object, to make the loop terminate.
4969 */ 4969 */
4970 4970
4971 Barriers threaded_debugging_barriers; 4971 Barriers threaded_debugging_barriers;
4972 4972
4973 class V8Thread : public v8::internal::Thread { 4973 class V8Thread : public v8::internal::Thread {
4974 public: 4974 public:
4975 explicit V8Thread(v8::internal::Isolate* isolate) : Thread(isolate) { } 4975 explicit V8Thread(v8::internal::Isolate* isolate)
4976 : Thread(isolate, "V8Thread") { }
4976 void Run(); 4977 void Run();
4977 }; 4978 };
4978 4979
4979 class DebuggerThread : public v8::internal::Thread { 4980 class DebuggerThread : public v8::internal::Thread {
4980 public: 4981 public:
4981 explicit DebuggerThread(v8::internal::Isolate* isolate) : Thread(isolate) { } 4982 explicit DebuggerThread(v8::internal::Isolate* isolate)
4983 : Thread(isolate, "DebuggerThread") { }
4982 void Run(); 4984 void Run();
4983 }; 4985 };
4984 4986
4985 4987
4986 static v8::Handle<v8::Value> ThreadedAtBarrier1(const v8::Arguments& args) { 4988 static v8::Handle<v8::Value> ThreadedAtBarrier1(const v8::Arguments& args) {
4987 threaded_debugging_barriers.barrier_1.Wait(); 4989 threaded_debugging_barriers.barrier_1.Wait();
4988 return v8::Undefined(); 4990 return v8::Undefined();
4989 } 4991 }
4990 4992
4991 4993
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
5071 /* Test RecursiveBreakpoints */ 5073 /* Test RecursiveBreakpoints */
5072 /* In this test, the debugger evaluates a function with a breakpoint, after 5074 /* In this test, the debugger evaluates a function with a breakpoint, after
5073 * hitting a breakpoint in another function. We do this with both values 5075 * hitting a breakpoint in another function. We do this with both values
5074 * of the flag enabling recursive breakpoints, and verify that the second 5076 * of the flag enabling recursive breakpoints, and verify that the second
5075 * breakpoint is hit when enabled, and missed when disabled. 5077 * breakpoint is hit when enabled, and missed when disabled.
5076 */ 5078 */
5077 5079
5078 class BreakpointsV8Thread : public v8::internal::Thread { 5080 class BreakpointsV8Thread : public v8::internal::Thread {
5079 public: 5081 public:
5080 explicit BreakpointsV8Thread(v8::internal::Isolate* isolate) 5082 explicit BreakpointsV8Thread(v8::internal::Isolate* isolate)
5081 : Thread(isolate) { } 5083 : Thread(isolate, "BreakpointsV8Thread") { }
5082 void Run(); 5084 void Run();
5083 }; 5085 };
5084 5086
5085 class BreakpointsDebuggerThread : public v8::internal::Thread { 5087 class BreakpointsDebuggerThread : public v8::internal::Thread {
5086 public: 5088 public:
5087 explicit BreakpointsDebuggerThread(v8::internal::Isolate* isolate, 5089 explicit BreakpointsDebuggerThread(v8::internal::Isolate* isolate,
5088 bool global_evaluate) 5090 bool global_evaluate)
5089 : Thread(isolate), global_evaluate_(global_evaluate) {} 5091 : Thread(isolate, "BreakpointsDebuggerThread"),
5092 global_evaluate_(global_evaluate) {}
5090 void Run(); 5093 void Run();
5091 5094
5092 private: 5095 private:
5093 bool global_evaluate_; 5096 bool global_evaluate_;
5094 }; 5097 };
5095 5098
5096 5099
5097 Barriers* breakpoints_barriers; 5100 Barriers* breakpoints_barriers;
5098 int break_event_breakpoint_id; 5101 int break_event_breakpoint_id;
5099 int evaluate_int_result; 5102 int evaluate_int_result;
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
5640 5643
5641 5644
5642 /* Test DebuggerHostDispatch */ 5645 /* Test DebuggerHostDispatch */
5643 /* In this test, the debugger waits for a command on a breakpoint 5646 /* In this test, the debugger waits for a command on a breakpoint
5644 * and is dispatching host commands while in the infinite loop. 5647 * and is dispatching host commands while in the infinite loop.
5645 */ 5648 */
5646 5649
5647 class HostDispatchV8Thread : public v8::internal::Thread { 5650 class HostDispatchV8Thread : public v8::internal::Thread {
5648 public: 5651 public:
5649 explicit HostDispatchV8Thread(v8::internal::Isolate* isolate) 5652 explicit HostDispatchV8Thread(v8::internal::Isolate* isolate)
5650 : Thread(isolate) { } 5653 : Thread(isolate, "HostDispatchV8Thread") { }
5651 void Run(); 5654 void Run();
5652 }; 5655 };
5653 5656
5654 class HostDispatchDebuggerThread : public v8::internal::Thread { 5657 class HostDispatchDebuggerThread : public v8::internal::Thread {
5655 public: 5658 public:
5656 explicit HostDispatchDebuggerThread(v8::internal::Isolate* isolate) 5659 explicit HostDispatchDebuggerThread(v8::internal::Isolate* isolate)
5657 : Thread(isolate) { } 5660 : Thread(isolate, "HostDispatchDebuggerThread") { }
5658 void Run(); 5661 void Run();
5659 }; 5662 };
5660 5663
5661 Barriers* host_dispatch_barriers; 5664 Barriers* host_dispatch_barriers;
5662 5665
5663 static void HostDispatchMessageHandler(const v8::Debug::Message& message) { 5666 static void HostDispatchMessageHandler(const v8::Debug::Message& message) {
5664 static char print_buffer[1000]; 5667 static char print_buffer[1000];
5665 v8::String::Value json(message.GetJSON()); 5668 v8::String::Value json(message.GetJSON());
5666 Utf16ToAscii(*json, json.length(), print_buffer); 5669 Utf16ToAscii(*json, json.length(), print_buffer);
5667 } 5670 }
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
5746 5749
5747 /* Test DebugMessageDispatch */ 5750 /* Test DebugMessageDispatch */
5748 /* In this test, the V8 thread waits for a message from the debug thread. 5751 /* In this test, the V8 thread waits for a message from the debug thread.
5749 * The DebugMessageDispatchHandler is executed from the debugger thread 5752 * The DebugMessageDispatchHandler is executed from the debugger thread
5750 * which signals the V8 thread to wake up. 5753 * which signals the V8 thread to wake up.
5751 */ 5754 */
5752 5755
5753 class DebugMessageDispatchV8Thread : public v8::internal::Thread { 5756 class DebugMessageDispatchV8Thread : public v8::internal::Thread {
5754 public: 5757 public:
5755 explicit DebugMessageDispatchV8Thread(v8::internal::Isolate* isolate) 5758 explicit DebugMessageDispatchV8Thread(v8::internal::Isolate* isolate)
5756 : Thread(isolate) { } 5759 : Thread(isolate, "DebugMessageDispatchV8Thread") { }
5757 void Run(); 5760 void Run();
5758 }; 5761 };
5759 5762
5760 class DebugMessageDispatchDebuggerThread : public v8::internal::Thread { 5763 class DebugMessageDispatchDebuggerThread : public v8::internal::Thread {
5761 public: 5764 public:
5762 explicit DebugMessageDispatchDebuggerThread(v8::internal::Isolate* isolate) 5765 explicit DebugMessageDispatchDebuggerThread(v8::internal::Isolate* isolate)
5763 : Thread(isolate) { } 5766 : Thread(isolate, "DebugMessageDispatchDebuggerThread") { }
5764 void Run(); 5767 void Run();
5765 }; 5768 };
5766 5769
5767 Barriers* debug_message_dispatch_barriers; 5770 Barriers* debug_message_dispatch_barriers;
5768 5771
5769 5772
5770 static void DebugMessageHandler() { 5773 static void DebugMessageHandler() {
5771 debug_message_dispatch_barriers->semaphore_1->Signal(); 5774 debug_message_dispatch_barriers->semaphore_1->Signal();
5772 } 5775 }
5773 5776
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
5856 debugger->StartAgent("test", kPort3); 5859 debugger->StartAgent("test", kPort3);
5857 debugger->StopAgent(); 5860 debugger->StopAgent();
5858 5861
5859 delete server; 5862 delete server;
5860 } 5863 }
5861 5864
5862 5865
5863 class DebuggerAgentProtocolServerThread : public i::Thread { 5866 class DebuggerAgentProtocolServerThread : public i::Thread {
5864 public: 5867 public:
5865 explicit DebuggerAgentProtocolServerThread(i::Isolate* isolate, int port) 5868 explicit DebuggerAgentProtocolServerThread(i::Isolate* isolate, int port)
5866 : Thread(isolate), port_(port), server_(NULL), client_(NULL), 5869 : Thread(isolate, "DebuggerAgentProtocolServerThread"),
5870 port_(port),
5871 server_(NULL),
5872 client_(NULL),
5867 listening_(OS::CreateSemaphore(0)) { 5873 listening_(OS::CreateSemaphore(0)) {
5868 } 5874 }
5869 ~DebuggerAgentProtocolServerThread() { 5875 ~DebuggerAgentProtocolServerThread() {
5870 // Close both sockets. 5876 // Close both sockets.
5871 delete client_; 5877 delete client_;
5872 delete server_; 5878 delete server_;
5873 delete listening_; 5879 delete listening_;
5874 } 5880 }
5875 5881
5876 void Run(); 5882 void Run();
(...skipping 1370 matching lines...) Expand 10 before | Expand all | Expand 10 after
7247 TestDebugBreakInLoop("for (;;) {", loop_bodies, "}"); 7253 TestDebugBreakInLoop("for (;;) {", loop_bodies, "}");
7248 TestDebugBreakInLoop("for (;a == 1;) {", loop_bodies, "}"); 7254 TestDebugBreakInLoop("for (;a == 1;) {", loop_bodies, "}");
7249 7255
7250 // Get rid of the debug event listener. 7256 // Get rid of the debug event listener.
7251 v8::Debug::SetDebugEventListener(NULL); 7257 v8::Debug::SetDebugEventListener(NULL);
7252 CheckDebuggerUnloaded(); 7258 CheckDebuggerUnloaded();
7253 } 7259 }
7254 7260
7255 7261
7256 #endif // ENABLE_DEBUGGER_SUPPORT 7262 #endif // ENABLE_DEBUGGER_SUPPORT
OLDNEW
« no previous file with comments | « test/cctest/test-circular-queue.cc ('k') | test/cctest/test-sockets.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698