labath created this revision.
labath added a reviewer: clayborg.
labath added subscribers: zturner, lldb-commits.
using stdio in tests does not work on windows, and it is not completely
reliable on linux.
Avoid using stdio in this test, as it is not necessary for this purpose.
http://reviews.llvm.org/D20567
Files:
packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
Index: packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
===================================================================
--- packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
+++ packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
@@ -1,5 +1,4 @@
-#include <stdio.h>
-#include <stdint.h>
+#include <string>
class A
{
@@ -84,18 +83,19 @@
C *c_as_C = new C();
A *c_as_A = c_as_C;
- printf ("a_as_A->a() = '%s'\n", a_as_A->a());
- printf ("a_as_A->b() = '%s'\n", a_as_A->b());
- printf ("a_as_A->c() = '%s'\n", a_as_A->c());
- printf ("b_as_A->a() = '%s'\n", b_as_A->a());
- printf ("b_as_A->b() = '%s'\n", b_as_A->b());
- printf ("b_as_A->c() = '%s'\n", b_as_A->c());
- printf ("b_as_B->aa() = '%s'\n", b_as_B->aa());
- printf ("c_as_A->a() = '%s'\n", c_as_A->a());
- printf ("c_as_A->b() = '%s'\n", c_as_A->b());
- printf ("c_as_A->c() = '%s'\n", c_as_A->c());
- printf ("c_as_C->aa() = '%s'\n", c_as_C->aa());
- puts("");// Set first breakpoint here.
+ std::string golden;
+ golden += std::string("a_as_A->a() = '") + a_as_A->a() + "'\n";
+ golden += std::string("a_as_A->b() = '") + a_as_A->b() + "'\n";
+ golden += std::string("a_as_A->c() = '") + a_as_A->c() + "'\n";
+ golden += std::string("b_as_A->a() = '") + b_as_A->a() + "'\n";
+ golden += std::string("b_as_A->b() = '") + b_as_A->b() + "'\n";
+ golden += std::string("b_as_A->c() = '") + b_as_A->c() + "'\n";
+ golden += std::string("b_as_B->aa() = '") + b_as_B->aa() + "'\n";
+ golden += std::string("c_as_A->a() = '") + c_as_A->a() + "'\n";
+ golden += std::string("c_as_A->b() = '") + c_as_A->b() + "'\n";
+ golden += std::string("c_as_A->c() = '") + c_as_A->c() + "'\n";
+ golden += std::string("c_as_C->aa() = '") + c_as_C->aa() + "'\n";
+ return 0;// Set first breakpoint here.
// then evaluate:
// expression a_as_A->a()
// expression a_as_A->b()
@@ -108,6 +108,4 @@
// expression c_as_A->b()
// expression c_as_A->c()
// expression c_as_C->aa()
-
- return 0;
}
Index: packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
===================================================================
--- packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
+++ packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
@@ -58,11 +58,11 @@
thread = lldbutil.get_stopped_thread(process,
lldb.eStopReasonBreakpoint)
self.assertTrue(thread.IsValid(), "There should be a thread stopped
due to breakpoint condition")
- # First, capture the golden output from the program itself from the
- # series of printf statements.
- stdout = process.GetSTDOUT(1024)
-
- self.assertIsNotNone(stdout, "Encountered an error reading the
process's output")
+ # First, capture the golden output from the program itself.
+ golden = thread.GetFrameAtIndex(0).FindVariable("golden")
+ self.assertTrue(golden.IsValid(), "Encountered an error reading the
process's golden variable")
+ golden_str = str(golden)
+ self.assertTrue("c_as_C" in golden_str)
# This golden list contains a list of "my_expr = 'value' pairs
extracted
# from the golden output.
@@ -72,7 +72,7 @@
#
# my_expr = 'value'
#
- for line in stdout.split(os.linesep):
+ for line in golden_str.split(os.linesep):
match = self.pattern.search(line)
if match:
my_expr, val = match.group(1), match.group(2)
Index: packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
===================================================================
--- packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
+++ packages/Python/lldbsuite/test/lang/cpp/virtual/main.cpp
@@ -1,5 +1,4 @@
-#include <stdio.h>
-#include <stdint.h>
+#include <string>
class A
{
@@ -84,18 +83,19 @@
C *c_as_C = new C();
A *c_as_A = c_as_C;
- printf ("a_as_A->a() = '%s'\n", a_as_A->a());
- printf ("a_as_A->b() = '%s'\n", a_as_A->b());
- printf ("a_as_A->c() = '%s'\n", a_as_A->c());
- printf ("b_as_A->a() = '%s'\n", b_as_A->a());
- printf ("b_as_A->b() = '%s'\n", b_as_A->b());
- printf ("b_as_A->c() = '%s'\n", b_as_A->c());
- printf ("b_as_B->aa() = '%s'\n", b_as_B->aa());
- printf ("c_as_A->a() = '%s'\n", c_as_A->a());
- printf ("c_as_A->b() = '%s'\n", c_as_A->b());
- printf ("c_as_A->c() = '%s'\n", c_as_A->c());
- printf ("c_as_C->aa() = '%s'\n", c_as_C->aa());
- puts("");// Set first breakpoint here.
+ std::string golden;
+ golden += std::string("a_as_A->a() = '") + a_as_A->a() + "'\n";
+ golden += std::string("a_as_A->b() = '") + a_as_A->b() + "'\n";
+ golden += std::string("a_as_A->c() = '") + a_as_A->c() + "'\n";
+ golden += std::string("b_as_A->a() = '") + b_as_A->a() + "'\n";
+ golden += std::string("b_as_A->b() = '") + b_as_A->b() + "'\n";
+ golden += std::string("b_as_A->c() = '") + b_as_A->c() + "'\n";
+ golden += std::string("b_as_B->aa() = '") + b_as_B->aa() + "'\n";
+ golden += std::string("c_as_A->a() = '") + c_as_A->a() + "'\n";
+ golden += std::string("c_as_A->b() = '") + c_as_A->b() + "'\n";
+ golden += std::string("c_as_A->c() = '") + c_as_A->c() + "'\n";
+ golden += std::string("c_as_C->aa() = '") + c_as_C->aa() + "'\n";
+ return 0;// Set first breakpoint here.
// then evaluate:
// expression a_as_A->a()
// expression a_as_A->b()
@@ -108,6 +108,4 @@
// expression c_as_A->b()
// expression c_as_A->c()
// expression c_as_C->aa()
-
- return 0;
}
Index: packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
===================================================================
--- packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
+++ packages/Python/lldbsuite/test/lang/cpp/virtual/TestVirtual.py
@@ -58,11 +58,11 @@
thread = lldbutil.get_stopped_thread(process, lldb.eStopReasonBreakpoint)
self.assertTrue(thread.IsValid(), "There should be a thread stopped due to breakpoint condition")
- # First, capture the golden output from the program itself from the
- # series of printf statements.
- stdout = process.GetSTDOUT(1024)
-
- self.assertIsNotNone(stdout, "Encountered an error reading the process's output")
+ # First, capture the golden output from the program itself.
+ golden = thread.GetFrameAtIndex(0).FindVariable("golden")
+ self.assertTrue(golden.IsValid(), "Encountered an error reading the process's golden variable")
+ golden_str = str(golden)
+ self.assertTrue("c_as_C" in golden_str)
# This golden list contains a list of "my_expr = 'value' pairs extracted
# from the golden output.
@@ -72,7 +72,7 @@
#
# my_expr = 'value'
#
- for line in stdout.split(os.linesep):
+ for line in golden_str.split(os.linesep):
match = self.pattern.search(line)
if match:
my_expr, val = match.group(1), match.group(2)
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits