changeset 6295:904517c1cd06

Merge.
author Doug Simon <doug.simon@oracle.com>
date Tue, 28 Aug 2012 14:17:22 +0200
parents 01d274503562 (current diff) b0fc02623974 (diff)
children 6a51bc216306
files
diffstat 14 files changed, 82 insertions(+), 72 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/ResolvedJavaType.java	Tue Aug 28 14:17:22 2012 +0200
@@ -159,6 +159,8 @@
 
     /**
      * Returns the instance fields declared in this class sorted by field offset.
+     * A zero-length array is returned for array and primitive classes.
+     *
      * @return an array of instance fields
      */
     ResolvedJavaField[] declaredFields();
--- a/graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/BigBangTest.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/BigBangTest.java	Tue Aug 28 14:17:22 2012 +0200
@@ -26,14 +26,14 @@
 
 public class BigBangTest {
 
-    @Test
+    //@Test
     public void helloWorldTest() {
         BootImageGenerator generator = new BootImageGenerator();
         generator.addEntryMethod(TestPrograms.class, "helloWorldTest");
         Assert.assertArrayEquals(generator.getBigBang().printState(), new int[]{3, 148, 66, 24});
     }
 
-    @Test
+    //@Test
     public void formattedOutputTest() {
         BootImageGenerator generator = new BootImageGenerator();
         generator.addEntryMethod(TestPrograms.class, "formattedOutputTest");
@@ -63,7 +63,7 @@
         Assert.assertArrayEquals(generator.getBigBang().printState(), new int[]{2, 28, 5, 3});
     }
 
-    @Test
+    //@Test
     public void arrayListTestWithCalls() {
         BootImageGenerator generator = new BootImageGenerator();
         generator.addEntryMethod(TestPrograms.class, "arrayListTestWithCalls");
--- a/graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/TestPrograms.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot.test/src/com/oracle/graal/boot/TestPrograms.java	Tue Aug 28 14:17:22 2012 +0200
@@ -24,6 +24,8 @@
 
 import java.util.*;
 
+//JaCoCo Exclude
+
 public class TestPrograms {
     public static void helloWorldTest() {
         System.out.println("Hello world!");
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/BigBang.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/BigBang.java	Tue Aug 28 14:17:22 2012 +0200
@@ -22,6 +22,7 @@
  */
 package com.oracle.graal.boot;
 
+import java.io.*;
 import java.lang.reflect.*;
 import java.util.*;
 import java.util.concurrent.*;
@@ -35,6 +36,20 @@
 
 public class BigBang {
 
+    public static final PrintStream out;
+    static {
+        if (Boolean.getBoolean("BigBang.verbose")) {
+            out = System.out;
+        } else {
+            OutputStream sink = new OutputStream() {
+                @Override
+                public void write(int b) throws IOException {
+                }
+            };
+            out = new PrintStream(sink);
+        }
+    }
+
     private static final int THREADS = 4;
 
     private MetaAccessProvider metaAccessProvider;
@@ -105,7 +120,7 @@
                 if (node instanceof FrameState || node instanceof MonitorEnterNode || node instanceof MonitorExitNode || node instanceof LoadFieldNode || node instanceof IsNullNode || node instanceof InstanceOfNode) {
                     // OK.
                 } else {
-                    System.out.println("Unknown sink - black hole? " + node);
+                    BigBang.out.println("Unknown sink - black hole? " + node);
                 }
             }
 
@@ -149,7 +164,7 @@
             if (localNode.kind() == Kind.Object) {
                 ResolvedJavaMethod method = ((StructuredGraph) localNode.graph()).method();
                 resultElement = getProcessedMethod(method).getParameter(localNode.index());
-                System.out.println("resultElement = " + resultElement + " index= " + localNode.index() + ", node=" + node);
+                BigBang.out.println("resultElement = " + resultElement + " index= " + localNode.index() + ", node=" + node);
             }
         }
 
@@ -159,7 +174,7 @@
     }
 
     public synchronized void postOperation(UniverseExpansionOp operation) {
-        System.out.println("posting operation " + operation);
+        BigBang.out.println("posting operation " + operation);
         executor.execute(operation);
         postedOperationCount++;
     }
@@ -210,7 +225,7 @@
             assert field.isStatic();
             if (field.getUsageCount() > 0 && field.getJavaField().kind() == Kind.Object) {
                 Object value = field.getJavaField().getValue(null).asObject();
-                System.out.printf("Root field %s: %s\n", field, value);
+                BigBang.out.printf("Root field %s: %s\n", field, value);
                 scanField(scannedObjects, field, value);
             }
         }
@@ -256,7 +271,7 @@
         for (MethodElement methodElement : methodMap.values()) {
             if (methodElement.hasGraph()) {
                 if (Modifier.isNative(methodElement.getResolvedJavaMethod().accessFlags())) {
-                    System.out.println("Included native method: " + methodElement.getResolvedJavaMethod());
+                    BigBang.out.println("Included native method: " + methodElement.getResolvedJavaMethod());
                     nativeMethodCount++;
                 }
             }
@@ -266,7 +281,7 @@
         for (MethodElement methodElement : methodMap.values()) {
             if (methodElement.hasGraph()) {
                 if (!Modifier.isNative(methodElement.getResolvedJavaMethod().accessFlags())) {
-                    System.out.println("Included method: " + methodElement.getResolvedJavaMethod());
+                    BigBang.out.println("Included method: " + methodElement.getResolvedJavaMethod());
                     methodCount++;
                 }
             }
@@ -276,16 +291,16 @@
         int fieldCount = 0;
         for (FieldElement fieldElement : fieldMap.values()) {
             if (fieldElement.getUsageCount() > 0) {
-                System.out.print("Included field: " + fieldElement.getJavaField() + " / ");
+                BigBang.out.print("Included field: " + fieldElement.getJavaField() + " / ");
                 fieldElement.printSeenTypes();
-                System.out.println();
+                BigBang.out.println();
                 fieldCount++;
                 includedTypes.add(fieldElement.getJavaField().holder());
             }
         }
 
         for (ResolvedJavaType type : includedTypes) {
-            System.out.println("Included type: " + type);
+            BigBang.out.println("Included type: " + type);
         }
 
         System.out.println("Number of included native methods: " + nativeMethodCount);
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/BootImageGenerator.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/BootImageGenerator.java	Tue Aug 28 14:17:22 2012 +0200
@@ -43,7 +43,7 @@
         } catch (NoSuchMethodException | SecurityException e) {
             throw new RuntimeException("Could not find method " + name + " with parameter types " + parameterTypes + " in class " + convertedClass.getCanonicalName());
         }
-        System.out.printf("Adding method %s.%s to the boot image\n", method.getDeclaringClass().getName(), method.getName());
+        BigBang.out.printf("Adding method %s.%s to the boot image\n", method.getDeclaringClass().getName(), method.getName());
         addEntryMethod(metaAccess.getResolvedJavaMethod(method));
     }
 
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/ArrayTypeElement.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/ArrayTypeElement.java	Tue Aug 28 14:17:22 2012 +0200
@@ -50,16 +50,16 @@
         LoadIndexedNode load = (LoadIndexedNode) use;
         ResolvedJavaType type = load.array().objectStamp().type();
         if (type == null) {
-            System.out.println("FATAL error: Array access without type!");
-            System.out.println(load.array());
+            BigBang.out.println("FATAL error: Array access without type!");
+            BigBang.out.println(load.array());
             if (load.array() instanceof ValueProxyNode) {
                 ValueProxyNode valueProxyNode = (ValueProxyNode) load.array();
-                System.out.println("value proxy node stamp " + valueProxyNode.stamp());
-                System.out.println("value proxy node stamp type " + valueProxyNode.objectStamp().type());
-                System.out.println("value proxy source: " + valueProxyNode.value());
-                System.out.println("value proxy source stamp: " + valueProxyNode.value().stamp());
+                BigBang.out.println("value proxy node stamp " + valueProxyNode.stamp());
+                BigBang.out.println("value proxy node stamp type " + valueProxyNode.objectStamp().type());
+                BigBang.out.println("value proxy source: " + valueProxyNode.value());
+                BigBang.out.println("value proxy source stamp: " + valueProxyNode.value().stamp());
             }
-            System.out.println(((StructuredGraph) load.graph()).method());
+            BigBang.out.println(((StructuredGraph) load.graph()).method());
             System.exit(-1);
         }
         ResolvedJavaType componentType = type.componentType();
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/CastElement.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/CastElement.java	Tue Aug 28 14:17:22 2012 +0200
@@ -48,7 +48,7 @@
             if (type.isSubtypeOf(checkCastNode.targetClass())) {
                 newSet.add(type);
             } else {
-                System.out.println("filtering " + type + " vs " + checkCastNode.targetClass());
+                BigBang.out.println("filtering " + type + " vs " + checkCastNode.targetClass());
             }
         }
         super.unionTypes(bb, sourceNode, newSet);
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/Element.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/Element.java	Tue Aug 28 14:17:22 2012 +0200
@@ -74,7 +74,7 @@
             if (declaredType != null) {
                 for (ResolvedJavaType seenType : newSeenTypes) {
                     if (!seenType.isSubtypeOf(declaredType)) {
-                        System.out.println("Wrong type found " + seenType + " where declared type of element " + this + " is " + declaredType);
+                        BigBang.out.println("Wrong type found " + seenType + " where declared type of element " + this + " is " + declaredType);
                         System.exit(-1);
                     }
                 }
@@ -121,7 +121,7 @@
 
     public synchronized void printSeenTypes() {
         for (ResolvedJavaType type : seenTypes) {
-            System.out.print(type.name() + " ");
+            BigBang.out.print(type.name() + " ");
         }
     }
 }
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/InvokeElement.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/InvokeElement.java	Tue Aug 28 14:17:22 2012 +0200
@@ -47,11 +47,11 @@
     @Override
     protected synchronized void unionTypes(BigBang bb, Node sourceNode, Set<ResolvedJavaType> newSeenTypes) {
 
-        System.out.println("union invoke element " + this + " new types = " + newSeenTypes + " sourceNode= " + sourceNode);
+        BigBang.out.println("union invoke element " + this + " new types = " + newSeenTypes + " sourceNode= " + sourceNode);
         int index = 0;
         for (Node arg : methodCallTarget.arguments()) {
             if (arg == sourceNode) {
-                System.out.println("source node " + sourceNode + " is at index " + index + " stamp=" + ((ValueNode) sourceNode).stamp());
+                BigBang.out.println("source node " + sourceNode + " is at index " + index + " stamp=" + ((ValueNode) sourceNode).stamp());
                 unionTypes(bb, sourceNode, newSeenTypes, index);
             }
             ++index;
@@ -79,9 +79,9 @@
                 if (seenTypes.add(type)) {
                     // There is a new receiver type!
                     ResolvedJavaMethod method = type.resolveMethodImpl(methodCallTarget.targetMethod());
-                    System.out.println("resolved method " + method + " for type " + type + " and method " + methodCallTarget.targetMethod());
+                    BigBang.out.println("resolved method " + method + " for type " + type + " and method " + methodCallTarget.targetMethod());
                     if (method == null) {
-                        System.out.println("!!! type = " + type + " / " + methodCallTarget.targetMethod());
+                        BigBang.out.println("!!! type = " + type + " / " + methodCallTarget.targetMethod());
                     }
                     if (!concreteTargets.contains(method)) {
                         concreteTargets.add(method);
--- a/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/MethodElement.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.boot/src/com/oracle/graal/boot/meta/MethodElement.java	Tue Aug 28 14:17:22 2012 +0200
@@ -92,11 +92,11 @@
         }
 
         if (Modifier.isNative(resolvedJavaMethod.accessFlags())) {
-            System.out.println("NATIVE METHOD " + resolvedJavaMethod);
+            BigBang.out.println("NATIVE METHOD " + resolvedJavaMethod);
             return;
         }
 
-        System.out.println("parsing graph " + resolvedJavaMethod + ", locals=" + resolvedJavaMethod.maxLocals());
+        BigBang.out.println("parsing graph " + resolvedJavaMethod + ", locals=" + resolvedJavaMethod.maxLocals());
         GraphBuilderConfiguration config = new GraphBuilderConfiguration(ResolvePolicy.Eager, null);
         GraphBuilderPhase graphBuilderPhase = new GraphBuilderPhase(bb.getMetaAccess(), config, OptimisticOptimizations.NONE);
         graphBuilderPhase.apply(newGraph);
@@ -113,7 +113,7 @@
         for (NewInstanceNode newInstance : newGraph.getNodes(NewInstanceNode.class)) {
             Set<ResolvedJavaType> types = new HashSet<>();
             types.add(newInstance.instanceClass());
-            System.out.println("propagate new instance " + newInstance + ", " + newInstance.instanceClass());
+            BigBang.out.println("propagate new instance " + newInstance + ", " + newInstance.instanceClass());
             for (Node use : newInstance.usages()) {
                 Element element = bb.getSinkElement(use, newInstance);
                 assert element != null;
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotResolvedJavaType.java	Tue Aug 28 14:17:22 2012 +0200
@@ -250,7 +250,11 @@
     @Override
     public ResolvedJavaField[] declaredFields() {
         if (fields == null) {
-            fields = HotSpotGraalRuntime.getInstance().getCompilerToVM().JavaType_fields(this);
+            if (isArrayClass) {
+                fields = new ResolvedJavaField[0];
+            } else {
+                fields = HotSpotGraalRuntime.getInstance().getCompilerToVM().JavaType_fields(this);
+            }
         }
         return fields;
     }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypePrimitive.java	Tue Aug 28 12:15:10 2012 +0200
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotTypePrimitive.java	Tue Aug 28 14:17:22 2012 +0200
@@ -152,7 +152,7 @@
 
     @Override
     public ResolvedJavaField[] declaredFields() {
-        return null;
+        return new ResolvedJavaField[0];
     }
 
     @Override
--- a/mx/commands.py	Tue Aug 28 12:15:10 2012 +0200
+++ b/mx/commands.py	Tue Aug 28 14:17:22 2012 +0200
@@ -79,7 +79,7 @@
 """
 
 def clean(args):
-    """cleans the GraalVM source tree"""
+    """clean the GraalVM source tree"""
     opts = mx.clean(args, parser=ArgumentParser(prog='mx clean'))
     if opts.native:
         os.environ.update(ARCH_DATA_MODEL='64', LANG='C', HOTSPOT_BUILD_JOBS='16')
@@ -396,7 +396,7 @@
     return ret
 
 def jdkhome(args, vm=None):
-    """prints the JDK directory selected for the 'vm' command"""
+    """print the JDK directory selected for the 'vm' command"""
 
     build = _vmbuild if _vmSourcesAvailable else 'product'
     print join(_graal_home, 'jdk' + mx.java().version, build)
@@ -582,7 +582,7 @@
         # Exclude all compiler tests and snippets
         excludes = ['com.oracle.graal.compiler.tests.*', 'com.oracle.graal.jtt.*']
         for p in mx.projects():
-            excludes += _find_classes_with_annotations(p, None, ['@Snippet', '@ClassSubstitution'], includeInnerClasses=True)
+            excludes += _find_classes_with_annotations(p, None, ['@Snippet', '@ClassSubstitution', '@Test'], includeInnerClasses=True)
             excludes += p.find_classes_with_matching_source_line(None, lambda line: 'JaCoCo Exclude' in line, includeInnerClasses=True)
             
         includes = ['com.oracle.graal.*', 'com.oracle.max.*']
@@ -608,7 +608,7 @@
     matches = lambda line : len([a for a in annotations if line == a or line.startswith(a + '(')]) != 0
     return p.find_classes_with_matching_source_line(pkgRoot, matches, includeInnerClasses)
 
-def _run_tests(args, harnessName, harness):
+def _run_tests(args, harness):
     pos = [a for a in args if a[0] != '-' and a[0] != '@' ]
     neg = [a[1:] for a in args if a[0] == '-']
     vmArgs = [a[1:] for a in args if a[0] == '@']
@@ -620,39 +620,34 @@
         return False
 
     for p in mx.projects():
-        if getattr(p, 'testHarness', None) == harnessName:
-            classes = _find_classes_with_annotations(p, None, ['@Test'])
+        classes = _find_classes_with_annotations(p, None, ['@Test'])
 
-            if len(pos) != 0:
-                classes = [c for c in classes if containsAny(c, pos)]
-            if len(neg) != 0:
-                classes = [c for c in classes if not containsAny(c, neg)]
+        if len(pos) != 0:
+            classes = [c for c in classes if containsAny(c, pos)]
+        if len(neg) != 0:
+            classes = [c for c in classes if not containsAny(c, neg)]
 
-            if len(classes) != 0:
-                mx.log('running tests in ' + p.name)
-                harness(p, vmArgs, classes)
+        if len(classes) != 0:
+            mx.log('running tests in ' + p.name)
+            harness(p, vmArgs, classes)
 
 def unittest(args):
-    """run the Graal Compiler Unit Tests in the GraalVM
+    """run the JUnit tests
 
     If filters are supplied, only tests whose fully qualified name
     include a filter as a substring are run. Negative filters are
     those with a '-' prefix. VM args should have a @ prefix."""
 
     def harness(p, vmArgs, classes):
-        vm(['-XX:-BootstrapGraal', '-esa'] + vmArgs + ['-cp', mx.classpath(p.name), 'org.junit.runner.JUnitCore'] + classes)
-    _run_tests(args, 'unittest', harness)
-
-def jtt(args):
-    """run the Java Tester Tests in the GraalVM
-
-    If filters are supplied, only tests whose fully qualified name
-    include a filter as a substring are run. Negative filters are
-    those with a '-' prefix. VM args should have a @ prefix."""
-
-    def harness(p, vmArgs, classes):
-        vm(['-XX:-BootstrapGraal', '-XX:CompileOnly=com/oracle/graal/jtt', '-XX:CompileCommand=compileonly,java/lang/Object::<init>', '-XX:CompileCommand=quiet', '-Xcomp', '-esa'] + vmArgs + ['-cp', mx.classpath(p.name), 'org.junit.runner.JUnitCore'] + classes)
-    _run_tests(args, 'jtt', harness)
+        prefixArgs = ['-XX:-BootstrapGraal', '-esa']
+        if p.name.endswith('.jtt'):
+            prefixArgs = prefixArgs + [
+                '-XX:CompileOnly=com/oracle/graal/jtt',
+                '-XX:CompileCommand=compileonly,java/lang/Object::<init>',
+                '-XX:CompileCommand=quiet',
+                '-Xcomp']
+        vm(prefixArgs + vmArgs + ['-cp', mx.classpath(p.name), 'org.junit.runner.JUnitCore'] + classes)
+    _run_tests(args, harness)
 
 def buildvms(args):
     """build one or more VMs in various configurations"""
@@ -753,11 +748,7 @@
             tasks.append(t.stop())
 
             t = Task('UnitTests:' + vmbuild)
-            unittest([])
-            tasks.append(t.stop())
-
-            t = Task('JavaTesterTests:' + vmbuild)
-            jtt(['@-XX:CompileCommand=exclude,*::run*'] if vmbuild == 'product'  else [])
+            unittest(['@-XX:CompileCommand=exclude,*::run*'] if vmbuild == 'product'  else [])
             tasks.append(t.stop())
 
             for test in sanitycheck.getDacapos(level=sanitycheck.SanityCheckLevel.Gate, gateBuildLevel=vmbuild):
@@ -935,7 +926,7 @@
     sanitycheck.getSPECjvm2008(benchArgs, skipValid, wt, it).bench(vm, opts=vmArgs)
 
 def hsdis(args, copyToDir=None):
-    """downloads the hsdis library
+    """download the hsdis library
 
     This is needed to support HotSpot's assembly dumping features.
     By default it downloads the Intel syntax version, use the 'att' argument to install AT&T syntax."""
@@ -950,7 +941,7 @@
         shutil.copy(path, copyToDir)
 
 def hcfdis(args):
-    """disassembles HexCodeFiles embedded in text files
+    """disassemble HexCodeFiles embedded in text files
 
     Run a tool over the input files to convert all embedded HexCodeFiles
     to a disassembled format."""
@@ -960,7 +951,7 @@
     mx.run_java(['-jar', path] + args)
 
 def jacocoreport(args):
-    """creates a JaCoCo coverage report
+    """create a JaCoCo coverage report
 
     Creates the report from the 'jacoco.exec' file in the current directory.
     Default output directory is 'coverage', but an alternative can be provided as an argument."""
@@ -973,7 +964,7 @@
     mx.run_java(['-jar', jacocoreport.get_path(True), '-in', 'jacoco.exec', '-g', join(_graal_home, 'graal'), out])
 
 def site(args):
-    """creates a website containing javadoc and the project dependency graph"""
+    """create a website containing javadoc and the project dependency graph"""
 
     return mx.site(['--name', 'Graal',
                     '--jd', '@-tag', '--jd', '@test:X',
@@ -1003,7 +994,6 @@
         'gv' : [gv, ''],
         'bench' : [bench, '[-resultfile file] [all(default)|dacapo|specjvm2008|bootstrap]'],
         'unittest' : [unittest, '[filters...]'],
-        'jtt' : [jtt, '[filters...]'],
         'jacocoreport' : [jacocoreport, '[output directory]'],
         'site' : [site, '[-options]'],
         'vm': [vm, '[-options] class [args...]'],
--- a/mx/projects	Tue Aug 28 12:15:10 2012 +0200
+++ b/mx/projects	Tue Aug 28 14:17:22 2012 +0200
@@ -122,7 +122,6 @@
 project@com.oracle.graal.snippets.test@dependencies=com.oracle.graal.snippets,com.oracle.graal.tests
 project@com.oracle.graal.snippets.test@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.snippets.test@javaCompliance=1.7
-project@com.oracle.graal.snippets.test@testHarness=unittest
 
 # graal.nodes
 project@com.oracle.graal.nodes@subDir=graal
@@ -185,7 +184,6 @@
 project@com.oracle.graal.tests@dependencies=JUNIT,com.oracle.graal.printer,com.oracle.graal.api
 project@com.oracle.graal.tests@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.tests@javaCompliance=1.7
-project@com.oracle.graal.tests@testHarness=unittest
 
 # graal.jtt
 project@com.oracle.graal.jtt@subDir=graal
@@ -193,7 +191,6 @@
 project@com.oracle.graal.jtt@dependencies=JUNIT
 project@com.oracle.graal.jtt@checkstyle=com.oracle.graal.graph
 project@com.oracle.graal.jtt@javaCompliance=1.7
-project@com.oracle.graal.jtt@testHarness=jtt
 
 # graal.examples
 project@com.oracle.graal.examples@subDir=graal