Home | History | Annotate | Download | only in base
      1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROME_TEST_BASE_TRACING_H_
      6 #define CHROME_TEST_BASE_TRACING_H_
      7 
      8 #include <string>
      9 
     10 #include "base/compiler_specific.h"
     11 #include "base/time/time.h"
     12 
     13 namespace tracing {
     14 
     15 // Called from UI thread.
     16 // Begin tracing specified category_patterns on the browser.
     17 // |category_patterns| is a comma-delimited list of category wildcards.
     18 // A category pattern can have an optional '-' prefix to make  categories with
     19 // matching categorys excluded. Either all category_patterns must be included
     20 // or all must be excluded.
     21 //
     22 // Example: BeginTracing("test_MyTest*");
     23 // Example: BeginTracing("test_MyTest*,test_OtherStuff");
     24 // Example: BeginTracing("-excluded_category1,-excluded_category2");
     25 //
     26 // See base/debug/trace_event.h for documentation of included and excluded
     27 // category_patterns.
     28 bool BeginTracing(const std::string& category_patterns) WARN_UNUSED_RESULT;
     29 
     30 // Called from UI thread.
     31 // Specify a watch event in order to use the WaitForWatchEvent function.
     32 // After |num_occurrences| of the given event have been seen on a particular
     33 // process, WaitForWatchEvent will return.
     34 bool BeginTracingWithWatch(const std::string& category_patterns,
     35                            const std::string& category_name,
     36                            const std::string& event_name,
     37                            int num_occurrences) WARN_UNUSED_RESULT;
     38 
     39 // Called from UI thread.
     40 // Wait on the event set with BeginTracingWithWatch. If non-zero, return after
     41 // |timeout| regardless of watch event notification. Returns true if watch event
     42 // occurred, false if it timed out.
     43 bool WaitForWatchEvent(base::TimeDelta timeout) WARN_UNUSED_RESULT;
     44 
     45 // Called from UI thread.
     46 // End trace and collect the trace output as a json string.
     47 bool EndTracing(std::string* json_trace_output) WARN_UNUSED_RESULT;
     48 
     49 }  // namespace tracing
     50 
     51 #endif  // CHROME_TEST_BASE_TRACING_H_
     52