info.jerrinot:rohypnol-maven-it

Rohypnol - Rohypnol pills for your JVM

License

License

Categories

Categories

Maven Build Tools
GroupId

GroupId

info.jerrinot
ArtifactId

ArtifactId

rohypnol-maven-it
Last Version

Last Version

0.1
Release Date

Release Date

Type

Type

jar
Description

Description

Rohypnol - Rohypnol pills for your JVM

Download rohypnol-maven-it

How to add to project

<!-- https://jarcasting.com/artifacts/info.jerrinot/rohypnol-maven-it/ -->
<dependency>
    <groupId>info.jerrinot</groupId>
    <artifactId>rohypnol-maven-it</artifactId>
    <version>0.1</version>
</dependency>
// https://jarcasting.com/artifacts/info.jerrinot/rohypnol-maven-it/
implementation 'info.jerrinot:rohypnol-maven-it:0.1'
// https://jarcasting.com/artifacts/info.jerrinot/rohypnol-maven-it/
implementation ("info.jerrinot:rohypnol-maven-it:0.1")
'info.jerrinot:rohypnol-maven-it:jar:0.1'
<dependency org="info.jerrinot" name="rohypnol-maven-it" rev="0.1">
  <artifact name="rohypnol-maven-it" type="jar" />
</dependency>
@Grapes(
@Grab(group='info.jerrinot', module='rohypnol-maven-it', version='0.1')
)
libraryDependencies += "info.jerrinot" % "rohypnol-maven-it" % "0.1"
[info.jerrinot/rohypnol-maven-it "0.1"]

Dependencies

test (1)

Group / Artifact Type Version
junit : junit jar 4.12

Project Modules

There are no modules declared in this project.

Rohypnol

Feed your junit tests with rohypnol and reveal race conditions!

The idea is to use a Java-agent to insert randomized pauses into your code. This should reveal race-conditions.

Usage:

Start your JVM with -javaagent:<path>/rohypnol-1.0-SNAPSHOT-allinone.jar

Configration:

Currently hard-coded. It instruments only classes starting with com.hazelcast and parameters are in Constants

TODO:

  • Configurable strategy to select classes & methods to instrument.
  • Configurable {White/Black}list to feed the pill to selected threads only.
  • Multiple strategies to generate sleep duration. Currently it always uses uniform distribution.

Credits:

@Holmistr came-up with the idea. Implementation bugs are mine.

Versions

Version
0.1