[compiler-rt] r300822 - [XRay] [compiler-rt] - Fix standalone and non-deterministic test issue

Keith Wyss via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 19 22:59:27 PDT 2017


Author: kpw
Date: Thu Apr 20 00:59:26 2017
New Revision: 300822

URL: http://llvm.org/viewvc/llvm-project?rev=300822&view=rev
Log:
[XRay] [compiler-rt] - Fix standalone and non-deterministic test issue

Summary:
The thread order test fails sometimes my machine independently of standalone
build.

>From testing both standalone and in-tree build, I see I configured it wrong.

The other hypothesis for an issue is that cold starts can interfere with whether
record unwriting happens. Once this happens more than once, we can naively
FileCheck on the wrong test output, which compounds the issue.

While "rm blah.* || true" will print to stderr if the glob can't expand, this is
mostly harmless and makes sure earlier failing tests don't sabotage us.

Example failure:

---
header:
  version:         1
  type:            1
  constant-tsc:    true
  nonstop-tsc:     true
  cycle-frequency: 3800000000
records:
  - { type: 0, func-id: 1, function: 'f1()', cpu: 9, thread: 21377, kind: function-enter, tsc: 2413745203147228 }
  - { type: 0, func-id: 1, function: 'f1()', cpu: 9, thread: 21377, kind: function-exit, tsc: 2413745203304238 }
...

The CMAKE related change fixes the expectation that COMPILER_RT_STANDALONE_BUILD will be explicitly FALSE instead
of empty string when it is not "TRUE".

Reviewers: dberris

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D32259

Modified:
    compiler-rt/trunk/test/xray/TestCases/Linux/fdr-mode.cc
    compiler-rt/trunk/test/xray/TestCases/Linux/fdr-thread-order.cc
    compiler-rt/trunk/test/xray/lit.site.cfg.in

Modified: compiler-rt/trunk/test/xray/TestCases/Linux/fdr-mode.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/xray/TestCases/Linux/fdr-mode.cc?rev=300822&r1=300821&r2=300822&view=diff
==============================================================================
--- compiler-rt/trunk/test/xray/TestCases/Linux/fdr-mode.cc (original)
+++ compiler-rt/trunk/test/xray/TestCases/Linux/fdr-mode.cc Thu Apr 20 00:59:26 2017
@@ -1,4 +1,6 @@
 // RUN: %clangxx_xray -g -std=c++11 %s -o %t
+// RUN: rm fdr-logging-test-* || true
+// RUN: rm fdr-unwrite-test-* || true
 // RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-logging-test- xray_fdr_log=true verbosity=1 xray_fdr_log_func_duration_threshold_us=0" %run %t 2>&1 | FileCheck %s
 // RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-unwrite-test- xray_fdr_log=true verbosity=1 xray_fdr_log_func_duration_threshold_us=5000" %run %t 2>&1 | FileCheck %s
 // RUN: %llvm_xray convert --symbolize --output-format=yaml -instr_map=%t "`ls fdr-logging-test-* | head -1`" | FileCheck %s --check-prefix=TRACE

Modified: compiler-rt/trunk/test/xray/TestCases/Linux/fdr-thread-order.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/xray/TestCases/Linux/fdr-thread-order.cc?rev=300822&r1=300821&r2=300822&view=diff
==============================================================================
--- compiler-rt/trunk/test/xray/TestCases/Linux/fdr-thread-order.cc (original)
+++ compiler-rt/trunk/test/xray/TestCases/Linux/fdr-thread-order.cc Thu Apr 20 00:59:26 2017
@@ -1,5 +1,6 @@
 // RUN: %clangxx_xray -g -std=c++11 %s -o %t
-// RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-thread-order. xray_fdr_log=true verbosity=1" %run %t 2>&1 | FileCheck %s
+// RUN: rm fdr-thread-order.* || true
+// RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-thread-order. xray_fdr_log=true verbosity=1 xray_fdr_log_func_duration_threshold_us=0" %run %t 2>&1 | FileCheck %s
 // RUN: %llvm_xray convert --symbolize --output-format=yaml -instr_map=%t "`ls fdr-thread-order.* | head -1`" | FileCheck %s --check-prefix TRACE
 // RUN: rm fdr-thread-order.*
 // FIXME: Make llvm-xray work on non-x86_64 as well.

Modified: compiler-rt/trunk/test/xray/lit.site.cfg.in
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/xray/lit.site.cfg.in?rev=300822&r1=300821&r2=300822&view=diff
==============================================================================
--- compiler-rt/trunk/test/xray/lit.site.cfg.in (original)
+++ compiler-rt/trunk/test/xray/lit.site.cfg.in Thu Apr 20 00:59:26 2017
@@ -5,8 +5,11 @@ config.name_suffix = "@XRAY_TEST_CONFIG_
 config.xray_lit_source_dir = "@XRAY_LIT_SOURCE_DIR@"
 config.target_cflags = "@XRAY_TEST_TARGET_CFLAGS@"
 config.target_arch = "@XRAY_TEST_TARGET_ARCH@"
-config.built_with_llvm = ("@COMPILER_RT_STANDALONE_BUILD@" == "FALSE")
+config.built_with_llvm = ("@COMPILER_RT_STANDALONE_BUILD@" != "TRUE")
 
+# TODO: Look into whether we can run a capability test on the standalone build to
+# see whether it can run 'llvm-xray convert' instead of turning off tests for a
+# standalone build.
 if config.built_with_llvm:
   config.available_features.add('built-in-llvm-tree')
 




More information about the llvm-commits mailing list