SourceCoverageViewText.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //===- SourceCoverageViewText.h - A text-based code coverage view ---------===//
  2. //
  3. // The LLVM Compiler Infrastructure
  4. //
  5. // This file is distributed under the University of Illinois Open Source
  6. // License. See LICENSE.TXT for details.
  7. //
  8. //===----------------------------------------------------------------------===//
  9. ///
  10. /// \file This file defines the interface to the text-based coverage renderer.
  11. ///
  12. //===----------------------------------------------------------------------===//
  13. #ifndef LLVM_COV_SOURCECOVERAGEVIEWTEXT_H
  14. #define LLVM_COV_SOURCECOVERAGEVIEWTEXT_H
  15. #include "SourceCoverageView.h"
  16. namespace llvm {
  17. /// \brief A code coverage view which supports text-based rendering.
  18. class SourceCoverageViewText : public SourceCoverageView {
  19. void renderSourceName(raw_ostream &OS) override;
  20. void renderLinePrefix(raw_ostream &OS, unsigned ViewDepth) override;
  21. void renderViewDivider(raw_ostream &OS, unsigned ViewDepth) override;
  22. void renderLine(raw_ostream &OS, LineRef L,
  23. const coverage::CoverageSegment *WrappedSegment,
  24. CoverageSegmentArray Segments, unsigned ExpansionCol,
  25. unsigned ViewDepth) override;
  26. unsigned renderExpansionView(raw_ostream &OS, ExpansionView &ESV,
  27. Optional<LineRef> FirstLine,
  28. unsigned ExpansionCol,
  29. const coverage::CoverageSegment *WrappedSegment,
  30. CoverageSegmentArray LineSegments,
  31. unsigned ViewDepth) override;
  32. void renderInstantiationView(raw_ostream &OS, InstantiationView &ISV,
  33. unsigned ViewDepth) override;
  34. void renderLineCoverageColumn(raw_ostream &OS,
  35. const LineCoverageStats &Line) override;
  36. void renderLineNumberColumn(raw_ostream &OS, unsigned LineNo) override;
  37. void renderRegionMarkers(raw_ostream &OS, CoverageSegmentArray Segments,
  38. unsigned ViewDepth) override;
  39. public:
  40. SourceCoverageViewText(StringRef SourceName, const MemoryBuffer &File,
  41. const CoverageViewOptions &Options,
  42. coverage::CoverageData &&CoverageInfo)
  43. : SourceCoverageView(SourceName, File, Options, std::move(CoverageInfo)) {
  44. }
  45. };
  46. } // namespace llvm
  47. #endif // LLVM_COV_SOURCECOVERAGEVIEWTEXT_H