kaiyaok2 / ID-HtF

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ID-HtF Tests

This is the repository to keep track of types of ID-HtF (implementation-dependent but hard to fix) tests tests found by the NonDex Gradle plugin. These ID-HtF tests are flaky because an outside library it depends on makes false assumptions on under-determined Java APIs. We do not label them "ID", because the source of flakiness is outside of the scope of the repository the tests belong to, and there is NO practical and efficient way to maintain test functionality without calling the "flaky" methods implemented by an outside source.

Dataset

ID-HtF.csv records all these tests. The format is similar with those in the idoft repository, and in its last column it links each test to a source of flakiness that is explained in the corresponding .md file in the source-of-flakiness directory.

Scripts (Linux / MacOS)

  • add-nondex.sh auto-modifies build files so that one can run NonDex Gradle plugin on a repository. Usage:
./add-nondex.sh ${path to root directory of the folder}
  • find-possible-ID-HtF.sh is a heuristic-based script to auto-detect possible ID-HtF tests after running NonDex. Usage:
./find-possible-ID-HtF.sh
  • find-recent-popular-repos.py is a Python script to get some sample Gradle projects to run NonDex on. Usage:
python3 find-recent-popular-repos.py ${your Github username}, ${your token}, ${minimum stars}, ${maximum stars}, ${earliest date created (in YYYY-MM-DD format)}, ${latest_created (in YYYY-MM-DD format)} and ${number of pages of repositories to consider (100 repositories per page)}
  • run-nondex-at-scale.sh is a script that auto-runs NonDex Gradle plugin in the repositories found by find-recent-popular-repos.py. Usage:
./run-nondex-at-scale.sh repos.txt

Notice that repos.txt is the output generated by find-recent-popular-repos.py. This script is based on Xinyu Wu's previous experiments with some modifications to support newer versions of Gradle.

About


Languages

Language:Shell 93.0%Language:Python 7.0%