fortesg / fortrantestgenerator

Unit test generator for Fortran applications using Capture & Replay
GNU General Public License v3.0
23 stars 5 forks source link

Make the perturbation feature of Serialbox2 usable from FTG #15

Closed phmarti closed 6 years ago

phmarti commented 6 years ago

Serialbox2 allows to read data and perturb it in order to assess error propagations. It is also useful when comparing results from different compilers in order to decide if observed differences are normal or due to errors.

To my knownledge, FTG currently doesn't support this feature.

chovyy commented 6 years ago

Thanks for your request, @phmarti.

I think currently the best solution for that would be that you just modify your replay.test.tmpl template yourself as it is intended. I know, they are not quite easy to read, but just search for every occurrence of CALL ftg_read... and CALL ftg_allocate_and_read... and place a call to ser_fld_perturb afterwards. Of course, you also have to add a USE m_ser_perturb and something for the rperturb argument, but I guess, you will be able to find the right place for that.

If you want to perturb only certain fields, it might make sense not to put it in the template but just modify the generated test driver directly.

We could add wrapper routines for fs_read_and_perturb to the FTG interface for convenience, but for now I can't see a great benefit.

I will soon restructure the templates, so it will be easier to share modifications such as those proposed here.

phmarti commented 6 years ago

Thanks @chovyy

I'll do that.

chovyy commented 6 years ago

I guess, I can close this due to your contribution to the Serialbox2-FTG interface, @phmarti . Thanks a lot for your work!

phmarti commented 6 years ago

@chovyy I have an updated template for ICON which simply passes a perturbation amplitude to all the read calls on arrays. I can make a PR/Issue for this if you're interested.

chovyy commented 6 years ago

@phmarti, I am currently restructuring the whole template system. I would suggest that we add your template in the new style when it's done. I shouldn't be too much work to do it again.