{"id":19164499,"url":"https://github.com/heapstats/race-condition","last_synced_at":"2026-06-17T21:30:14.739Z","repository":{"id":80453071,"uuid":"118622691","full_name":"HeapStats/race-condition","owner":"HeapStats","description":"A framework and test cases for testing race conditions in HeapStats and HotSpot VM.","archived":false,"fork":false,"pushed_at":"2018-07-10T07:07:45.000Z","size":179,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-01-03T22:15:48.908Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HeapStats.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-23T14:38:36.000Z","updated_at":"2018-07-10T07:07:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"62ed37d6-15cf-44ea-bc16-ec00f0c4ca32","html_url":"https://github.com/HeapStats/race-condition","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Frace-condition","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Frace-condition/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Frace-condition/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HeapStats%2Frace-condition/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HeapStats","download_url":"https://codeload.github.com/HeapStats/race-condition/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240245901,"owners_count":19771028,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T09:22:25.248Z","updated_at":"2026-06-17T21:30:14.554Z","avatar_url":"https://github.com/HeapStats.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Testing race conditions in HeapStats and HotSpot VM\n\nThis repostiory includes a framework and test cases for testing race conditions in HeapStats and HotSpot VM.\n\n## Usage\n\n1. set HEAPSTATS_LIB environment variables to the heapstats shared object file\n2. Add directories of test cases to `testlist.txt`\n3. Run `testcase.sh`\n\n```\n$ bash testcase.sh \u003cfile\u003e\n```\n\nOR\n\n```\n$ bash testcase.sh \u003c--clean|--result\u003e \u003cfile\u003e\n```\n\n`\u003c\u003e` are optional.\n\n* `file`: specify a test list file. You can ommit it if you aim to use `testlist.txt`\n* `--clean`: clear all test cases' results.\n* `--result`: show a summary of all test cases' result (not run test).\n\nWhen you use `--clean` and `--result`, you can also specify test cases by `file`.\n\ncommand example:\n```\nexport HEAPSTATS_LIB=/usr/lib64/heapstats/libheapstats-2.1.so.3\n$ bash testcase.sh testlist.txt\n```\n\n## Environment\n* HeapStats : 2.1.*\n* python : 2.*\n* OS : Fedora\n\n## Other Notice\nVMDeath/DataDumpRequest may fail because of JVM bug. If so, delete the test.\n```\nrm -rf VMDeath/DataDumpRequest\n```\n\n## How to add new tase cases for testing race conditions.\n\n1. Create a directory.\n2. Create a `buildenv.sh` to set environment for testing.\n3. Write `test.py` and testcase such like as existing test codes.\n\n### `buildenv.sh`\n\n`buildenv.sh` requires the following.\n\n* `CLASSPATH`\n    * Classpath to build test code.\n    * Should write an absolute path.\n* `MAINCLASS`\n    * A main class of test code.\n* `JAVA_OPTS`\n    * Options for launching java process.\n* `HEAPSTATS_CONF`\n    * Path to `heapstats.conf` for testing\n* Command line to build test code.\n\n### `test.py`\n\n* Import `common.py` on parent directory\n* Use `common.initialize()` method with passing break point names and break condition as arguments\n\n## Result\n\n* `test.py` will touch `test-succeeded` when the test passed correctly. Otherwise, will touch `test-failed` or `test-timeout`.\n* `testcase.sh --result \u003cfile\u003e` will show a summary of specified test cases's result as below.\n\n```\nTest summary:\n  Testcase1: succeeded\n  Testcase2: succeeded\n  Testcase3: failed\n  :\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheapstats%2Frace-condition","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheapstats%2Frace-condition","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheapstats%2Frace-condition/lists"}