| Index: test/cctest/test-log.cc
 | 
| diff --git a/test/cctest/test-log.cc b/test/cctest/test-log.cc
 | 
| index 7168737416588efdde191ad876e5672f478c2469..710c10e996a8b235e6bed159febc683c275c4e64 100644
 | 
| --- a/test/cctest/test-log.cc
 | 
| +++ b/test/cctest/test-log.cc
 | 
| @@ -139,6 +139,12 @@ namespace internal {
 | 
|  class LoggerTestHelper : public AllStatic {
 | 
|   public:
 | 
|    static bool IsSamplerActive() { return Logger::IsProfilerSamplerActive(); }
 | 
| +  static void ResetSamplesTaken() {
 | 
| +    reinterpret_cast<Sampler*>(Logger::ticker_)->ResetSamplesTaken();
 | 
| +  }
 | 
| +  static bool has_samples_taken() {
 | 
| +    return reinterpret_cast<Sampler*>(Logger::ticker_)->samples_taken() > 0;
 | 
| +  }
 | 
|  };
 | 
|  
 | 
|  }  // namespace v8::internal
 | 
| @@ -147,24 +153,6 @@ class LoggerTestHelper : public AllStatic {
 | 
|  using v8::internal::LoggerTestHelper;
 | 
|  
 | 
|  
 | 
| -// Under Linux, we need to check if signals were delivered to avoid false
 | 
| -// positives.  Under other platforms profiling is done via a high-priority
 | 
| -// thread, so this case never happen.
 | 
| -static bool was_sigprof_received = true;
 | 
| -#ifdef __linux__
 | 
| -
 | 
| -struct sigaction old_sigprof_handler;
 | 
| -pthread_t our_thread;
 | 
| -
 | 
| -static void SigProfSignalHandler(int signal, siginfo_t* info, void* context) {
 | 
| -  if (signal != SIGPROF || !pthread_equal(pthread_self(), our_thread)) return;
 | 
| -  was_sigprof_received = true;
 | 
| -  old_sigprof_handler.sa_sigaction(signal, info, context);
 | 
| -}
 | 
| -
 | 
| -#endif  // __linux__
 | 
| -
 | 
| -
 | 
|  namespace {
 | 
|  
 | 
|  class ScopedLoggerInitializer {
 | 
| @@ -258,6 +246,9 @@ class LogBufferMatcher {
 | 
|  
 | 
|  
 | 
|  static void CheckThatProfilerWorks(LogBufferMatcher* matcher) {
 | 
| +  CHECK(!LoggerTestHelper::IsSamplerActive());
 | 
| +  LoggerTestHelper::ResetSamplesTaken();
 | 
| +
 | 
|    Logger::ResumeProfiler(v8::PROFILER_MODULE_CPU, 0);
 | 
|    CHECK(LoggerTestHelper::IsSamplerActive());
 | 
|  
 | 
| @@ -266,19 +257,6 @@ static void CheckThatProfilerWorks(LogBufferMatcher* matcher) {
 | 
|    const char* code_creation = "\ncode-creation,";  // eq. to /^code-creation,/
 | 
|    CHECK_NE(NULL, matcher->Find(code_creation));
 | 
|  
 | 
| -#ifdef __linux__
 | 
| -  // Intercept SIGPROF handler to make sure that the test process
 | 
| -  // had received it. Under load, system can defer it causing test failure.
 | 
| -  // It is important to execute this after 'ResumeProfiler'.
 | 
| -  our_thread = pthread_self();
 | 
| -  was_sigprof_received = false;
 | 
| -  struct sigaction sa;
 | 
| -  sa.sa_sigaction = SigProfSignalHandler;
 | 
| -  sigemptyset(&sa.sa_mask);
 | 
| -  sa.sa_flags = SA_SIGINFO;
 | 
| -  CHECK_EQ(0, sigaction(SIGPROF, &sa, &old_sigprof_handler));
 | 
| -#endif  // __linux__
 | 
| -
 | 
|    // Force compiler to generate new code by parametrizing source.
 | 
|    EmbeddedVector<char, 100> script_src;
 | 
|    i::OS::SNPrintF(script_src,
 | 
| @@ -306,7 +284,7 @@ static void CheckThatProfilerWorks(LogBufferMatcher* matcher) {
 | 
|    CHECK_NE(NULL, matcher->Find(code_creation));
 | 
|    const char* tick = "\ntick,";
 | 
|    const bool ticks_found = matcher->Find(tick) != NULL;
 | 
| -  CHECK_EQ(was_sigprof_received, ticks_found);
 | 
| +  CHECK_EQ(LoggerTestHelper::has_samples_taken(), ticks_found);
 | 
|  }
 | 
|  
 | 
|  
 | 
| 
 |