suite.addTest(tests.regex.AllTests.suite());
suite.addTest(tests.security.AllTests.suite());
suite.addTest(tests.sql.AllTests.suite());
+ suite.addTest(tests.suncompat.AllTests.suite());
suite.addTest(tests.text.AllTests.suite());
suite.addTest(tests.xml.AllTests.suite());
suite.addTest(tests.xnet.AllTests.suite());
* Only code on the bootclasspath is allowed to get at the
* Unsafe instance.
*/
- ClassLoader calling = VMStack.getCallingClassLoader2();
- ClassLoader current = Unsafe.class.getClassLoader();
-
+ ClassLoader calling = VMStack.getCallingClassLoader();
if ((calling != null) && (calling != Unsafe.class.getClassLoader())) {
throw new SecurityException("Unsafe access denied");
}
--- /dev/null
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package sun.misc;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+public class AllTests {
+
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(AllTests.suite());
+ }
+
+ public static Test suite() {
+ TestSuite suite = tests.TestSuiteFactory.createTestSuite("Test for sun.misc");
+
+ // $JUnit-BEGIN$
+
+ suite.addTestSuite(UnsafeTest.class);
+
+ // $JUnit-END$
+
+ return suite;
+ }
+}
--- /dev/null
+/*
+ * Copyright (C) 2009 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package sun.misc;
+
+import dalvik.annotation.TestLevel;
+import dalvik.annotation.TestTargetClass;
+import dalvik.annotation.TestTargetNew;
+import junit.framework.TestCase;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.Executors;
+
+@TestTargetClass(Unsafe.class)
+public class UnsafeTest extends TestCase {
+
+ @TestTargetNew(
+ level = TestLevel.PARTIAL,
+ notes = "",
+ method = "getUnsafe",
+ args = {}
+ )
+ public void test_getUnsafeForbidden() {
+ try {
+ Unsafe.getUnsafe();
+ fail();
+ } catch (SecurityException expected) {
+ }
+ }
+
+ /**
+ * Regression for 2053217. We used to look one level higher than necessary
+ * on the stack.
+ */
+ @TestTargetNew(
+ level = TestLevel.PARTIAL,
+ notes = "",
+ method = "getUnsafe",
+ args = {}
+ )
+ public void test_getUnsafeForbiddenWithSystemCaller() throws Exception {
+ Callable<Object> callable = Executors.callable(new Runnable() {
+ public void run() {
+ Unsafe.getUnsafe();
+ }
+ });
+
+ try {
+ callable.call();
+ fail();
+ } catch (SecurityException expected) {
+ }
+ }
+}
--- /dev/null
+/* Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package tests.suncompat;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
+/**
+ * Test suite that includes all tests for the suncompat project.
+ */
+public class AllTests {
+
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(AllTests.suite());
+ }
+
+ public static Test suite() {
+ TestSuite suite = tests.TestSuiteFactory.createTestSuite("All suncompat test suites");
+ // $JUnit-BEGIN$
+ suite.addTest(sun.misc.AllTests.suite());
+ // $JUnit-END$
+ return suite;
+ }
+}