Merge "Ban setuid or setgid tcpdump on devices." into gingerbread
diff --git a/tests/tests/permission/src/android/permission/cts/NoExecutePermissionTest.java b/tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java
similarity index 81%
rename from tests/tests/permission/src/android/permission/cts/NoExecutePermissionTest.java
rename to tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java
index 5c0a4c3..6450e58 100644
--- a/tests/tests/permission/src/android/permission/cts/NoExecutePermissionTest.java
+++ b/tests/tests/os/src/android/os/cts/NoExecutePermissionTest.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package android.permission.cts;
+package android.os.cts;
import java.io.File;
import java.io.FileNotFoundException;
@@ -29,6 +29,10 @@
public class NoExecutePermissionTest extends TestCase {
public void testNoExecutePermission() throws FileNotFoundException {
+ if (!cpuHasNxSupport()) {
+ return;
+ }
+
String heapPermissions = null;
String stackPermissions = null;
@@ -62,4 +66,16 @@
assertEquals("NX (No Execute) not enabled for heap", "rw-p", heapPermissions);
assertEquals("NX (No Execute) not enabled for stack", "rw-p", stackPermissions);
}
+
+ private static boolean cpuHasNxSupport() {
+ if (CpuFeatures.isArmCpu() && !CpuFeatures.isArm7Compatible()) {
+ // ARM processors before v7 do not have NX support.
+ // http://code.google.com/p/android/issues/detail?id=17328
+ return false;
+ }
+
+ // TODO: handle other processors. For now, assume those processors
+ // have NX support.
+ return true;
+ }
}