Command.cc Source File

Back to the index.

Command.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2008-2010 Anders Gavare. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * 3. The name of the author may not be used to endorse or promote products
13  * derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25  * SUCH DAMAGE.
26  */
27 
28 #include "Command.h"
29 #include "GXemul.h"
30 
31 
32 Command::Command(const string& name, const string& argumentFormat)
33  : m_name(name)
34  , m_argumentFormat(argumentFormat)
35 {
36 }
37 
38 
40 {
41 }
42 
43 
44 /*****************************************************************************/
45 
46 
47 #ifdef WITHUNITTESTS
48 
49 /**
50  * \brief A dummy Command, for unit testing purposes
51  */
52 class DummyCommand
53  : public Command
54 {
55 public:
56  DummyCommand(int& valueRef)
57  : Command("dummycommand", "[args]")
58  , m_value(valueRef)
59  {
60  }
61 
62  ~DummyCommand()
63  {
64  }
65 
66  bool Execute(GXemul& gxemul, const vector<string>& arguments)
67  {
68  m_value ++;
69  return true;
70  }
71 
72  string GetShortDescription() const
73  {
74  return "A dummy command used for unit testing.";
75  }
76 
77  string GetLongDescription() const
78  {
79  return "This is just a dummy command used for unit testing.";
80  }
81 
82 private:
83  int& m_value;
84 };
85 
86 static void Test_Command_DummyCommand()
87 {
88  GXemul gxemulDummy;
89  vector<string> dummyArgs;
90 
91  int dummyInt = 0;
92  refcount_ptr<Command> cmd = new DummyCommand(dummyInt);
93 
94  dummyInt = 42;
95 
96  UnitTest::Assert("dummyInt should initially be 42", dummyInt == 42);
97 
98  UnitTest::Assert("command should have succeeded",
99  cmd->Execute(gxemulDummy, dummyArgs));
100 
101  UnitTest::Assert("dummyInt should now be 43", dummyInt == 43);
102 
103 }
104 
106 {
107  UNITTEST(Test_Command_DummyCommand);
108 }
109 
110 #endif
GXemul
The main emulator class.
Definition: GXemul.h:54
Command.h
refcount_ptr< Command >
UNITTESTS
#define UNITTESTS(class)
Helper for unit test case execution.
Definition: UnitTest.h:184
Command
A Command is a named function, executed by the CommandInterpreter.
Definition: Command.h:48
Command::Command
Command(const string &name, const string &argumentFormat)
Constructs a Command.
Definition: Command.cc:32
Command::~Command
virtual ~Command()=0
Definition: Command.cc:39
cmd
Definition: debugger_cmds.cc:1189
UNITTEST
#define UNITTEST(functionname)
Helper for unit test case execution.
Definition: UnitTest.h:217
UnitTest::Assert
static void Assert(const string &strFailMessage, bool condition)
Asserts that a boolean condition is correct.
Definition: UnitTest.cc:40
Command::GetLongDescription
virtual string GetLongDescription() const =0
Returns a long description/help message for the command.
Command::Execute
virtual bool Execute(GXemul &gxemul, const vector< string > &arguments)=0
Executes the command on a given GXemul instance.
Command::GetShortDescription
virtual string GetShortDescription() const =0
Returns a short (one-line) description of the command.
GXemul.h

Generated on Tue Mar 24 2020 14:04:48 for GXemul by doxygen 1.8.17