123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /* *******************************************************************
- * Copyright (c) 2024 Contributors
- * All rights reserved.
- * This program and the accompanying materials are made available
- * under the terms of the Eclipse Public License v 2.0
- * which accompanies this distribution and is available at
- * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
- * ******************************************************************/
- package org.aspectj.testing;
-
- import static org.aspectj.util.LangUtil.isVMGreaterOrEqual;
- import static org.aspectj.util.LangUtil.isVMLessOrEqual;
-
- /**
- * A test case which only runs on specific Java versions
- *
- * @author Alexander Kriegisch
- */
- public abstract class JavaVersionSpecificXMLBasedAjcTestCase extends XMLBasedAjcTestCase {
- private final int minimumJavaVersion;
- private final int maximumJavaVersion;
-
- protected JavaVersionSpecificXMLBasedAjcTestCase(int minimumJavaVersion) {
- this(minimumJavaVersion, Integer.MAX_VALUE);
- }
-
- protected JavaVersionSpecificXMLBasedAjcTestCase(int minimumJavaVersion, int maximumJavaVersion) {
- this.minimumJavaVersion = minimumJavaVersion;
- this.maximumJavaVersion = maximumJavaVersion;
- }
-
- @Override
- public void setUp() throws Exception {
- boolean withinBounds = isVMGreaterOrEqual(minimumJavaVersion) && isVMLessOrEqual(maximumJavaVersion);
- if (!withinBounds) {
- String errorMessage = "These tests must run on Java version ";
- if (maximumJavaVersion == Integer.MAX_VALUE)
- errorMessage += minimumJavaVersion + " or greater";
- else if (maximumJavaVersion == minimumJavaVersion)
- errorMessage += minimumJavaVersion + " only";
- else
- errorMessage += "range " + minimumJavaVersion + " to " + maximumJavaVersion;
- throw new IllegalStateException(errorMessage);
- }
- super.setUp();
- }
-
- }
|