blob: a37b2713d2a11b442155651e9b7086718ec150a7 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2016 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.tests.model;
import java.util.Hashtable;
import junit.framework.Test;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.compiler.CharOperation;
/**
* Tests JavaCore options
*/
@SuppressWarnings({"rawtypes", "unchecked"})
public class JavaCoreOptionsTests extends ModifyingResourceTests {
public static Test suite() {
return buildModelTestSuite(JavaCoreOptionsTests.class);
}
// Use this static initializer to specify subset for tests
// All specified tests which do not belong to the class are skipped...
static {
// TESTS_NUMBERS = new int[] { 4 };
}
public JavaCoreOptionsTests(String name) {
super(name);
}
public void test1() {
Hashtable options = JavaCore.getOptions();
try {
Hashtable currentOptions = new Hashtable(options);
currentOptions.put(JavaCore.COMPILER_TASK_PRIORITIES, "HIGH,HIGH");
currentOptions.put(JavaCore.COMPILER_TASK_TAGS, "TODO");
JavaCore.setOptions(currentOptions);
Hashtable options2 = JavaCore.getOptions();
String taskTagsValue = (String) options2.get(JavaCore.COMPILER_TASK_TAGS);
String taskPrioritiesValue = (String) options2.get(JavaCore.COMPILER_TASK_PRIORITIES);
char[][] taskPriorities = CharOperation.splitAndTrimOn(',', taskPrioritiesValue.toCharArray());
char[][] taskTags = CharOperation.splitAndTrimOn(',', taskTagsValue.toCharArray());
assertEquals("wrong size", 1, taskPriorities.length);
assertEquals("wrong size", 1, taskTags.length);
} finally {
JavaCore.setOptions(options);
}
}
public void test2() {
Hashtable options = JavaCore.getOptions();
try {
Hashtable currentOptions = new Hashtable(options);
currentOptions.remove(JavaCore.COMPILER_TASK_PRIORITIES);
currentOptions.remove(JavaCore.COMPILER_TASK_TAGS);
JavaCore.setOptions(currentOptions);
Hashtable options2 = JavaCore.getOptions();
String taskTagsValue = (String) options2.get(JavaCore.COMPILER_TASK_TAGS);
String taskPrioritiesValue = (String) options2.get(JavaCore.COMPILER_TASK_PRIORITIES);
assertNull("wrong value", taskTagsValue);
assertNull("wrong value", taskPrioritiesValue);
} finally {
JavaCore.setOptions(options);
}
}
public void test3() {
Hashtable options = JavaCore.getOptions();
try {
Hashtable currentOptions = new Hashtable(options);
currentOptions.put(JavaCore.COMPILER_TASK_PRIORITIES, "HIGH,HIGH");
currentOptions.remove(JavaCore.COMPILER_TASK_TAGS);
JavaCore.setOptions(currentOptions);
Hashtable options2 = JavaCore.getOptions();
String taskTagsValue = (String) options2.get(JavaCore.COMPILER_TASK_TAGS);
String taskPrioritiesValue = (String) options2.get(JavaCore.COMPILER_TASK_PRIORITIES);
assertNull("wrong value", taskTagsValue);
assertNull("wrong value", taskPrioritiesValue);
} finally {
JavaCore.setOptions(options);
}
}
public void test4() {
Hashtable options = JavaCore.getOptions();
try {
Hashtable currentOptions = new Hashtable(options);
currentOptions.remove(JavaCore.COMPILER_TASK_PRIORITIES);
currentOptions.put(JavaCore.COMPILER_TASK_TAGS, "TODO");
JavaCore.setOptions(currentOptions);
Hashtable options2 = JavaCore.getOptions();
String taskTagsValue = (String) options2.get(JavaCore.COMPILER_TASK_TAGS);
String taskPrioritiesValue = (String) options2.get(JavaCore.COMPILER_TASK_PRIORITIES);
assertNull("wrong value", taskTagsValue);
assertNull("wrong value", taskPrioritiesValue);
} finally {
JavaCore.setOptions(options);
}
}
// https://bugs.eclipse.org/bugs/show_bug.cgi?id=464845
public void test5() {
assertTrue(JavaCore.compareJavaVersions("1.1", "1.3") < 0);
assertTrue(JavaCore.compareJavaVersions("1.4", "1.1") > 0);
assertTrue(JavaCore.compareJavaVersions("1.8", "cldc1.1") > 0);
assertTrue(JavaCore.compareJavaVersions("cldc1.1", "1.1") > 0);
assertTrue(JavaCore.compareJavaVersions("1.1", "cldc1.1") < 0);
assertTrue(JavaCore.compareJavaVersions("1.8", "1.8") == 0);
assertTrue(JavaCore.compareJavaVersions("1.8", "9") < 0);
assertTrue(JavaCore.compareJavaVersions("9", "1.8") > 0);
assertTrue(JavaCore.compareJavaVersions("9.0.1", "9.1.2") == 0);
assertTrue(JavaCore.compareJavaVersions("9", "9.1.2") == 0);
assertTrue(JavaCore.compareJavaVersions("12", "11") > 0);
assertTrue(JavaCore.compareJavaVersions("12", "1.5") > 0);
String latest = JavaCore.latestSupportedJavaVersion();
String latestPlus = "" + (Integer.parseInt(latest) + 1);
assertTrue(JavaCore.compareJavaVersions(latest, latestPlus) == 0);
}
}