interoperability - fortran iso_c_binding




Möglichkeiten, konvertierten Code von FORTRAN zu C zu validieren (2)

Sie benötigen Verifizierungstests, die diese Fortran-Funktionen ausführen. Dann führen Sie diese Tests gegen den c-Code aus.

Sie können Unit-Test-Technologie / Methodologie verwenden. In der Tat kann ich nicht sehen, wie sonst Sie beweisen würden, dass die Konvertierung korrekt ist.

In vielen Komponententestmethoden würden Sie die Tests in der gleichen Sprache wie der Code schreiben, aber in diesem Fall empfehle ich sehr sehr, eine Sprache und eine Codebasis zu wählen, um beide Sätze von Funktionen auszuüben. Machen Sie sich auch keine Sorgen darüber, dass Sie versuchen, reine Komponententests zu erstellen, sondern nutzen Sie die Techniken, um die Abdeckung des gesamten Fortran-Codes abzudecken.

Ich habe rund 90 Fortran-Dateien in C-Dateien mit einem Werkzeug umgewandelt und ich muss bestätigen, dass die Konvertierung gut ist oder nicht.

Kannst du mir ein paar Ideen geben, wie man am besten sicherstellen kann, dass die Funktionalität durch die Übersetzung erhalten geblieben ist?


Verwenden Sie Komponententests.

Schreiben Sie zuerst Ihre Komponententests auf den Fortran-Code und prüfen Sie, ob alle korrekt laufen, schreiben Sie sie dann in C um und führen Sie diese aus.

Das Problem bei diesem Ansatz besteht darin, dass Sie auch den Komponententest neu schreiben müssen, was Sie normalerweise beim Refactoring von Code nicht tun (ausgenommen API-Änderungen). Das bedeutet, dass Sie möglicherweise neben dem eigentlichen Code auch den Code für den Code für die portierte Einheit debuggen können.

Daher ist es möglicherweise besser, Testcode zu schreiben, der minimale Logik enthält und nur die Ergebnisse der Funktionen in eine Datei schreibt. Dann können Sie diesen minimalen Testcode in C umschreiben, die gleichen Dateien generieren und die Dateien vergleichen.





fortran