/* CommandArgument(Test) - checking storage of specifically typed command arguments Copyright (C) Lumiera.org 2009, Hermann Vosseler This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * *****************************************************/ #include "lib/test/run.hpp" #include "lib/test/test-helper.hpp" //#include "proc/asset/media.hpp" //#include "proc/mobject/session.hpp" //#include "proc/mobject/session/edl.hpp" //#include "proc/mobject/session/testclip.hpp" //#include "proc/mobject/test-dummy-mobject.hpp" //#include "lib/p.hpp" //#include "proc/mobject/placement.hpp" //#include "proc/mobject/placement-index.hpp" //#include "proc/mobject/explicitplacement.hpp" #include "proc/control/command-argument-holder.hpp" #include "lib/scoped-ptrvect.hpp" #include "lib/lumitime-fmt.hpp" //#include "lib/meta/typelist.hpp" //#include "lib/meta/tuple.hpp" #include "lib/util.hpp" //#include #include #include #include #include #include //using std::tr1::bind; //using std::tr1::placeholders::_1; //using std::tr1::placeholders::_2; //using std::tr1::function; using util::isnil; //using util::and_all; using util::for_each; using boost::format; using lumiera::Time; //using util::contains; using std::string; using std::rand; using std::ostream; using std::ostringstream; using std::cout; using std::endl; namespace control { namespace test { using lib::test::showSizeof; using lib::test::randTime; // using session::test::TestClip; // using lumiera::P; // using namespace lumiera::typelist; // using lumiera::typelist::Tuple; // using control::CmdClosure; namespace { // test helpers ostringstream protocol; ///< used to verify the test function calls template struct Tracker { TY element_; static int instanceCnt; Tracker (TY init = TY()) : element_(init) { ++instanceCnt; } Tracker (Tracker const& otr) : element_(otr.element_) { ++instanceCnt; } ~Tracker() { --instanceCnt; } TY& operator* () { return element_; } friend ostream& operator<< (ostream& out, const Tracker& tra) { return out << tra.element_; } operator string() const { return element_; } }; template int Tracker::instanceCnt (0); void doIt (Tracker