You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

JavaVersionSpecificXMLBasedAjcTestCase.java 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* *******************************************************************
  2. * Copyright (c) 2024 Contributors
  3. * All rights reserved.
  4. * This program and the accompanying materials are made available
  5. * under the terms of the Eclipse Public License v 2.0
  6. * which accompanies this distribution and is available at
  7. * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
  8. * ******************************************************************/
  9. package org.aspectj.testing;
  10. import static org.aspectj.util.LangUtil.isVMGreaterOrEqual;
  11. import static org.aspectj.util.LangUtil.isVMLessOrEqual;
  12. /**
  13. * A test case which only runs on specific Java versions
  14. *
  15. * @author Alexander Kriegisch
  16. */
  17. public abstract class JavaVersionSpecificXMLBasedAjcTestCase extends XMLBasedAjcTestCase {
  18. private final int minimumJavaVersion;
  19. private final int maximumJavaVersion;
  20. protected JavaVersionSpecificXMLBasedAjcTestCase(int minimumJavaVersion) {
  21. this(minimumJavaVersion, Integer.MAX_VALUE);
  22. }
  23. protected JavaVersionSpecificXMLBasedAjcTestCase(int minimumJavaVersion, int maximumJavaVersion) {
  24. this.minimumJavaVersion = minimumJavaVersion;
  25. this.maximumJavaVersion = maximumJavaVersion;
  26. }
  27. @Override
  28. public void setUp() throws Exception {
  29. boolean withinBounds = isVMGreaterOrEqual(minimumJavaVersion) && isVMLessOrEqual(maximumJavaVersion);
  30. if (!withinBounds) {
  31. String errorMessage = "These tests must run on Java version ";
  32. if (maximumJavaVersion == Integer.MAX_VALUE)
  33. errorMessage += minimumJavaVersion + " or greater";
  34. else if (maximumJavaVersion == minimumJavaVersion)
  35. errorMessage += minimumJavaVersion + " only";
  36. else
  37. errorMessage += "range " + minimumJavaVersion + " to " + maximumJavaVersion;
  38. throw new IllegalStateException(errorMessage);
  39. }
  40. super.setUp();
  41. }
  42. }