]> sourceware.org Git - systemtap.git/commitdiff
Fix/update the cast-scope testcase for gcc 7.
authorDavid Smith <dsmith@redhat.com>
Thu, 9 Feb 2017 18:39:17 +0000 (12:39 -0600)
committerDavid Smith <dsmith@redhat.com>
Thu, 9 Feb 2017 18:39:17 +0000 (12:39 -0600)
* testsuite/systemtap.base/cast-scope.exp: Update expected output for
  cast-scope.cxx change. This way we're depending on our own class instead
  of the internal details of the std::string class (which changed with gcc
  7).
* testsuite/systemtap.base/cast-scope.cxx: Instead of using the
  std::string class, define our own test class.
* testsuite/systemtap.base/cast-scope.stp: Update for cast-scope.cxx change.

testsuite/systemtap.base/cast-scope.cxx
testsuite/systemtap.base/cast-scope.exp
testsuite/systemtap.base/cast-scope.stp

index 891bfbe286750844983fdf1430ea07b2cb0d982e..ae6e321d307d5cae41f43eea4d46f767bb2770cc 100644 (file)
@@ -1,13 +1,38 @@
 #include "sys/sdt.h"
 
-#include <string>
+extern "C" {
+#include <string.h>
+}
+
+class sClass
+{
+private:
+    const char *_str;
+    size_t _l;
+
+public:
+    sClass(const char *n) : _str(n)
+    {
+       _l = strlen(_str);
+    }
+
+    const char *name(void)
+    {
+       return _str;
+    }
+
+    size_t len(void) const
+    {
+       return _l;
+    }
+};
 
 size_t
-length(const std::string& str)
+length(const sClass& str)
 {
     int res, r;
     STAP_PROBE1(cast-scope, length, &str);
-    r = str.length() * 2;
+    r = str.len() * 2;
     STAP_PROBE(cast-scope, dummy); /* Just here to probe line +5. */
     res = r / 2;
     STAP_PROBE(cast-scope, dummy2); /* Just here prevent line reordering. */
@@ -17,6 +42,6 @@ length(const std::string& str)
 int
 main()
 {
-    std::string hello = "Hello World!";
+    sClass hello = sClass("Hello World!");
     return 12 != length(hello);
 }
index 47f87a9b0f83fb1530f0b3a232082b3a25351b77..8dcc29e208ae4e5e8b26e022488ea775a475b82f 100644 (file)
@@ -1,9 +1,9 @@
 set test "cast-scope"
-set ::result_string {function direct: {._M_dataplus={._M_p="Hello World!"}}
-function cast: {._M_dataplus={._M_p="Hello World!"}}
-mark cast: {._M_dataplus={._M_p="Hello World!"}}
-statement direct: {._M_dataplus={._M_p="Hello World!"}}
-statement cast: {._M_dataplus={._M_p="Hello World!"}}}
+set ::result_string {function direct: {._str="Hello World!", ._l=12}
+function cast: {._str="Hello World!", ._l=12}
+mark cast: {._str="Hello World!", ._l=12}
+statement direct: {._str="Hello World!", ._l=12}
+statement cast: {._str="Hello World!", ._l=12}}
 
 set srcfile "$srcdir/$subdir/$test.cxx"
 set stpfile "$srcdir/$subdir/$test.stp"
index 6cdd4ce9bb01f91d0b31f3ed72166851c1ab1e95..503ebce3923ae86227ae9df3dd0122c610ca197c 100644 (file)
@@ -3,18 +3,18 @@ global function_string, statement_string, mark_string
 probe process.function("length@cast-scope.cxx")
 {
   function_string .= sprintf("function direct: %s\n", $str$$)
-  function_string .= sprintf("function cast: %s\n", @cast($str, "std::string")$$)
+  function_string .= sprintf("function cast: %s\n", @cast($str, "sClass")$$)
 }
 
 probe process.statement("length@cast-scope.cxx+5")
 {
   statement_string .= sprintf("statement direct: %s\n", $str$$)
-  statement_string .= sprintf("statement cast: %s\n", @cast($str, "std::string")$$)
+  statement_string .= sprintf("statement cast: %s\n", @cast($str, "sClass")$$)
 }
 
 probe process.mark("length")
 {
-  mark_string .= sprintf("mark cast: %s\n", @cast($arg1, "std::string")$$)
+  mark_string .= sprintf("mark cast: %s\n", @cast($arg1, "sClass")$$)
 }
 
 probe end
This page took 0.031607 seconds and 5 git commands to generate.