summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/functionalities/thread/state/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'packages/Python/lldbsuite/test/functionalities/thread/state/main.cpp')
-rw-r--r--packages/Python/lldbsuite/test/functionalities/thread/state/main.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/packages/Python/lldbsuite/test/functionalities/thread/state/main.cpp b/packages/Python/lldbsuite/test/functionalities/thread/state/main.cpp
new file mode 100644
index 0000000000000..081203da8da96
--- /dev/null
+++ b/packages/Python/lldbsuite/test/functionalities/thread/state/main.cpp
@@ -0,0 +1,45 @@
+//===-- main.cpp ------------------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// This test is intended to verify that thread states are properly maintained
+// when transitional actions are performed in the debugger. Most of the logic
+// is in the test script. This program merely provides places where the test
+// can create the intended states.
+
+#include <chrono>
+#include <thread>
+
+volatile int g_test = 0;
+
+int addSomething(int a)
+{
+ return a + g_test;
+}
+
+int doNothing()
+{
+ int temp = 0; // Set first breakpoint here
+
+ while (!g_test && temp < 5)
+ {
+ ++temp;
+ std::this_thread::sleep_for(std::chrono::seconds(2));
+ }
+
+ return temp; // Set second breakpoint here
+}
+
+int main ()
+{
+ int result = doNothing();
+
+ int i = addSomething(result);
+
+ return 0;
+}