Skip to content

Commit

Permalink
Fixes DisabledOnNativeImage behavior
Browse files Browse the repository at this point in the history
  • Loading branch information
gastaldi authored and Simulant87 committed Nov 23, 2019
1 parent 2c0cb6a commit 1069709
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,15 @@

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ ElementType.TYPE, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DisabledOnNativeImage {
/**
* Reason for disabling this test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@
import org.junit.jupiter.api.extension.ConditionEvaluationResult;
import org.junit.jupiter.api.extension.ExecutionCondition;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.api.extension.ExtensionContext.Namespace;
import org.junit.jupiter.api.extension.ExtensionContext.Store;
import org.junit.platform.commons.util.StringUtils;

import io.quarkus.test.junit.QuarkusTestExtension.ExtensionState;

public class DisabledOnNativeImageCondition implements ExecutionCondition {

private static final ConditionEvaluationResult ENABLED = ConditionEvaluationResult
Expand All @@ -28,16 +24,15 @@ public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext con
Optional<AnnotatedElement> element = context.getElement();
Optional<DisabledOnNativeImage> disabled = findAnnotation(element, DisabledOnNativeImage.class);
if (disabled.isPresent()) {
Store store = context.getStore(Namespace.GLOBAL);
ExtensionState state = (ExtensionState) store.get(ExtensionState.class.getName());
if (state != null && state.isNativeImage()) {
// Cannot use ExtensionState here because this condition needs to be evaluated before QuarkusTestExtension
boolean nativeImage = findAnnotation(context.getTestClass(), NativeImageTest.class).isPresent();
if (nativeImage) {
String reason = disabled.map(DisabledOnNativeImage::value)
.filter(StringUtils::isNotBlank)
.orElseGet(() -> element.get() + " is @DisabledOnNativeImage");
return ConditionEvaluationResult.disabled(reason);
}
}

return ENABLED;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
*
*/
@Target(ElementType.TYPE)
@ExtendWith({ QuarkusTestExtension.class, DisabledOnNativeImageCondition.class })
@ExtendWith({ DisabledOnNativeImageCondition.class, QuarkusTestExtension.class })
@Retention(RetentionPolicy.RUNTIME)
public @interface NativeImageTest {
}

0 comments on commit 1069709

Please sign in to comment.