operations_fixture.hpp
Go to the documentation of this file.
00001 /***************************************************************************
00002   tag: The SourceWorks  Tue Sep 7 00:54:57 CEST 2010  operations_fixture.hpp
00003 
00004                         operations_fixture.hpp -  description
00005                            -------------------
00006     begin                : Tue September 07 2010
00007     copyright            : (C) 2010 The SourceWorks
00008     email                : peter@thesourceworks.com
00009 
00010  ***************************************************************************
00011  *                                                                         *
00012  *   This program is free software; you can redistribute it and/or modify  *
00013  *   it under the terms of the GNU General Public License as published by  *
00014  *   the Free Software Foundation; either version 2 of the License, or     *
00015  *   (at your option) any later version.                                   *
00016  *                                                                         *
00017  ***************************************************************************/
00018 
00019 
00020 
00021 #include <iostream>
00022 #include <TaskContext.hpp>
00023 #include "unit.hpp"
00024 
00025 using namespace std;
00026 using namespace boost;
00027 using namespace RTT;
00028 using namespace RTT::detail;
00029 
00034 class RTT_UNIT_API OperationsFixture {
00035 public:
00036     OperationsFixture();
00037 
00038     TaskContext* tc, *caller;
00039 
00040     // ref/const-ref tests:
00041     double ret;
00042     double& m0r() { return ret; }
00043     const double& m0cr() { return ret; }
00044 
00045     // test const std::string& argument for command_ds
00046     bool comstr(const std::string& cs) { return !cs.empty(); }
00047 
00048     double m1r(double& a) { a = 2*a; return a; }
00049     double m1cr(const double& a) { return a; }
00050 
00051     // plain argument tests:
00052     void   vm0(void) { return; }
00053     double m0(void) { return -1.0; }
00054     double m1(int i) { if (i ==1) return -2.0; else return 2.0; }
00055     double m2(int i, double d) { if ( i == 1 && d == 2.0 ) return -3.0; else return 3.0; }
00056     double m3(int i, double d, bool c) { if ( i == 1 && d == 2.0 && c == true) return -4.0; else return 4.0; }
00057     double m4(int i, double d, bool c, std::string s) { if ( i == 1 && d == 2.0 && c == true && s == "hello") return -5.0; else return 5.0;  }
00058     double m5(int i, double d, bool c, std::string s, float f) { if ( i == 1 && d == 2.0 && c == true && s == "hello" && f == 5.0f) return -6.0; else return 6.0;  }
00059     double m6(int i, double d, bool c, std::string s, float f, char h) { if ( i == 1 && d == 2.0 && c == true && s == "hello" && f == 5.0f && h == 'a') return -7.0; else return 7.0;  }
00060     double m7(int i, double d, bool c, std::string s, float f, char h, unsigned int st) { if ( i == 1 && d == 2.0 && c == true && s == "hello" && f == 5.0f && h == 'a' && st == 7) return -8.0; else return 8.0;  }
00061 
00062     //exception tests:
00063     void m0except(void) { throw std::runtime_error("exception"); }
00064 
00065     void print(const std::string& what) { cout << "print: " << what <<endl; }
00066     void printNumber(const std::string& what, int n) { cout << "print: " << what << n << endl; }
00067 
00068     bool fail() {
00069         throw false;
00070         return true; // should be ignored anyway.
00071     }
00072 
00073     bool good() {
00074         return true;
00075     }
00076 
00077     bool assertBool(bool b) {
00078         if (!b) throw b;
00079         return b;
00080     }
00081 
00082     bool isTrue(bool b) {
00083         return b;
00084     }
00085 
00086     bool assertEqual(int a, int b)
00087     {
00088         if (a != b) {
00089             cerr << "AssertEqual failed: a != b " << a << " != " << b << "." << endl;
00090             throw b;
00091         }
00092         return a == b;
00093     }
00094     bool assertMsg( bool b, const std::string& msg) {
00095         if ( b == false ) {
00096             cout << "Asserted :" << msg << endl;
00097             throw b;
00098         }
00099         return true; // allow to continue to check other commands.
00100     }
00101     int increase() { return ++i;}
00102     void resetI() { i = 0; }
00103     int getI() const { return i; }
00104     int i;
00105 
00106 
00107     ~OperationsFixture();
00108 
00109     void createOperationCallerFactories(TaskContext* target);
00110     void createOperationCallerFactories0(TaskContext* target);
00111     void createOperationCallerFactories1(TaskContext* target);
00112     void createOperationCallerFactories2(TaskContext* target);
00113     void createOperationCallerFactories3(TaskContext* target);
00114     void createOperationCallerFactories4(TaskContext* target);
00115     void createOperationCallerFactories5(TaskContext* target);
00116     void createOperationCallerFactories6(TaskContext* target);
00117     void createOperationCallerFactories7(TaskContext* target);
00118 };


rtt
Author(s): RTT Developers
autogenerated on Wed Aug 26 2015 16:15:50