source: rtems-tools/tester/covoar/CoverageFactory.cc @ 0c4884a

Last change on this file since 0c4884a was 881824f, checked in by Chris Johns <chrisj@…>, on 05/11/18 at 02:24:11

tester/covoar: Remove all exit() calls and throw an rld::error exception.

Add a suitable catch to covoar's main.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*! @file CoverageFactory.cc
2 *  @brief CoverageFactory Implementation
3 *
4 *  This file contains the implementation of the functions supporting
5 *  creating a CoverageReader or CoverageWriter of a specific type
6 *  based upon user configuration.
7 */
8
9#include <stdio.h>
10#include <stdlib.h>
11#include <string.h>
12
13#include <rld.h>
14
15#include "CoverageFactory.h"
16#include "CoverageReaderQEMU.h"
17#include "CoverageReaderRTEMS.h"
18#include "CoverageWriterRTEMS.h"
19#include "CoverageReaderSkyeye.h"
20#include "CoverageWriterSkyeye.h"
21#include "CoverageReaderTSIM.h"
22#include "CoverageWriterTSIM.h"
23
24Coverage::CoverageFormats_t Coverage::CoverageFormatToEnum(
25  const char* const format
26)
27{
28  if (!strcmp( format, "QEMU" ))
29    return COVERAGE_FORMAT_QEMU;
30
31  if (!strcmp( format, "RTEMS" ))
32    return COVERAGE_FORMAT_RTEMS;
33
34  if (!strcmp( format, "Skyeye" ))
35    return COVERAGE_FORMAT_SKYEYE;
36
37  if (!strcmp( format, "TSIM" ))
38    return COVERAGE_FORMAT_TSIM;
39
40  std::ostringstream what;
41  what << format << " is an unknown coverage format "
42       << "(supported formats - QEMU, RTEMS, Skyeye and TSIM)";
43  throw rld::error( what, "Coverage" );
44}
45
46Coverage::CoverageReaderBase* Coverage::CreateCoverageReader(
47  CoverageFormats_t format
48)
49{
50  switch (format) {
51    case COVERAGE_FORMAT_QEMU:
52      return new Coverage::CoverageReaderQEMU();
53    case COVERAGE_FORMAT_RTEMS:
54      return new Coverage::CoverageReaderRTEMS();
55    case COVERAGE_FORMAT_SKYEYE:
56      return new Coverage::CoverageReaderSkyeye();
57    case COVERAGE_FORMAT_TSIM:
58      return new Coverage::CoverageReaderTSIM();
59    default:
60      break;
61  }
62  return NULL;
63}
64
65Coverage::CoverageWriterBase* Coverage::CreateCoverageWriter(
66  CoverageFormats_t format
67)
68{
69  switch (format) {
70    case COVERAGE_FORMAT_RTEMS:
71      return new Coverage::CoverageWriterRTEMS();
72    case COVERAGE_FORMAT_SKYEYE:
73      return new Coverage::CoverageWriterSkyeye();
74    case COVERAGE_FORMAT_TSIM:
75      return new Coverage::CoverageWriterTSIM();
76    default:
77      break;
78  }
79  return NULL;
80}
Note: See TracBrowser for help on using the repository browser.