<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent posts to Discussion</title><link>https://sourceforge.net/p/pfunit/discussion/</link><description>Recent posts to Discussion</description><atom:link href="https://sourceforge.net/p/pfunit/discussion/feed.rss" rel="self"/><language>en</language><lastBuildDate>Wed, 12 Jun 2024 11:50:44 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/pfunit/discussion/feed.rss" rel="self" type="application/rss+xml"/><item><title>cmake/Flang.cmake</title><link>https://sourceforge.net/p/pfunit/discussion/618686/thread/69ecba8700/?limit=25#268e</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Hi Max,&lt;/p&gt;
&lt;p&gt;Probably better to post your question on GitHub where there are more eyes.&lt;/p&gt;
&lt;p&gt;At first glance, those lines should be sufficient, and the fact that configuration was successful suggests the same.  &lt;/p&gt;
&lt;p&gt;It would be useful to see the  error messages (or even the full log) for the make step.    I will be surprised (but delighted) if Flang is ready to build pFUnit.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Tom Clune</dc:creator><pubDate>Wed, 12 Jun 2024 11:50:44 -0000</pubDate><guid>https://sourceforge.net6a67a6d4a3dfd36a7a990d3c1d4136c9e4564627</guid></item><item><title>cmake/Flang.cmake</title><link>https://sourceforge.net/p/pfunit/discussion/618686/thread/69ecba8700/?limit=25#1dc2</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;What would be required in such a file?&lt;/p&gt;
&lt;p&gt;Currently I have&lt;/p&gt;
&lt;p&gt;cat &amp;lt;&amp;lt; EOF &amp;gt; $BUILD/$PFUNIT/cmake/Flang.cmake&lt;/p&gt;
&lt;p&gt;set(CMAKE_Fortran_FLAGS_DEBUG  "-g -O0 -Mbounds")&lt;br/&gt;
set(CMAKE_Fortran_FLAGS_RELEASE "-O3")&lt;br/&gt;
set(CMAKE_Fortran_FLAGS "-Mpreprocess -Mfreeform -Mstandard")&lt;/p&gt;
&lt;p&gt;EOF&lt;/p&gt;
&lt;p&gt;Configuration was successful, but make failed.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Max R. Dechantsreiter</dc:creator><pubDate>Wed, 12 Jun 2024 11:38:45 -0000</pubDate><guid>https://sourceforge.netd224b6ca63377857c8bcff4aaa047e156232ab88</guid></item><item><title>Need example of mock usage</title><link>https://sourceforge.net/p/pfunit/discussion/documentation/thread/5976d2a7/?limit=25#7b01</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I am look for a (very simple) instruction of how to use the mock support of pFUnit.&lt;/p&gt;
&lt;p&gt;Let's assume, I have the following simple program/modules:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="n"&gt;test1_mod&lt;/span&gt;
    &lt;span class="nb"&gt;contains&lt;/span&gt;

    &lt;span class="n"&gt;subroutine&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;(&lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;)
        &lt;span class="n"&gt;implicit&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;), &lt;span class="n"&gt;intent&lt;/span&gt;(&lt;span class="n"&gt;in&lt;/span&gt;) :: &lt;span class="n"&gt;a&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;), &lt;span class="n"&gt;intent&lt;/span&gt;(&lt;span class="n"&gt;out&lt;/span&gt;) :: &lt;span class="n"&gt;b&lt;/span&gt;

        &lt;span class="n"&gt;b&lt;/span&gt; = &lt;span class="n"&gt;a&lt;/span&gt; + &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="nb"&gt;end&lt;/span&gt; &lt;span class="n"&gt;subroutine&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;
&lt;span class="nb"&gt;end&lt;/span&gt; &lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="n"&gt;test1_mod&lt;/span&gt;

&lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="n"&gt;test2_mod&lt;/span&gt;

    &lt;span class="nb"&gt;contains&lt;/span&gt;

    &lt;span class="n"&gt;subroutine&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;(&lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;)
        &lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;test1_mod&lt;/span&gt;, &lt;span class="n"&gt;only:&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;
        &lt;span class="n"&gt;implicit&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;), &lt;span class="n"&gt;intent&lt;/span&gt;(&lt;span class="n"&gt;in&lt;/span&gt;) :: &lt;span class="n"&gt;a&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;), &lt;span class="n"&gt;intent&lt;/span&gt;(&lt;span class="n"&gt;out&lt;/span&gt;) :: &lt;span class="n"&gt;b&lt;/span&gt;

        &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;s1&lt;/span&gt;(&lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;)

    &lt;span class="nb"&gt;end&lt;/span&gt; &lt;span class="n"&gt;subroutine&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;

    &lt;span class="n"&gt;subroutine&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;(&lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;)
        &lt;span class="n"&gt;implicit&lt;/span&gt; &lt;span class="nb"&gt;none&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;), &lt;span class="n"&gt;intent&lt;/span&gt;(&lt;span class="n"&gt;in&lt;/span&gt;) :: &lt;span class="n"&gt;a&lt;/span&gt;
        &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;), &lt;span class="n"&gt;intent&lt;/span&gt;(&lt;span class="n"&gt;out&lt;/span&gt;) :: &lt;span class="n"&gt;b&lt;/span&gt;

        &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;t1&lt;/span&gt;(&lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;)
    &lt;span class="nb"&gt;end&lt;/span&gt; &lt;span class="n"&gt;subroutine&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;
&lt;span class="nb"&gt;end&lt;/span&gt; &lt;span class="k"&gt;module&lt;/span&gt; &lt;span class="n"&gt;test2_mod&lt;/span&gt;

&lt;span class="n"&gt;program&lt;/span&gt; &lt;span class="n"&gt;test&lt;/span&gt;
    &lt;span class="k"&gt;use&lt;/span&gt; &lt;span class="n"&gt;test2_mod&lt;/span&gt;, &lt;span class="n"&gt;only:&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;

    &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;) :: &lt;span class="n"&gt;a&lt;/span&gt;
    &lt;span class="n"&gt;real&lt;/span&gt;(&lt;span class="mi"&gt;8&lt;/span&gt;) :: &lt;span class="n"&gt;b&lt;/span&gt;

    &lt;span class="n"&gt;a&lt;/span&gt; = &lt;span class="mi"&gt;1&lt;/span&gt;

    &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;t2&lt;/span&gt;(&lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;)

    &lt;span class="nb"&gt;write&lt;/span&gt; (*,*) &lt;span class="n"&gt;a&lt;/span&gt;, &lt;span class="n"&gt;b&lt;/span&gt;
&lt;span class="nb"&gt;end&lt;/span&gt; &lt;span class="n"&gt;program&lt;/span&gt; &lt;span class="n"&gt;test&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;


&lt;p&gt;Now I would like to replace the call to either s1 in test1_mod or t1 in test2_mod with a mock of a subroutine. How can I do this? Thank you for your help.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">jherb</dc:creator><pubDate>Thu, 21 Sep 2017 21:14:37 -0000</pubDate><guid>https://sourceforge.netd524ce036e82a0f0ad72b7797811b3e5fffc5e8c</guid></item><item><title>How to refer pFUnit in scientific publication?</title><link>https://sourceforge.net/p/pfunit/discussion/618686/thread/1d44621e/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Some publishers are denying the use of web page links. We would like to know if you have  a white paper for the framework.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Carlos&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Carlos Felipe Forigua Rodriguez</dc:creator><pubDate>Mon, 19 Sep 2016 22:49:59 -0000</pubDate><guid>https://sourceforge.net7489ad4adf91f22dfe38de61187d3d1da28d2c82</guid></item><item><title>Testing of CFD software focused in internal combustion engines and components</title><link>https://sourceforge.net/p/pfunit/discussion/pfunitinaction/thread/06552789/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;pFUnit is being used to help in the development of a derivative of the CFD software KIVA-4 called KIVA-Cantera-UN. This software combines KIVA-4 (FORTRAN) for the fluid phase and Cantera (C/C++) for the chemical reactions. It is being used to simulate and modify internal combustion engines and some other components of machines is the laboratory. &lt;/p&gt;
&lt;p&gt;This project uses OpenMP and it is espected to add MPI support in the near future. It runs in clusters and a miryad of computers. We hope to learn to use your tool to add many more tests to our software.&lt;/p&gt;
&lt;p&gt;We really want to thank the people behind pFUnit to help us to improve our code! Thank you very much.&lt;/p&gt;
&lt;p&gt;Carlos&lt;/p&gt;
&lt;p&gt;Junior researcher&lt;br/&gt;
Department of mechanical engnineering&lt;br/&gt;
National University of Colombia (Universidad Nacional de Colombia)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Carlos Felipe Forigua Rodriguez</dc:creator><pubDate>Mon, 19 Sep 2016 22:43:56 -0000</pubDate><guid>https://sourceforge.net61cc011ef8eaaa52e06c0f8f6bc725813046dda7</guid></item><item><title>Hybrid parallel rotor wake simulation</title><link>https://sourceforge.net/p/pfunit/discussion/pfunitinaction/thread/3979d075/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;We use pFUnit for a software that simulates the airflow behind helicopter's rotor blades based upon a vortex method.&lt;br/&gt;
The software is parallelized with MPI, OpenMP and OpenACC (for GPUs).&lt;/p&gt;
&lt;p&gt;As it is based on existing older (legacy) code, we can only add unit tests for newly developed stuff, unfortunately.&lt;/p&gt;
&lt;p&gt;We have a nice build system based on CMake, and pFUnit is integrated smoothly using CMake's "ExternalProject" macro.&lt;br/&gt;
The tests are run in parallel using MPI (without setting the npes parameter),&lt;br/&gt;
but except for some parametrized tests we don't use many of the advanced features of pFUnit.&lt;br/&gt;
In my opinion, the implementation overhead for the parametrized tests (derived types for parameter and testcase) is still a minor drawback if you just want to 5 different integers.&lt;/p&gt;
&lt;p&gt;We have a CI-server (Jenkins) that builds the software and runs the tests after every change/commit.&lt;br/&gt;
For the xml-output of pFUnit we added a minor patch to make it compatible with Jenkin's interpretation of JUnit xml.&lt;br/&gt;
This way, we obtain a nice overview of the test results in our CI web interface or as mail.&lt;/p&gt;
&lt;p&gt;I could not unit-test my OpenACC parallelization because of bugs in the PGI compiler: I reported about 10+ bugs in various Fortran compilers over the last year(s) - most of them fixed by now and approximately half of them triggered by pFUnit.&lt;/p&gt;
&lt;p&gt;We currently plan a new software where we also want to use pFUnit. Starting from scratch should allow us to directly maintain extensive unit tests for all the code and to apply a more test-driven development workflow.&lt;/p&gt;
&lt;p&gt;Additional remark:&lt;br/&gt;
For C/C++ projects we use a patched version of googletest for parallel unit-tests with MPI, which provides a very powerfull environment (we easily end up with hundreds to thousends of tests based upon templated and parametrized test classes, such that in the end we have about 100.000 test results for a single CI-build - for this you really need a nice hierarchical overview of the results (like in Jenkins)).&lt;br/&gt;
So, I'm eager to see the development of the tests in our new Fortran+pFUnit-software.&lt;/p&gt;
&lt;p&gt;Thanks for the nice work on pFUnit!&lt;/p&gt;
&lt;p&gt;Melven&lt;/p&gt;
&lt;p&gt;Simulation and Software Technology &lt;br/&gt;
German Aerospace Center (DLR)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Melven Röhrig-Zöllner</dc:creator><pubDate>Sun, 14 Feb 2016 10:09:53 -0000</pubDate><guid>https://sourceforge.net374dad7ad21b96d9f895f1ade17645904f5fdcf1</guid></item><item><title>Testing for discontinuous Galerkin-based, fluid dynamics code</title><link>https://sourceforge.net/p/pfunit/discussion/pfunitinaction/thread/c5369ca4/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;pFUnit is being used to drive development for an implicit computational fluid dynamics solver based on a discontinuous Galerkin discretization for higher-order accurate solutions. Targeted applications are related to turbomachinery and acoustics problems. &lt;/p&gt;
&lt;p&gt;Development on this work makes heavy use of OO Fortran and pFUnit has been a very effective and capable tool for testing. &lt;/p&gt;
&lt;p&gt;Current efforts are focused on parallelization and pFUnit's MPI capability was an attractive feature when a test framework was being selected.&lt;/p&gt;
&lt;p&gt;Many thanks to the pFUnit developers! Your work is very much appreciated.&lt;/p&gt;
&lt;p&gt;Nathan&lt;/p&gt;
&lt;p&gt;PhD Student&lt;br/&gt;
Department of Aerospace Engineering&lt;br/&gt;
University of Cincinnati&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Nathan Wukie</dc:creator><pubDate>Wed, 14 Oct 2015 14:27:06 -0000</pubDate><guid>https://sourceforge.netd9ff3226ea5be762a536c8c8fe8ec93b1c11cfcd</guid></item></channel></rss>