Update of /cvsroot/nsclspectcl/SpecTcl/TreeParam In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30467/TreeParam Modified Files: Tag: SpecTcl-3-0_developmentreally CTreeVariableCommand.cpp Makefile.am SpectrumGenerator.tcl TreeVariableCommandTests.cpp testStubs.cpp Log Message: Fix some little issues in treeparameter: - Writing treevariables, and treeparameters that don't have units does not correctly create a command with 'empty units'. Fixed. - Since old files may be like that, Allow the units parameter of treevariable -set to be optional. - Enable build/run of unit tests for treeparameter so regression testing could be done. Index: CTreeVariableCommand.cpp =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/TreeParam/CTreeVariableCommand.cpp,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** CTreeVariableCommand.cpp 16 Apr 2005 18:47:14 -0000 1.1.2.2 --- CTreeVariableCommand.cpp 21 Jun 2005 18:48:40 -0000 1.1.2.3 *************** *** 243,247 **** // Check the number of parameters is ok... ! if (argc != 3) { rResult = "Incorrect number of command line parameters in treevariable -set\n"; rResult += Usage(); --- 243,247 ---- // Check the number of parameters is ok... ! if (argc < 2) { rResult = "Incorrect number of command line parameters in treevariable -set\n"; rResult += Usage(); *************** *** 253,257 **** string name(argv[0]); - string units(argv[2]); double value; --- 253,256 ---- *************** *** 266,269 **** --- 265,285 ---- return TCL_ERROR; } + // Get the units ("" if not supplied). + + string units(""); + argv += 2; + argc -= 2; + if(argc) { + units = *argv; + argc--; + argv++; + } + if(argc) { + rResult = "Incorrect number of command line parameters in treevariable -set\n"; + rResult += Usage(); + return TCL_ERROR; + } + + // Locate the variable to modify: *************** *** 458,462 **** result = "Usage\n"; result += " treevariable -list ?pattern?\n"; ! result += " treevariable -set name value units\n"; result += " treevariable -check name\n"; result += " treevariable -setchanged name\n"; --- 474,478 ---- result = "Usage\n"; result += " treevariable -list ?pattern?\n"; ! result += " treevariable -set name value ?units?\n"; result += " treevariable -check name\n"; result += " treevariable -setchanged name\n"; Index: testStubs.cpp =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/TreeParam/testStubs.cpp,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.2 diff -C2 -d -r1.1.2.1 -r1.1.2.2 *** testStubs.cpp 15 Apr 2005 13:46:18 -0000 1.1.2.1 --- testStubs.cpp 21 Jun 2005 18:48:41 -0000 1.1.2.2 *************** *** 106,115 **** TreeTestSupport::ThrowIfNoParameter(CTreeParameter& param, const char* pd) { ! param.ThrowIfNoParameter(pd); } void TreeTestSupport::ThrowIfNoEvent(CTreeParameter& param, const char* pd) { ! param.ThrowIfNoEvent(pd); } --- 106,117 ---- TreeTestSupport::ThrowIfNoParameter(CTreeParameter& param, const char* pd) { ! string spd(pd); ! param.ThrowIfNoParameter(spd); } void TreeTestSupport::ThrowIfNoEvent(CTreeParameter& param, const char* pd) { ! string spd(pd); ! param.ThrowIfNoEvent(spd); } Index: Makefile.am =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/TreeParam/Makefile.am,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** Makefile.am 16 Apr 2005 18:47:15 -0000 1.1.2.2 --- Makefile.am 21 Jun 2005 18:48:40 -0000 1.1.2.3 *************** *** 75,76 **** --- 75,99 ---- $(INSTALL_PROGRAM) *.tcl $(SCRIPTDEST) + + if CPPUNIT + + noinst_PROGRAMS=TestRunner + + TestRunner_SOURCES = ListTest.cpp SetWidthTest.cpp TreeParameterTest.cpp \ + MatchTest.cpp TestRunner.cpp TreeVariableArrayTests.cpp \ + SetAllVTest.cpp TestSuite.cpp TreeVariableCommandTests.cpp \ + SetChansTest.cpp TreeExceptionTest.cpp TreeVariablePropertyTests.cpp \ + SetLimitsTest.cpp TreeParamArrayTest.cpp TreeVariableTests.cpp \ + SetUnitsTest.cpp TreeParamCommandTest.cpp UncheckTest.cpp testStubs.cpp \ + $(libTreeParam_la_SOURCES) + + TestRunner_LDFLAGS = -L@top_srcdir@/TCL -ltclPlus \ + -L@top_srcdir@/NSCLException -lException \ + -L@top_srcdir@/Events -lAnalysis \ + $(TCL_LDFLAGS) $(CPPUNIT_LDFLAGS) + + noinst_HEADERS = Asserts.h + + TESTS=./TestRunner + + endif Index: SpectrumGenerator.tcl =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/TreeParam/SpectrumGenerator.tcl,v retrieving revision 1.1.2.7 retrieving revision 1.1.2.8 diff -C2 -d -r1.1.2.7 -r1.1.2.8 *** SpectrumGenerator.tcl 27 May 2005 18:07:19 -0000 1.1.2.7 --- SpectrumGenerator.tcl 21 Jun 2005 18:48:40 -0000 1.1.2.8 *************** *** 1265,1269 **** set increment [lindex $treeparameter 4] set unit [lindex $treeparameter 5] ! puts $handle "treeparameter -set $name $bins $start $stop $increment $unit" } puts $handle "# TreeVariable changes from C++ code" --- 1265,1269 ---- set increment [lindex $treeparameter 4] set unit [lindex $treeparameter 5] ! puts $handle "[list treeparameter -set $name $bins $start $stop $increment $unit]" } puts $handle "# TreeVariable changes from C++ code" *************** *** 1272,1276 **** set value [lindex $treevariable 1] set unit [lindex $treevariable 2] ! puts $handle "treevariable -set $name $value $unit" } puts $handle "# Parameter page" --- 1272,1276 ---- set value [lindex $treevariable 1] set unit [lindex $treevariable 2] ! puts $handle "[list treevariable -set $name $value $unit]" } puts $handle "# Parameter page" Index: TreeVariableCommandTests.cpp =================================================================== RCS file: /cvsroot/nsclspectcl/SpecTcl/TreeParam/TreeVariableCommandTests.cpp,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.3 diff -C2 -d -r1.1.2.2 -r1.1.2.3 *** TreeVariableCommandTests.cpp 16 Apr 2005 18:47:15 -0000 1.1.2.2 --- TreeVariableCommandTests.cpp 21 Jun 2005 18:48:41 -0000 1.1.2.3 *************** *** 32,35 **** --- 32,36 ---- CPPUNIT_TEST(SetChanged); CPPUNIT_TEST(SetProperties); + CPPUNIT_TEST(SetNoUnits); // Set omitting units. CPPUNIT_TEST(CheckChanged); CPPUNIT_TEST(Usage); *************** *** 69,72 **** --- 70,74 ---- void SetChanged(); void SetProperties(); + void SetNoUnits(); void CheckChanged(); void Usage(); *************** *** 378,382 **** EQMSG("indiv good set via dispatch", TCL_OK, status); EQMSG("Indiv value", 2.22, m_pIndividual->getValue()); ! EQMSG("Indiv units", "in", "in"); m_pResult->Clear(); --- 380,384 ---- EQMSG("indiv good set via dispatch", TCL_OK, status); EQMSG("Indiv value", 2.22, m_pIndividual->getValue()); ! EQMSG("Indiv units", string("in"), m_pIndividual->getUnit()); m_pResult->Clear(); *************** *** 385,388 **** --- 387,405 ---- } + + // New functionality test: + // Check for treevariableset without supplying units: + // + void + TreeVarCommandTest::SetNoUnits() + { + char* argv[4] = {"treevariable", "-set", "indiv", "2.22"}; + + int status = (*m_pCommand)(*m_pInterp, *m_pResult, 4, argv); + EQMSG("Nounits set status", TCL_OK, status); + EQMSG("Nounits set value", 2.22, m_pIndividual->getValue()); + EQMSG("Nounits set units", string(""), m_pIndividual->getUnit()); + } + // Test for: // function handles too few arguments. *************** *** 449,453 **** static string usagesb("Usage\n\ treevariable -list ?pattern?\n\ ! treevariable -set name value units\n\ treevariable -check name\n\ treevariable -setchanged name\n\ --- 466,470 ---- static string usagesb("Usage\n\ treevariable -list ?pattern?\n\ ! treevariable -set name value ?units?\n\ treevariable -check name\n\ treevariable -setchanged name\n\ *************** *** 484,488 **** // Just modifying the value won't fire traces... we need to -firetraces too: ! char* setargv[5] = {"treevariable", "-set", "indiv", "in", "2.22"}; int status = (*m_pCommand)(*m_pInterp, *m_pResult, 5, setargv); EQMSG("set status", TCL_OK, status); --- 501,505 ---- // Just modifying the value won't fire traces... we need to -firetraces too: ! char* setargv[5] = {"treevariable", "-set", "indiv", "2.22", "in", }; int status = (*m_pCommand)(*m_pInterp, *m_pResult, 5, setargv); EQMSG("set status", TCL_OK, status); |