To get started...

357 views
Skip to first unread message

Cyrille Artho

unread,
Nov 23, 2021, 10:27:04 AM11/23/21
to Java™ Pathfinder
Hi all,
As there were several posts asking on how to get started, the main challenge is to understand what JPF does. As a program analysis tool, it is rather different from the typical tool or library in that its input is another program rather than normal data.

The introduction is recommended to learn what JPF is about, followed by "How to obtain and install JPF" and "How to use JPF".

To contribute, the best way to get started is to write a meaningful unit test. The test should cover some functionality that existing tests do not cover. Look at existing tests and "Writing JPF tests" on the wiki for more guidance.

Your new test could be another test in an existing JPF test class (if it fits there) or in a new class of its own.

If your new test passes: Great! You have shown that JPF correctly handles a certain case.
If your new test fails: Even better! We now have an *issue* that we should try to fix. The next step would be to create an issue report. You can see existing issues on our issue tracker:


You can even start writing tests by looking at some of the issues and try to create a test for it (if there is none yet).

Once you have a failing test and an issue, then you can try to work on that to fix that aspect in JPF. This is often a bit more complex than writing a test, hence I recommend trying to write a unit test first.

Gaurang Kudale

unread,
Jan 12, 2022, 8:42:16 AM1/12/22
to java-pa...@googlegroups.com

Palak Mishra

unread,
Apr 6, 2022, 5:31:47 AM4/6/22
to Java™ Pathfinder
Hey Cyrill can you please help me out on how to get started with JPF and setting up the environment, I'm new at it but I really want to contribute and be a part of the JPF team. I found this in GSOC 2022 company list and am really intrigued. 

Cyrille Artho

unread,
Apr 8, 2022, 1:15:14 PM4/8/22
to Java™ Pathfinder
Hi,
To get started, you need to use Java 8 (OpenJDK is fine) for the main development, or Java 11 (again, OpenJDK works well) for development on branch `java-10-gradle`. Use Gradle to build and test JPF:
./gradlew test
will build and test it.
On Java 8, all tests should pass. On Java 11, there are a few tests that still fail; these features, which are not fully supported on Java 11 yet, are a good starting point for a proposal on Java 11 bytecode support. You can start to look at why one of these tests fails, and perhaps find a smaller feature/test that is (part of) the root cause of the failure. That will be the first step towards a plan for fixing it.
One unit test may fail because of multiple reasons, and it may require multiple fixes (for different features in bytecode that don't fully work yet for Java 11).
Conversely, one feature (such as automated toString calls on objects inside a print statement on Java 11) may cause multiple tests to fail, and fixing it will fix several tests at once.
Reply all
Reply to author
Forward
0 new messages