mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
tests must be skipped on certain OSes
This commit is contained in:
@@ -15,9 +15,26 @@
|
||||
*/
|
||||
package com.jetbrains;
|
||||
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
|
||||
/**
|
||||
* @author traff
|
||||
*/
|
||||
public enum TestEnv {
|
||||
WINDOWS, LINUX, MAC
|
||||
|
||||
WINDOWS(() -> SystemInfo.isWindows), LINUX(() -> SystemInfo.isLinux), MAC(() -> SystemInfo.isMac);
|
||||
|
||||
@NotNull
|
||||
private final Supplier<Boolean> myThisOs;
|
||||
|
||||
TestEnv(@NotNull final Supplier<Boolean> isThisOs) {
|
||||
myThisOs = isThisOs;
|
||||
}
|
||||
|
||||
public boolean isThisOs() {
|
||||
return myThisOs.get();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.jetbrains.env;
|
||||
|
||||
import com.jetbrains.TestEnv;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
@@ -32,4 +34,5 @@ public @interface EnvTestTagsRequired {
|
||||
* @return tags should exist on interpreter for this test not to be skipped
|
||||
*/
|
||||
String[] tags();
|
||||
TestEnv[] skipOnOSes() default {};
|
||||
}
|
||||
|
||||
+3
-4
@@ -9,7 +9,6 @@ import com.intellij.openapi.ui.Messages;
|
||||
import com.intellij.openapi.ui.TestDialog;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.util.Pair;
|
||||
import com.intellij.openapi.util.SystemInfo;
|
||||
import com.intellij.openapi.util.io.FileUtil;
|
||||
import com.intellij.testFramework.LoggedErrorProcessor;
|
||||
import com.intellij.testFramework.UsefulTestCase;
|
||||
@@ -105,9 +104,7 @@ public abstract class PyEnvTestCase {
|
||||
}
|
||||
else {
|
||||
for (StagingOn so : description.getTestClass().getMethod(description.getMethodName()).getAnnotationsByType(StagingOn.class)) {
|
||||
if (so.os() == TestEnv.WINDOWS && SystemInfo.isWindows ||
|
||||
so.os() == TestEnv.LINUX && SystemInfo.isLinux ||
|
||||
so.os() == TestEnv.MAC && SystemInfo.isMac) {
|
||||
if (so.os().isThisOs()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -251,6 +248,8 @@ public abstract class PyEnvTestCase {
|
||||
catch (final NoSuchMethodException e) {
|
||||
throw new AssertionError("No such method", e);
|
||||
}
|
||||
Assume.assumeFalse("Test skipped on this os", Arrays.stream(classAnnotation.skipOnOSes()).anyMatch(TestEnv::isThisOs));
|
||||
|
||||
final String[] classTags = getTags(classAnnotation);
|
||||
final String[] methodTags = getTags(methodAnnotation);
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@ package com.jetbrains.env.python.dotNet;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.jetbrains.TestEnv;
|
||||
import com.jetbrains.env.EnvTestTagsRequired;
|
||||
import com.jetbrains.env.PyEnvTestCase;
|
||||
import com.jetbrains.python.psi.PyFile;
|
||||
import com.jetbrains.python.sdk.InvalidSdkException;
|
||||
@@ -17,6 +19,7 @@ import java.io.IOException;
|
||||
*
|
||||
* @author Ilya.Kazakevich
|
||||
*/
|
||||
@EnvTestTagsRequired(tags = "iron", skipOnOSes = {TestEnv.LINUX, TestEnv.MAC})
|
||||
public final class PyIronPythonTest extends PyEnvTestCase {
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user