blob: 72c639ae01844c7b531516fc877034e66619e72c [file] [log] [blame]
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
#ifndef VM_COVERAGE_H_
#define VM_COVERAGE_H_
#include "vm/allocation.h"
#include "vm/flags.h"
namespace dart {
DECLARE_FLAG(charp, coverage_dir);
// Forward declarations.
class Class;
class Function;
template <typename T> class GrowableArray;
class Isolate;
class JSONArray;
class JSONStream;
class Library;
class Script;
class String;
class CodeCoverage : public AllStatic {
public:
static void Write(Isolate* isolate);
static void PrintJSON(Isolate* isolate, JSONStream* stream);
static void PrintJSONForScript(const Script& script, JSONStream* stream);
static void PrintJSONForLibrary(
const Library& lib, const Script& script_filter, JSONStream* stream);
static void PrintJSONForClass(const Class& lib, JSONStream* stream);
private:
static void PrintClass(const Class& cls,
const JSONArray& arr,
const Script& script_filter);
static void CompileAndAdd(const Function& function,
const JSONArray& hits_arr,
const GrowableArray<intptr_t>& pos_to_line);
};
} // namespace dart
#endif // VM_COVERAGE_H_