staticfinalStringCLSOnLSMEqualZero="When counted loop safepoints are enabled, LoopStripMiningIter must be at least 1 (a safepoint every 1 iteration): setting it to 1";
staticfinalStringCLSOffLSMGreaterZero="Disabling counted safepoints implies no loop strip mining: setting LoopStripMiningIter to 0";
testWith(output->output.shouldNotContain(CLSOffLSMGreaterZero),"should have CLS and LSM enabled",true,100,"-XX:LoopStripMiningIter=100",gc,extraVMArg);
testWith(output->output.shouldContain(CLSOffLSMGreaterZero),"should have CLS and LSM disabled",false,0,"-XX:-UseCountedLoopSafepoints","-XX:LoopStripMiningIter=100",gc,extraVMArg);
testWith(output->output.shouldContain(CLSOnLSMEqualZero),"should have CLS and LSM enabled",true,1,"-XX:LoopStripMiningIter=0",gc,extraVMArg);
testWith(output->output.shouldNotContain(CLSOnLSMEqualZero),"should have CLS and LSM disabled",false,0,"-XX:-UseCountedLoopSafepoints","-XX:LoopStripMiningIter=0",gc,extraVMArg);
}else{
testWith(output->output.shouldNotContain(CLSOffLSMGreaterZero),"should have CLS and LSM enabled",true,100,"-XX:LoopStripMiningIter=100",gc);
testWith(output->output.shouldContain(CLSOffLSMGreaterZero),"should have CLS and LSM disabled",false,0,"-XX:-UseCountedLoopSafepoints","-XX:LoopStripMiningIter=100",gc);
testWith(output->output.shouldContain(CLSOnLSMEqualZero),"should have CLS and LSM enabled",true,1,"-XX:LoopStripMiningIter=0",gc);
testWith(output->output.shouldNotContain(CLSOnLSMEqualZero),"should have CLS and LSM disabled",false,0,"-XX:-UseCountedLoopSafepoints","-XX:LoopStripMiningIter=0",gc);