From: Raimar S. <rai...@ui...> - 2013-12-19 02:40:17
|
Hi András, I have integrated a new testsuite into cmake. Please clone the testing branch of the monolithic repository from the private repository: git clone -b testing --recursive gi...@ge...:cppqed/complete.git Then build everything with the monolithic build method (using the toplevel CMakeLists.txt file). Please make sure that no outside components are picked up by cmake, probably it is best to delete ~/.cmake. Afterwards, in the build directory run ctest -jN where N is the number of cores. Please let me know if this all works and if the tests pass. A few notes to the structure now, an I will try to write a complete documentation soon. The testsuite uses ctest from within cmake, which means the complete testsuite can be run by either 'make test' or the ctest command from above. The ctest command has the advantage of being able to run the tests in parallel with the -j switch. CTest itself is rather 'dumb', basically one only has to specify a test name and a test command including command line options in the CMakeLists.txt file. In our case, the command is either the executable target[1] named 'tester', which we have built with the boost unittest framework[2], or a python script[3] which I wrote as test driver. The former is for testing code snippets, your boost tests can be imported that way. The latter is basically for running scripts. At the moment the testdriver.py is capable of: * running a C++QED script in all modes (single, ensemble, master) * continuing a script * comparing the outcome of a C++QED script to saved and version controlled output in Testing/expected * comparing the outcome of a C++QED script to the outcome of another script * check that the compilation of a cmake target fails in an expected way[4] and the functionality can be easily extended. The behavior of the testdriver is controlled by command line options and configuration files testdriver.conf in the subdirectories. Note that neither 'make test' nor 'ctest' will trigger a re-configuration or re-compilation in the case of changed CMakeLists.txt files or changed source files. To overcome this problem I have defined the target 'check'. This should depend on everything essential and therefore trigger re-configuration and compilation. Every subdirectory of the testsuite (at the moment boost, compilefail,continue and run) has its own 'check_subdir' target, and additionally every single test has its own target. This is very convenient when developing or debugging a feature, one does not have to run the whole testsuite all the time but can fine-tune which tests to run by adding them to the buildset in kdevelop. Additionally, all the check* targets are a lot more verbose, because they use ctest -v internally. The next steps: * documentation of testdriver.py, the testdriver.conf syntax and how to add new tests to cmake * making Testing a standalone project, at the moment the testsuite is only available in monolithic builds * import all the other boost unittests which exist * import the other CompositeError files into the compilefail submodule (and I think the CompositeError2 which I used so far gives additional compilation errors which should not exist, but I'm not sure. Please check the output of make CompositeError2.) * write more tests to cover a broader range of features and design promises * integrate the physics testsuite * anything else? Best regards Raimar -------- [1] http://bit.ly/1gHiTC0 [2] http://bit.ly/1gHjFyW [3] http://bit.ly/1gHj2FA [4] http://bit.ly/1gHlPi4 |
From: Raimar S. <rai...@ui...> - 2013-12-19 11:57:07
|
There was a commit not pushed to sourceforge in CCQEDcore, this is now fixed. Raimar On Thursday, December 19, 2013 03:40:42 you wrote: Hi András, I have integrated a new testsuite into cmake. Please clone the testing branch of the monolithic repository from the private repository: git clone -b testing --recursive gi...@ge...:cppqed/complete.git Then build everything with the monolithic build method (using the toplevel CMakeLists.txt file). Please make sure that no outside components are picked up by cmake, probably it is best to delete ~/.cmake. Afterwards, in the build directory run ctest -jN where N is the number of cores. Please let me know if this all works and if the tests pass. A few notes to the structure now, an I will try to write a complete documentation soon. The testsuite uses ctest from within cmake, which means the complete testsuite can be run by either 'make test' or the ctest command from above. The ctest command has the advantage of being able to run the tests in parallel with the -j switch. CTest itself is rather 'dumb', basically one only has to specify a test name and a test command including command line options in the CMakeLists.txt file. In our case, the command is either the executable target[1] named 'tester', which we have built with the boost unittest framework[2], or a python script[3] which I wrote as test driver. The former is for testing code snippets, your boost tests can be imported that way. The latter is basically for running scripts. At the moment the testdriver.py is capable of: * running a C++QED script in all modes (single, ensemble, master) * continuing a script * comparing the outcome of a C++QED script to saved and version controlled output in Testing/expected * comparing the outcome of a C++QED script to the outcome of another script * check that the compilation of a cmake target fails in an expected way[4] and the functionality can be easily extended. The behavior of the testdriver is controlled by command line options and configuration files testdriver.conf in the subdirectories. Note that neither 'make test' nor 'ctest' will trigger a re-configuration or re-compilation in the case of changed CMakeLists.txt files or changed source files. To overcome this problem I have defined the target 'check'. This should depend on everything essential and therefore trigger re-configuration and compilation. Every subdirectory of the testsuite (at the moment boost, compilefail,continue and run) has its own 'check_subdir' target, and additionally every single test has its own target. This is very convenient when developing or debugging a feature, one does not have to run the whole testsuite all the time but can fine-tune which tests to run by adding them to the buildset in kdevelop. Additionally, all the check* targets are a lot more verbose, because they use ctest -v internally. The next steps: * documentation of testdriver.py, the testdriver.conf syntax and how to add new tests to cmake * making Testing a standalone project, at the moment the testsuite is only available in monolithic builds * import all the other boost unittests which exist * import the other CompositeError files into the compilefail submodule (and I think the CompositeError2 which I used so far gives additional compilation errors which should not exist, but I'm not sure. Please check the output of make CompositeError2.) * write more tests to cover a broader range of features and design promises * integrate the physics testsuite * anything else? Best regards Raimar -------- [1] http://bit.ly/1gHiTC0 [2] http://bit.ly/1gHjFyW [3] http://bit.ly/1gHj2FA [4] http://bit.ly/1gHlPi4 |
From: Andras V. <and...@ui...> - 2013-12-19 16:45:04
|
Hi Raimar, Again, this looks like a great achievement. Please allow me a few days for delving into it. Just one note: instead of creating a separate project Testing, we could consider leaving the testsuite in the meta-repository C++QED. In my mind, this is similar to the overall pieces of documentation that I mentioned earlier, which span over the whole project core-elements-scripts (or at least the first two). Best regards, András On Thu, Dec 19, 2013 at 12:55 PM, Raimar Sandner <rai...@ui...>wrote: > There was a commit not pushed to sourceforge in CCQEDcore, this is now > fixed. > > > > Raimar > > > > On Thursday, December 19, 2013 03:40:42 you wrote: > > Hi András, > > > > I have integrated a new testsuite into cmake. > > > > Please clone the testing branch of the monolithic repository from the > private repository: > > > > git clone -b testing --recursive gi...@ge...: > cppqed/complete.git > > > > Then build everything with the monolithic build method (using the toplevel > CMakeLists.txt file). Please make sure that no outside components are > picked up by cmake, probably it is best to delete ~/.cmake. Afterwards, in > the build directory run ctest -jN where N is the number of cores. Please > let me know if this all works and if the tests pass. > > > > A few notes to the structure now, an I will try to write a complete > documentation soon. > > > > The testsuite uses ctest from within cmake, which means the complete > testsuite can be run by either 'make test' or the ctest command from above. > The ctest command has the advantage of being able to run the tests in > parallel with the -j switch. CTest itself is rather 'dumb', basically one > only has to specify a test name and a test command including command line > options in the CMakeLists.txt file. > > > > In our case, the command is either the executable target<http://bit.ly/1gHiTC0>named 'tester', which we have built with the boost > unittest framework <http://bit.ly/1gHjFyW>, or a python script<http://bit.ly/1gHj2FA>which I wrote as test driver. The former is for testing code snippets, your > boost tests can be imported that way. The latter is basically for running > scripts. At the moment the testdriver.py is capable of: > > > > * running a C++QED script in all modes (single, ensemble, master) > > * continuing a script > > * comparing the outcome of a C++QED script to saved and version controlled > output in Testing/expected > > * comparing the outcome of a C++QED script to the outcome of another script > > * check that the compilation of a cmake target fails in an expected way<http://bit.ly/1gHlPi4> > > > > and the functionality can be easily extended. The behavior of the > testdriver is controlled by command line options and configuration files > testdriver.conf in the subdirectories. > > > > Note that neither 'make test' nor 'ctest' will trigger a re-configuration > or re-compilation in the case of changed CMakeLists.txt files or changed > source files. To overcome this problem I have defined the target 'check'. > This should depend on everything essential and therefore trigger > re-configuration and compilation. Every subdirectory of the testsuite (at > the moment boost, compilefail,continue and run) has its own 'check_subdir' > target, and additionally every single test has its own target. This is very > convenient when developing or debugging a feature, one does not have to run > the whole testsuite all the time but can fine-tune which tests to run by > adding them to the buildset in kdevelop. Additionally, all the check* > targets are a lot more verbose, because they use ctest -v internally. > > > > The next steps: > > > > * documentation of testdriver.py, the testdriver.conf syntax and how to > add new tests to cmake > > * making Testing a standalone project, at the moment the testsuite is only > available in monolithic builds > > * import all the other boost unittests which exist > > * import the other CompositeError files into the compilefail submodule > (and I think the CompositeError2 which I used so far gives additional > compilation errors which should not exist, but I'm not sure. Please check > the output of make CompositeError2.) > > * write more tests to cover a broader range of features and design promises > > * integrate the physics testsuite > > * anything else? > > > > Best regards > > Raimar > > > > > > ------------------------------------------------------------------------------ > Rapidly troubleshoot problems before they affect your business. Most IT > organizations don't have a clear picture of how application performance > affects their revenue. With AppDynamics, you get 100% visibility into your > Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics > Pro! > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk > _______________________________________________ > Cppqed-support mailing list > Cpp...@li... > https://lists.sourceforge.net/lists/listinfo/cppqed-support > > |
From: Raimar S. <rai...@ui...> - 2013-12-19 18:13:08
|
Hi András, sure take your time, I hope you will also find it useful. For me it has already helped to discover some bugs which would otherwise have gone unnoticed. If you don't mind I will already merge it to Development (only affects the super project, anyway), so that I don't have to switch branches so often. This will then also introduce cpypyqed to the super repository. Best regards Raimar On Thursday, December 19, 2013 17:44:35 Andras Vukics wrote: > Hi Raimar, > Again, this looks like a great achievement. Please allow me a few days for > delving into it. > Just one note: instead of creating a separate project Testing, we could > consider leaving the testsuite in the meta-repository C++QED. In my mind, > this is similar to the overall pieces of documentation that I mentioned > earlier, which span over the whole project core-elements-scripts (or at > least the first two). > Best regards, > András > > > > On Thu, Dec 19, 2013 at 12:55 PM, Raimar Sandner > > <rai...@ui...>wrote: > > There was a commit not pushed to sourceforge in CCQEDcore, this is now > > > > fixed. > > > > > > > > Raimar > > > > > > > > On Thursday, December 19, 2013 03:40:42 you wrote: > > > > Hi András, > > > > > > > > I have integrated a new testsuite into cmake. > > > > > > > > Please clone the testing branch of the monolithic repository from the > > private repository: > > > > > > > > git clone -b testing --recursive gi...@ge...: > > cppqed/complete.git > > > > > > > > Then build everything with the monolithic build method (using the toplevel > > CMakeLists.txt file). Please make sure that no outside components are > > picked up by cmake, probably it is best to delete ~/.cmake. Afterwards, in > > the build directory run ctest -jN where N is the number of cores. Please > > let me know if this all works and if the tests pass. > > > > > > > > A few notes to the structure now, an I will try to write a complete > > documentation soon. > > > > > > > > The testsuite uses ctest from within cmake, which means the complete > > testsuite can be run by either 'make test' or the ctest command from > > above. > > The ctest command has the advantage of being able to run the tests in > > parallel with the -j switch. CTest itself is rather 'dumb', basically one > > only has to specify a test name and a test command including command line > > options in the CMakeLists.txt file. > > > > > > > > In our case, the command is either the executable > > target<http://bit.ly/1gHiTC0>named 'tester', which we have built with the > > boost unittest framework <http://bit.ly/1gHjFyW>, or a python > > script<http://bit.ly/1gHj2FA>which I wrote as test driver. The former is > > for testing code snippets, your boost tests can be imported that way. The > > latter is basically for running scripts. At the moment the testdriver.py > > is capable of: > > > > > > > > * running a C++QED script in all modes (single, ensemble, master) > > > > * continuing a script > > > > * comparing the outcome of a C++QED script to saved and version controlled > > output in Testing/expected > > > > * comparing the outcome of a C++QED script to the outcome of another > > script > > > > * check that the compilation of a cmake target fails in an expected > > way<http://bit.ly/1gHlPi4> > > > > > > > > and the functionality can be easily extended. The behavior of the > > testdriver is controlled by command line options and configuration files > > testdriver.conf in the subdirectories. > > > > > > > > Note that neither 'make test' nor 'ctest' will trigger a re-configuration > > or re-compilation in the case of changed CMakeLists.txt files or changed > > source files. To overcome this problem I have defined the target 'check'. > > This should depend on everything essential and therefore trigger > > re-configuration and compilation. Every subdirectory of the testsuite (at > > the moment boost, compilefail,continue and run) has its own 'check_subdir' > > target, and additionally every single test has its own target. This is > > very > > convenient when developing or debugging a feature, one does not have to > > run > > the whole testsuite all the time but can fine-tune which tests to run by > > adding them to the buildset in kdevelop. Additionally, all the check* > > targets are a lot more verbose, because they use ctest -v internally. > > > > > > > > The next steps: > > > > > > > > * documentation of testdriver.py, the testdriver.conf syntax and how to > > add new tests to cmake > > > > * making Testing a standalone project, at the moment the testsuite is only > > available in monolithic builds > > > > * import all the other boost unittests which exist > > > > * import the other CompositeError files into the compilefail submodule > > (and I think the CompositeError2 which I used so far gives additional > > compilation errors which should not exist, but I'm not sure. Please check > > the output of make CompositeError2.) > > > > * write more tests to cover a broader range of features and design > > promises > > > > * integrate the physics testsuite > > > > * anything else? > > > > > > > > Best regards > > > > Raimar > > > > > > > > > > > > -------------------------------------------------------------------------- > > ---- Rapidly troubleshoot problems before they affect your business. Most > > IT organizations don't have a clear picture of how application > > performance affects their revenue. With AppDynamics, you get 100% > > visibility into your Java,.NET, & PHP application. Start your 15-day FREE > > TRIAL of AppDynamics Pro! > > http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktr > > k > > _______________________________________________ > > Cppqed-support mailing list > > Cpp...@li... > > https://lists.sourceforge.net/lists/listinfo/cppqed-support |
From: Andras V. <and...@ui...> - 2014-01-02 10:31:50
|
Hi Raimar, I have a few problems here. Upon git clone -b testing --recursive gi...@ge...:cppqed/complete.git I get the git error fatal: repository 'gi...@ge.../cppqed/cpypyqed.git' does not exist If, however, I do git clone --recursive gi...@ge...:cppqed/complete.git followed by cd complete; git checkout testing then it looks fine. However, upon trying to configure with cmake, it fails as it turns out that the folder cpypyqed doesn’t contain a CMakeLists.txt file. András Dr. Andras Vukics Institute for Theoretical Physics University of Innsbruck On Thu, Dec 19, 2013 at 8:06 PM, Andras Vukics <and...@ui...>wrote: > Hi, of course you can merge. Bests, András > > Dr. Andras Vukics > Institute for Theoretical Physics > University of Innsbruck > > > On Thu, Dec 19, 2013 at 7:13 PM, Raimar Sandner <rai...@ui... > > wrote: > >> Hi András, >> >> sure take your time, I hope you will also find it useful. For me it has >> already helped to discover some bugs which would otherwise have gone >> unnoticed. >> >> If you don't mind I will already merge it to Development (only affects the >> super project, anyway), so that I don't have to switch branches so often. >> This >> will then also introduce cpypyqed to the super repository. >> >> Best regards >> Raimar >> >> On Thursday, December 19, 2013 17:44:35 Andras Vukics wrote: >> > Hi Raimar, >> > Again, this looks like a great achievement. Please allow me a few days >> for >> > delving into it. >> > Just one note: instead of creating a separate project Testing, we could >> > consider leaving the testsuite in the meta-repository C++QED. In my >> mind, >> > this is similar to the overall pieces of documentation that I mentioned >> > earlier, which span over the whole project core-elements-scripts (or at >> > least the first two). >> > Best regards, >> > András >> > >> > >> > >> > On Thu, Dec 19, 2013 at 12:55 PM, Raimar Sandner >> > >> > <rai...@ui...>wrote: >> > > There was a commit not pushed to sourceforge in CCQEDcore, this is >> now >> > > >> > > fixed. >> > > >> > > >> > > >> > > Raimar >> > > >> > > >> > > >> > > On Thursday, December 19, 2013 03:40:42 you wrote: >> > > >> > > Hi András, >> > > >> > > >> > > >> > > I have integrated a new testsuite into cmake. >> > > >> > > >> > > >> > > Please clone the testing branch of the monolithic repository from the >> > > private repository: >> > > >> > > >> > > >> > > git clone -b testing --recursive gi...@ge...: >> > > cppqed/complete.git >> > > >> > > >> > > >> > > Then build everything with the monolithic build method (using the >> toplevel >> > > CMakeLists.txt file). Please make sure that no outside components are >> > > picked up by cmake, probably it is best to delete ~/.cmake. >> Afterwards, in >> > > the build directory run ctest -jN where N is the number of cores. >> Please >> > > let me know if this all works and if the tests pass. >> > > >> > > >> > > >> > > A few notes to the structure now, an I will try to write a complete >> > > documentation soon. >> > > >> > > >> > > >> > > The testsuite uses ctest from within cmake, which means the complete >> > > testsuite can be run by either 'make test' or the ctest command from >> > > above. >> > > The ctest command has the advantage of being able to run the tests in >> > > parallel with the -j switch. CTest itself is rather 'dumb', basically >> one >> > > only has to specify a test name and a test command including command >> line >> > > options in the CMakeLists.txt file. >> > > >> > > >> > > >> > > In our case, the command is either the executable >> > > target<http://bit.ly/1gHiTC0>named 'tester', which we have built >> with the >> > > boost unittest framework <http://bit.ly/1gHjFyW>, or a python >> > > script<http://bit.ly/1gHj2FA>which I wrote as test driver. The >> former is >> > > for testing code snippets, your boost tests can be imported that way. >> The >> > > latter is basically for running scripts. At the moment the >> testdriver.py >> > > is capable of: >> > > >> > > >> > > >> > > * running a C++QED script in all modes (single, ensemble, master) >> > > >> > > * continuing a script >> > > >> > > * comparing the outcome of a C++QED script to saved and version >> controlled >> > > output in Testing/expected >> > > >> > > * comparing the outcome of a C++QED script to the outcome of another >> > > script >> > > >> > > * check that the compilation of a cmake target fails in an expected >> > > way<http://bit.ly/1gHlPi4> >> > > >> > > >> > > >> > > and the functionality can be easily extended. The behavior of the >> > > testdriver is controlled by command line options and configuration >> files >> > > testdriver.conf in the subdirectories. >> > > >> > > >> > > >> > > Note that neither 'make test' nor 'ctest' will trigger a >> re-configuration >> > > or re-compilation in the case of changed CMakeLists.txt files or >> changed >> > > source files. To overcome this problem I have defined the target >> 'check'. >> > > This should depend on everything essential and therefore trigger >> > > re-configuration and compilation. Every subdirectory of the testsuite >> (at >> > > the moment boost, compilefail,continue and run) has its own >> 'check_subdir' >> > > target, and additionally every single test has its own target. This is >> > > very >> > > convenient when developing or debugging a feature, one does not have >> to >> > > run >> > > the whole testsuite all the time but can fine-tune which tests to run >> by >> > > adding them to the buildset in kdevelop. Additionally, all the check* >> > > targets are a lot more verbose, because they use ctest -v internally. >> > > >> > > >> > > >> > > The next steps: >> > > >> > > >> > > >> > > * documentation of testdriver.py, the testdriver.conf syntax and how >> to >> > > add new tests to cmake >> > > >> > > * making Testing a standalone project, at the moment the testsuite is >> only >> > > available in monolithic builds >> > > >> > > * import all the other boost unittests which exist >> > > >> > > * import the other CompositeError files into the compilefail submodule >> > > (and I think the CompositeError2 which I used so far gives additional >> > > compilation errors which should not exist, but I'm not sure. Please >> check >> > > the output of make CompositeError2.) >> > > >> > > * write more tests to cover a broader range of features and design >> > > promises >> > > >> > > * integrate the physics testsuite >> > > >> > > * anything else? >> > > >> > > >> > > >> > > Best regards >> > > >> > > Raimar >> > > >> > > >> > > >> > > >> > > >> > > >> -------------------------------------------------------------------------- >> > > ---- Rapidly troubleshoot problems before they affect your business. >> Most >> > > IT organizations don't have a clear picture of how application >> > > performance affects their revenue. With AppDynamics, you get 100% >> > > visibility into your Java,.NET, & PHP application. Start your 15-day >> FREE >> > > TRIAL of AppDynamics Pro! >> > > >> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktr >> > > k >> > > _______________________________________________ >> > > Cppqed-support mailing list >> > > Cpp...@li... >> > > https://lists.sourceforge.net/lists/listinfo/cppqed-support >> >> > |
From: Raimar S. <rai...@ui...> - 2014-01-02 14:46:03
|
Hi András, I have now deleted the testing branch, it was not used anymore. Please try git clone -b Development --recursive gi...@ge...:cppqed/complete.git Switching branches in the super-repository is a little bit more complex than for a regular repository, because submodules are not touched. To switch branches or to go from detached head to regular branches, I use my own alias 'git attach', which I have configured in ~/.gitconfig as [alias] attach = "submodule foreach 'BRANCH=$(git config --file $toplevel/.gitmodules --get submodule.${name}.branch); git checkout --merge ${BRANCH:-master}'" Then, in the top level directory it is as easy as, for example: git checkout python git attach git checkout Development git attach Also please remember that the default urls of the submodules are read only, you have to change them to the correct read-write urls if you want to push. Best regards Raimar On Thursday, January 02, 2014 11:31:21 Andras Vukics wrote: > Hi Raimar, > > I have a few problems here. Upon > git clone -b testing --recursive gi...@ge...:cppqed/complete.git > I get the git error > fatal: repository 'gi...@ge.../cppqed/cpypyqed.git' does not > exist > > If, however, I do > git clone --recursive gi...@ge...:cppqed/complete.git > followed by > cd complete; git checkout testing > then it looks fine. However, upon trying to configure with cmake, it fails > as it turns out that the folder cpypyqed doesn’t contain a CMakeLists.txt > file. > > András > > > > Dr. Andras Vukics > Institute for Theoretical Physics > University of Innsbruck > > On Thu, Dec 19, 2013 at 8:06 PM, Andras Vukics <and...@ui...>wrote: > > Hi, of course you can merge. Bests, András > > > > Dr. Andras Vukics > > Institute for Theoretical Physics > > University of Innsbruck > > > > > > On Thu, Dec 19, 2013 at 7:13 PM, Raimar Sandner <rai...@ui... > > > > > wrote: > >> Hi András, > >> > >> sure take your time, I hope you will also find it useful. For me it has > >> already helped to discover some bugs which would otherwise have gone > >> unnoticed. > >> > >> If you don't mind I will already merge it to Development (only affects > >> the > >> super project, anyway), so that I don't have to switch branches so often. > >> This > >> will then also introduce cpypyqed to the super repository. > >> > >> Best regards > >> Raimar > >> > >> On Thursday, December 19, 2013 17:44:35 Andras Vukics wrote: > >> > Hi Raimar, > >> > Again, this looks like a great achievement. Please allow me a few days > >> > >> for > >> > >> > delving into it. > >> > Just one note: instead of creating a separate project Testing, we could > >> > consider leaving the testsuite in the meta-repository C++QED. In my > >> > >> mind, > >> > >> > this is similar to the overall pieces of documentation that I mentioned > >> > earlier, which span over the whole project core-elements-scripts (or at > >> > least the first two). > >> > Best regards, > >> > András > >> > > >> > > >> > > >> > On Thu, Dec 19, 2013 at 12:55 PM, Raimar Sandner > >> > > >> > <rai...@ui...>wrote: > >> > > There was a commit not pushed to sourceforge in CCQEDcore, this is > >> > >> now > >> > >> > > fixed. > >> > > > >> > > > >> > > > >> > > Raimar > >> > > > >> > > > >> > > > >> > > On Thursday, December 19, 2013 03:40:42 you wrote: > >> > > > >> > > Hi András, > >> > > > >> > > > >> > > > >> > > I have integrated a new testsuite into cmake. > >> > > > >> > > > >> > > > >> > > Please clone the testing branch of the monolithic repository from the > >> > > private repository: > >> > > > >> > > > >> > > > >> > > git clone -b testing --recursive gi...@ge...: > >> > > cppqed/complete.git > >> > > > >> > > > >> > > > >> > > Then build everything with the monolithic build method (using the > >> > >> toplevel > >> > >> > > CMakeLists.txt file). Please make sure that no outside components are > >> > > picked up by cmake, probably it is best to delete ~/.cmake. > >> > >> Afterwards, in > >> > >> > > the build directory run ctest -jN where N is the number of cores. > >> > >> Please > >> > >> > > let me know if this all works and if the tests pass. > >> > > > >> > > > >> > > > >> > > A few notes to the structure now, an I will try to write a complete > >> > > documentation soon. > >> > > > >> > > > >> > > > >> > > The testsuite uses ctest from within cmake, which means the complete > >> > > testsuite can be run by either 'make test' or the ctest command from > >> > > above. > >> > > The ctest command has the advantage of being able to run the tests in > >> > > parallel with the -j switch. CTest itself is rather 'dumb', basically > >> > >> one > >> > >> > > only has to specify a test name and a test command including command > >> > >> line > >> > >> > > options in the CMakeLists.txt file. > >> > > > >> > > > >> > > > >> > > In our case, the command is either the executable > >> > > target<http://bit.ly/1gHiTC0>named 'tester', which we have built > >> > >> with the > >> > >> > > boost unittest framework <http://bit.ly/1gHjFyW>, or a python > >> > > script<http://bit.ly/1gHj2FA>which I wrote as test driver. The > >> > >> former is > >> > >> > > for testing code snippets, your boost tests can be imported that way. > >> > >> The > >> > >> > > latter is basically for running scripts. At the moment the > >> > >> testdriver.py > >> > >> > > is capable of: > >> > > > >> > > > >> > > > >> > > * running a C++QED script in all modes (single, ensemble, master) > >> > > > >> > > * continuing a script > >> > > > >> > > * comparing the outcome of a C++QED script to saved and version > >> > >> controlled > >> > >> > > output in Testing/expected > >> > > > >> > > * comparing the outcome of a C++QED script to the outcome of another > >> > > script > >> > > > >> > > * check that the compilation of a cmake target fails in an expected > >> > > way<http://bit.ly/1gHlPi4> > >> > > > >> > > > >> > > > >> > > and the functionality can be easily extended. The behavior of the > >> > > testdriver is controlled by command line options and configuration > >> > >> files > >> > >> > > testdriver.conf in the subdirectories. > >> > > > >> > > > >> > > > >> > > Note that neither 'make test' nor 'ctest' will trigger a > >> > >> re-configuration > >> > >> > > or re-compilation in the case of changed CMakeLists.txt files or > >> > >> changed > >> > >> > > source files. To overcome this problem I have defined the target > >> > >> 'check'. > >> > >> > > This should depend on everything essential and therefore trigger > >> > > re-configuration and compilation. Every subdirectory of the testsuite > >> > >> (at > >> > >> > > the moment boost, compilefail,continue and run) has its own > >> > >> 'check_subdir' > >> > >> > > target, and additionally every single test has its own target. This > >> > > is > >> > > very > >> > > convenient when developing or debugging a feature, one does not have > >> > >> to > >> > >> > > run > >> > > the whole testsuite all the time but can fine-tune which tests to run > >> > >> by > >> > >> > > adding them to the buildset in kdevelop. Additionally, all the check* > >> > > targets are a lot more verbose, because they use ctest -v internally. > >> > > > >> > > > >> > > > >> > > The next steps: > >> > > > >> > > > >> > > > >> > > * documentation of testdriver.py, the testdriver.conf syntax and how > >> > >> to > >> > >> > > add new tests to cmake > >> > > > >> > > * making Testing a standalone project, at the moment the testsuite is > >> > >> only > >> > >> > > available in monolithic builds > >> > > > >> > > * import all the other boost unittests which exist > >> > > > >> > > * import the other CompositeError files into the compilefail > >> > > submodule > >> > > (and I think the CompositeError2 which I used so far gives additional > >> > > compilation errors which should not exist, but I'm not sure. Please > >> > >> check > >> > >> > > the output of make CompositeError2.) > >> > > > >> > > * write more tests to cover a broader range of features and design > >> > > promises > >> > > > >> > > * integrate the physics testsuite > >> > > > >> > > * anything else? > >> > > > >> > > > >> > > > >> > > Best regards > >> > > > >> > > Raimar > >> > >> ------------------------------------------------------------------------- > >> - > >> > >> > > ---- Rapidly troubleshoot problems before they affect your business. > >> > >> Most > >> > >> > > IT organizations don't have a clear picture of how application > >> > > performance affects their revenue. With AppDynamics, you get 100% > >> > > visibility into your Java,.NET, & PHP application. Start your 15-day > >> > >> FREE > >> > >> > > TRIAL of AppDynamics Pro! > >> > >> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clkt > >> r > >> > >> > > k > >> > > _______________________________________________ > >> > > Cppqed-support mailing list > >> > > Cpp...@li... > >> > > https://lists.sourceforge.net/lists/listinfo/cppqed-support |
From: Andras V. <and...@ui...> - 2014-01-07 10:38:44
|
Hi Raimar, Thanks for your reply, it worked. The only negative I see is that in such a kdevelop session when the projects are imported separately, kdevelop does not recognize them as separate git repositories. With monolithic import, however, git does work in kdevelop. This was not like that so far when I had only the separate repositories cloned. Can it be that kdevelop gets confused by the git repository on a level below in the directory hierarchy? I tried the testsuite and it ran fine both with make and ctest. I must say I’m very impressed. The documentation is also nice, though at the moment I do not have time to try and add new tests on the basis of it. One thing that occured to me: how do you think we can integrate the bazaar „physical” testsuite which relied on comparison of trajectory outputs via Sebastian’s pycppqed? Best regards, András Dr. Andras Vukics Institute for Theoretical Physics University of Innsbruck On Mon, Jan 6, 2014 at 5:21 PM, Raimar Sandner <rai...@ui...>wrote: > On Monday, January 06, 2014 09:33:54 you wrote: > > Hi Raimar, > > I feel that I’m close to the point where I will be able to try the > > testsuite, just one more question beforehand. If I checkout the > > super-repository, the different sub-repositories below it will work in > > exactly the same way as they did, won’t they? And also, I can still use > the > > separate build strategy, only in one level lower in the directory > > hierarchy, can’t I? > > That is correct. You can load the sub-projects as standalone-projects in > kdevelop, you will have a separate build directory in every submodule. > Kdevelop might ask which is the right project root because it is ambiguous, > just choose the submodule instead of the super-repository. > > However, you can only run the testsuite from the super-repository project, > obviously, and this will compile the framework again in the > super-repository > build directory. > > I will add a documentation for the testsuite soon. > > > I’m asking this because I wouldn’t like to keep both the separate > projects > > and the super-project with its subprojects on my machine, but want to > move > > my development to under a checked-out super-project, but work separately > as > > so far. This means moving all my local branches as well. > > Yes this will work, you could even load the super-project to kdevelop > additionally on a as-needed basis. If you want to commit to the super- > repository, you can just ignore the changes in the submodules (just don't > 'git > add' the submodules when committing). I will take care that the right > (current) commits are registered in the super-repository on a regular > basis. > > Best regards > Raimar > |
From: Raimar S. <rai...@ui...> - 2014-01-07 11:16:27
|
On Tuesday, January 07, 2014 11:38:15 Andras Vukics wrote: > Hi Raimar, > > Thanks for your reply, it worked. The only negative I see is that in such a > kdevelop session when the projects are imported separately, kdevelop does > not recognize them as separate git repositories. With monolithic import, > however, git does work in kdevelop. This was not like that so far when I > had only the separate repositories cloned. Can it be that kdevelop gets > confused by the git repository on a level below in the directory hierarchy? Unfortunately this is a drawback, yes. The problem is that the submodules don't have a .git directory but a .git file with an entry pointing to the true .git directory, which is located on the highest level of the super-repository. Kdevelop does not support this (yet). With monolithic import the git support of kdevelop is also not optimal, because you can only commit to the super- repositories, not the submodules. It didn't bother me too much because I'm not using the kdevelop git features at all. > I tried the testsuite and it ran fine both with make and ctest. I must say > I’m very impressed. The documentation is also nice, though at the moment I > do not have time to try and add new tests on the basis of it. One thing > that occured to me: how do you think we can integrate the bazaar „physical” > testsuite which relied on comparison of trajectory outputs via Sebastian’s > pycppqed? I'm glad it works and that you like it. Which parts of pycppqed are needed for the physics test suite? If it is only comparing trajectories, this is already supported by the python test driver. In the long run it is probably best to merge pycppqed into cpypyqed. Best regards Raimar |
From: Andras V. <and...@ui...> - 2014-01-08 11:41:24
|
> > I'm glad it works and that you like it. Which parts of pycppqed are needed > for > the physics test suite? If it is only comparing trajectories, this is > already > supported by the python test driver. In the long run it is probably best to > merge pycppqed into cpypyqed. > Yes, it’s only a question of comparing trajectories on the level of display, which basically boils down to comparing certain slices of numpy arrays as the trajectory output files can be directly loaded into such. I think we can already consider pycppqed obsoleted since its other features are obsolete or have never worked correctly anyway. |