[Avida-cvs] [avida-svn] r636 - in development/source: testsuites tools
kaben@myxo.css.msu.edu
kaben at myxo.css.msu.edu
Tue May 2 20:53:45 PDT 2006
Author: kaben
Date: 2006-05-02 23:53:45 -0400 (Tue, 02 May 2006)
New Revision: 636
Modified:
development/source/testsuites/CMakeLists.txt
development/source/testsuites/SConscript
development/source/tools/cInitFile.cc
Log:
Added cInitFile unit test "utInitFile_ReadString_after_open_and_close".
Modified: development/source/testsuites/CMakeLists.txt
===================================================================
--- development/source/testsuites/CMakeLists.txt 2006-05-03 03:05:25 UTC (rev 635)
+++ development/source/testsuites/CMakeLists.txt 2006-05-03 03:53:45 UTC (rev 636)
@@ -1,14 +1,25 @@
-#SUBDIRS(unit_testsuites)
INCLUDE_DIRECTORIES(${ALL_INC_DIRS})
-
-ADD_EXECUTABLE(full-unit-tests full-unit-tests.cc)
-IF(MSVC)
- TARGET_LINK_LIBRARIES(full-unit-tests main classification cpu event analyze drivers analyze cpu tools actions main archive boost_serialization)
-ELSE(MSVC)
- TARGET_LINK_LIBRARIES(full-unit-tests main classification cpu event analyze drivers analyze cpu tools actions pthread main archive boost_serialization)
-ENDIF(MSVC)
LINK_DIRECTORIES(${ALL_LIB_DIRS})
-INSTALL_TARGETS(/work full-unit-tests)
-ADD_TEST("full-unit-tests" "${EXECUTABLE_OUTPUT_PATH}/full-unit-tests")
+#
+# This setup assumes that unit test suite source code has the same name as the
+# unit test, e.g.:
+# blah-unit-tests.cc and blah-unit-tests
+#
+
+SET(UNITTEST_SUITES
+ full-unit-tests
+ cInitFile-unit-tests
+)
+FOREACH(TEST_SUITE ${UNITTEST_SUITES})
+ ADD_EXECUTABLE(${TEST_SUITE} ${TEST_SUITE}.cc)
+ IF(MSVC)
+ TARGET_LINK_LIBRARIES(${TEST_SUITE} main classification cpu event analyze drivers analyze cpu tools actions main archive boost_serialization)
+ ELSE(MSVC)
+ TARGET_LINK_LIBRARIES(${TEST_SUITE} main classification cpu event analyze drivers analyze cpu tools actions pthread main archive boost_serialization)
+ ENDIF(MSVC)
+ INSTALL_TARGETS(/work ${TEST_SUITE})
+
+ ADD_TEST("${TEST_SUITE}" "${EXECUTABLE_OUTPUT_PATH}/${TEST_SUITE}")
+ENDFOREACH(TEST_SUITE)
Modified: development/source/testsuites/SConscript
===================================================================
--- development/source/testsuites/SConscript 2006-05-03 03:05:25 UTC (rev 635)
+++ development/source/testsuites/SConscript 2006-05-03 03:53:45 UTC (rev 636)
@@ -35,25 +35,14 @@
Import('environment')
-full_unit_tests = environment.Program('full-unit-tests',
- 'full-unit-tests.cc',
- LIBS = [
- 'main',
- 'classification',
- 'cpu',
- 'event',
- 'analyze',
- 'drivers',
- 'analyze',
- 'cpu',
- 'tools',
- 'actions',
- 'main',
- 'archive',
- 'boost_serialization',
- ],
+full_unit_tests = environment.Program('full-unit-tests', 'full-unit-tests.cc',
+ LIBS = [ 'main', 'classification', 'cpu', 'event', 'analyze', 'drivers', 'analyze', 'cpu', 'tools', 'actions', 'main', 'archive', 'boost_serialization', ],
)
-
Test(environment, full_unit_tests)
+cInitFile_unit_tests = environment.Program('cInitFile-unit-tests', 'cInitFile-unit-tests.cc',
+ LIBS = [ 'main', 'classification', 'cpu', 'event', 'analyze', 'drivers', 'analyze', 'cpu', 'tools', 'actions', 'main', 'archive', 'boost_serialization', ],
+)
+Test(environment, cInitFile_unit_tests)
+
# vim: set ft=python:
Modified: development/source/tools/cInitFile.cc
===================================================================
--- development/source/tools/cInitFile.cc 2006-05-03 03:05:25 UTC (rev 635)
+++ development/source/tools/cInitFile.cc 2006-05-03 03:53:45 UTC (rev 636)
@@ -366,7 +366,8 @@
// Open cInitFile_data.txt for reading.
cInitFile f(data_file_name.c_str());
- // Close file.
+ f.Load();
+ f.Compress();
f.Close();
BOOST_TEST(!f.IsOpen());
@@ -385,6 +386,44 @@
std::remove(data_file_name.c_str());
}
} // utInitFile_archiving_closed_file
+
+ /*
+ Bugfix: cInitFile was returning default value instead of value read
+ from a closed init file, even though file had been open and read.
+ @kgn
+ */
+ namespace utInitFile_ReadString_after_open_and_close {
+ void test(){
+ std::string data_file_name("./utInitFile_ReadString_after_open_and_close.cfg");
+ {
+ std::ofstream data_file(data_file_name.c_str());
+ data_file << "TEST_VALUE BLAH" << std::endl;
+ data_file << std::endl;
+ }
+
+ std::string filename("./cInitFile_serialize_closed_file.xml");
+
+ // Open cInitFile_data.txt for reading.
+ cInitFile f(data_file_name.c_str());
+ f.Load();
+ f.Compress();
+ f.Close();
+
+ const cString keyword("TEST_VALUE");
+ const cString expected_val("BLAH");
+ const cString default_val("ICK");
+ const cString loaded_val(f.ReadString(keyword, default_val));
+ BOOST_TEST(!f.IsOpen());
+ BOOST_TEST(loaded_val == expected_val);
+ std::cout << "utInitFile_ReadString_after_open_and_close:" << std::endl;
+ std::cout << " keyword: " << keyword << std::endl;
+ std::cout << " expected_val: " << expected_val << std::endl;
+ std::cout << " default_val: " << default_val << std::endl;
+ std::cout << " loaded_val: " << loaded_val << std::endl;
+
+ std::remove(data_file_name.c_str());
+ }
+ } // utInitFile_ReadString_after_open_and_close
} // nInitFileTests
void cInitFile::UnitTests(bool full)
@@ -401,6 +440,10 @@
std::cout << "nInitFileTests::utInitFile_archiving_closed_file" << std::endl;
nInitFileTests::utInitFile_archiving_closed_file::test();
}
+ if(1) {
+ std::cout << "nInitFileTests::utInitFile_ReadString_after_open_and_close" << std::endl;
+ nInitFileTests::utInitFile_ReadString_after_open_and_close::test();
+ }
}
#endif // ENABLE_UNIT_TESTS
More information about the Avida-cvs
mailing list