JCStress -Testergebnisse, die ich nicht verstehen kannJava

Java-Forum
Guest
 JCStress -Testergebnisse, die ich nicht verstehen kann

Post by Guest »

Kann mir jemand helfen, zu verstehen, warum ich in dieser JCStress verbotene Ergebnisse bekomme? Das Szenario ist einfach. Wir haben auch zwei Akteure, die genau gleich sind - sie erfassen den Staat und das Ergebnis der Operation speziell in dieser Reihenfolge. Der Test liefert keine verbotenen Ergebnisse mit einem Einzelleser -Schauspieler. < /P>

Code: Select all

public class RequestResultTest {

@JCStressTest
@Outcome(id = "1, 12345", expect = Expect.ACCEPTABLE)
@Outcome(id = "0, 0", expect = Expect.ACCEPTABLE)
@Outcome(id = "0, 12345", expect = Expect.ACCEPTABLE)
@Outcome(id = "1, 0", expect = Expect.FORBIDDEN, desc = "State is finished, but not result recorded")
@State
public static class SingleWriterMultiReaderTest {

private final SomeResult underTest;

public SingleWriterMultiReaderTest() {
this.underTest = new SomeResult();
}

@Actor
public void finish() {
underTest.finish(12345L);
}

@Actor
public void getStateAndResult1(IJ_Result result) {
int state = underTest.getState();
long longResult = underTest.getValue();

result.r1 = state;
result.r2 = longResult;
}

@Actor
public void getStateAndResult2(IJ_Result result) {
int state = underTest.getState();
long longResult = underTest.getValue();

result.r1 = state;
result.r2 = longResult;
}
}

public static final class SomeResult {

public static final int RUNNING = 0;
public static final int FINISHED = 1;

private volatile int state;
private long value;

public SomeResult() {
this.value = 0L;
this.state = RUNNING;
}

void finish(long value) {
this.value = value;
this.state = FINISHED;
}

public long getValue() {
return value;
}

public int getState() {
return state;
}
}
}
< /code>
Hier ist einer der Ausgänge. < /p>
  Compilation: split
finish: Interpreter
getStateAndResult1: C1
getStateAndResult2: C2

JVM args: [-Dfile.encoding=UTF-8, -XX:-UseBiasedLocking, -XX:+StressLCM, -XX:+StressGCM, -XX:+StressIGVN, -XX:+StressCCP, -XX:StressSeed=1773949580]
Fork: #1

RESULT      SAMPLES     FREQ      EXPECT  DESCRIPTION
0, 0  142,382,593   97,91%  Acceptable
0, 12345      116,937    0,08%  Acceptable
1, 0        7,940

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post