ошибка в использовании jcstress из-за тестов не может быть найдена

Я пытаюсь использовать jcstress для тестирования в IDEA, и вот конфигурация в IDEA.

код не в тему, но все равно выложу

      @JCStressTest
@Outcome(id={"1","4"},expect = Expect.ACCEPTABLE,desc="ok")
@Outcome(id="0",expect = Expect.ACCEPTABLE_INTERESTING,desc = "danger")
@State
public class OrderingTest01 {
    int num = 0;
    boolean ready = false;

    @Actor
    public void actor1(IJ_Result r){
        if(ready){
            r.r1 = num + num;
        }else{
            r.r1 =1;
        }
    }

    @Actor
    public void actor2(IJ_Result r){
        num =2;
        ready = true;
    }
}

Я получил следующий результат, когда я запустил его

      Java Concurrency Stress Tests
---------------------------------------------------------------------------------
Rev: a0cc333318f0a3e5, built by shade with 11.0.8-testing at 2020-10-14T09:49:41Z

Burning up to figure out the exact CPU count....... done!

Probing the target OS:
 (all failures are non-fatal, but may affect testing accuracy)

----- [FAILED] Trying to set affinity with taskset
Cannot run program "taskset": error=2, No such file or directory

Initializing and probing the target VM: 
 (all failures are non-fatal, but may affect testing accuracy)

----- [OK] Unlocking diagnostic VM options
----- [OK] Trimming down the default VM heap size to 1/16-th of max RAM
----- [OK] Trimming down the number of compiler threads
----- [OK] Trimming down the number of parallel GC threads
----- [OK] Trimming down the number of concurrent GC threads
----- [OK] Trimming down the number of G1 concurrent refinement GC threads
----- [OK] Testing @Contended works on all results and infra objects
----- [OK] Unlocking Whitebox API for online de-optimization: all methods
----- [OK] Unlocking Whitebox API for online de-optimization: selected methods
----- [FAILED] Unlocking C2 local code motion randomizer
Error: VM option 'StressLCM' is develop and is available only in debug version of VM.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

----- [FAILED] Unlocking C2 global code motion randomizer
Error: VM option 'StressGCM' is develop and is available only in debug version of VM.
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

----- [FAILED] Unlocking C2 iterative global value numbering randomizer
Unrecognized VM option 'StressIGVN'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

----- [OK] Testing allocation profiling
----- [FAILED] Trying Thread.onSpinWait
Exception in thread "main" java.lang.NoSuchMethodError: java.lang.Thread.onSpinWait()V
    at org.openjdk.jcstress.vm.ThreadSpinWaitTestMain.main(ThreadSpinWaitTestMain.java:30)


Probing what VM modes are available:
 (failures are non-fatal, but may miss some interesting cases)

----- [OK] [-Xint]
----- [OK] [-XX:TieredStopAtLevel=1]
----- [OK] [-XX:-TieredCompilation]
----- [OK] [-XX:-TieredCompilation]

  Hardware CPUs in use: 16, using plain hard busywait.
  Test preset mode: "default"
  Writing the test results to "jcstress-results-2022-09-25-19-43-58.bin.gz"
  Parsing results to "results/"
  Running each test matching "OrderingTest01" for 1 forks, 5 iterations, 1000 ms each
  Each JVM would execute at most 5 tests in the row.
  Solo stride size will be autobalanced within [10, 10000] elements, but taking no more than 100 Mb.

FATAL: No matching tests.

Разве это не должно быть похоже на то, чтобы дать немногоRun Resultsи файл с именем index.html? Что значитFATAL: No matching tests.???

Или что-то не так с конфигурацией???

1 ответ

У меня была такая же проблема, переход на Java 11,17,19 мне тоже не помог. Проблема исчезла, когда я запустил jcstress в сгенерированном проекте из архетипа maven.

      mvn archetype:generate "-DinteractiveMode=false" "-DarchetypeGroupId=org.openjdk.jcstress" "-DarchetypeArtifactId=jcstress-java-test-archetype" "-DarchetypeVersion=0.4" "-DgroupId=org.sample" "-DartifactId=test" "-Dversion=1.0"

и использовать банку

      java -jar target/jcstress.jar -t org.sample.MyConcurrencyTest

Использование jcstress как отдельной зависимости

Запуск первого теста JCStress


С 2022 года у IntelliJ есть плагин JCStress, но похоже, он не работает ни для пользовательских проектов, ни для клонированного git-проекта jcstress . Это кажется довольно простым: просто запустите тест, как если бы это был основной метод. Но я не нашел как это исправить

Другие вопросы по тегам