# HG changeset patch # User Thomas Wuerthinger # Date 1339167638 -7200 # Node ID ab6115911fe5b957b4a9d1478f59691d82171ed3 # Parent 861f8d5a5153ce14024e55252eef95c7ce688a16 Split test code for graal.graph into new project graal.graph.test. diff -r 861f8d5a5153 -r ab6115911fe5 graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/TestNode.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/TestNode.java Fri Jun 08 17:00:38 2012 +0200 @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.graph; + + +public class TestNode extends Node implements Node.IterableNodeType { + private String name; + + public TestNode(String name) { + this.name = name; + } + + + public String getName() { + return name; + } +} diff -r 861f8d5a5153 -r ab6115911fe5 graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/TypedNodeIteratorTest.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graal/com.oracle.graal.graph.test/src/com/oracle/graal/graph/TypedNodeIteratorTest.java Fri Jun 08 17:00:38 2012 +0200 @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package com.oracle.graal.graph; +import static org.junit.Assert.*; + +import java.util.*; + +import org.junit.*; + + + +public class TypedNodeIteratorTest { + + @Test + public void singleNodeTest() { + Graph graph = new Graph(); + graph.add(new TestNode("a")); + assertTrue(graph.hasNode(TestNode.class)); + assertEquals("a", toString(graph.getNodes(TestNode.class))); + } + + @Test + public void deletingNodeTest() { + TestNode testNode = new TestNode("a"); + Graph graph = new Graph(); + graph.add(testNode); + testNode.safeDelete(); + assertEquals("", toString(graph.getNodes(TestNode.class))); + } + + @Test + public void deleteAndAddTest() { + TestNode testNode = new TestNode("b"); + Graph graph = new Graph(); + graph.add(new TestNode("a")); + graph.add(testNode); + testNode.safeDelete(); + assertEquals("a", toString(graph.getNodes(TestNode.class))); + graph.add(new TestNode("c")); + assertEquals("ac", toString(graph.getNodes(TestNode.class))); + } + + @Test + public void iteratorBehaviorTest() { + Graph graph = new Graph(); + graph.add(new TestNode("a")); + Iterator iterator = graph.getNodes(TestNode.class).iterator(); + assertTrue(iterator.hasNext()); + assertEquals("a", iterator.next().getName()); + assertFalse(iterator.hasNext()); + graph.add(new TestNode("b")); + assertTrue(iterator.hasNext()); + assertEquals("b", iterator.next().getName()); + assertFalse(iterator.hasNext()); + TestNode c = new TestNode("c"); + graph.add(c); + assertTrue(iterator.hasNext()); + c.safeDelete(); + assertFalse(iterator.hasNext()); + } + + @Test + public void complicatedIterationTest() { + Graph graph = new Graph(); + graph.add(new TestNode("a")); + for (TestNode tn : graph.getNodes(TestNode.class)) { + String name = tn.getName(); + for (int i = 0; i < name.length(); ++i) { + char c = name.charAt(i); + if (c == 'a') { + tn.safeDelete(); + graph.add(new TestNode("b")); + graph.add(new TestNode("c")); + } else if (c == 'b') { + tn.safeDelete(); + } else if (c == 'c') { + graph.add(new TestNode("d")); + graph.add(new TestNode("e")); + graph.add(new TestNode("d")); + graph.add(new TestNode("e")); + graph.add(new TestNode("e")); + graph.add(new TestNode("d")); + graph.add(new TestNode("e")); + graph.add(new TestNode("d")); + } else if (c == 'd') { + for (TestNode tn2 : graph.getNodes(TestNode.class)) { + if (tn2.getName().equals("e")) { + tn2.safeDelete(); + } else if (tn2.getName().equals("c")) { + tn2.safeDelete(); + } + } + } else if (c == 'e') { + fail("All e nodes must have been deleted by visiting the d node"); + } + } + } + assertEquals("dddd", toString(graph.getNodes(TestNode.class))); + } + + @Test + public void addingNodeDuringIterationTest() { + Graph graph = new Graph(); + graph.add(new TestNode("a")); + StringBuilder sb = new StringBuilder(); + int z = 0; + for (TestNode tn : graph.getNodes(TestNode.class)) { + if (z == 0) { + graph.add(new TestNode("b")); + } + sb.append(tn.getName()); + z++; + } + assertEquals(2, z); + assertEquals("ab", sb.toString()); + z = 0; + for (TestNode tn : graph.getNodes(TestNode.class)) { + if (z == 0) { + graph.add(new TestNode("c")); + } + assertNotNull(tn); + z++; + } + assertEquals(3, z); + } + + private static String toString(Iterable nodes) { + StringBuilder sb = new StringBuilder(); + for (TestNode tn : nodes) { + sb.append(tn.getName()); + } + return sb.toString(); + } +} diff -r 861f8d5a5153 -r ab6115911fe5 graal/com.oracle.graal.graph/test/com/oracle/graal/graph/test/TestNode.java --- a/graal/com.oracle.graal.graph/test/com/oracle/graal/graph/test/TestNode.java Fri Jun 08 16:57:07 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.graal.graph.test; - -import com.oracle.graal.graph.*; - - -public class TestNode extends Node implements Node.IterableNodeType { - private String name; - - public TestNode(String name) { - this.name = name; - } - - - public String getName() { - return name; - } -} diff -r 861f8d5a5153 -r ab6115911fe5 graal/com.oracle.graal.graph/test/com/oracle/graal/graph/test/TypedNodeIteratorTest.java --- a/graal/com.oracle.graal.graph/test/com/oracle/graal/graph/test/TypedNodeIteratorTest.java Fri Jun 08 16:57:07 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -/* - * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ -package com.oracle.graal.graph.test; -import static org.junit.Assert.*; - -import java.util.*; - -import org.junit.*; - -import com.oracle.graal.graph.*; - - - -public class TypedNodeIteratorTest { - - @Test - public void singleNodeTest() { - Graph graph = new Graph(); - graph.add(new TestNode("a")); - assertTrue(graph.hasNode(TestNode.class)); - assertEquals("a", toString(graph.getNodes(TestNode.class))); - } - - @Test - public void deletingNodeTest() { - TestNode testNode = new TestNode("a"); - Graph graph = new Graph(); - graph.add(testNode); - testNode.safeDelete(); - assertEquals("", toString(graph.getNodes(TestNode.class))); - } - - @Test - public void deleteAndAddTest() { - TestNode testNode = new TestNode("b"); - Graph graph = new Graph(); - graph.add(new TestNode("a")); - graph.add(testNode); - testNode.safeDelete(); - assertEquals("a", toString(graph.getNodes(TestNode.class))); - graph.add(new TestNode("c")); - assertEquals("ac", toString(graph.getNodes(TestNode.class))); - } - - @Test - public void iteratorBehaviorTest() { - Graph graph = new Graph(); - graph.add(new TestNode("a")); - Iterator iterator = graph.getNodes(TestNode.class).iterator(); - assertTrue(iterator.hasNext()); - assertEquals("a", iterator.next().getName()); - assertFalse(iterator.hasNext()); - graph.add(new TestNode("b")); - assertTrue(iterator.hasNext()); - assertEquals("b", iterator.next().getName()); - assertFalse(iterator.hasNext()); - TestNode c = new TestNode("c"); - graph.add(c); - assertTrue(iterator.hasNext()); - c.safeDelete(); - assertFalse(iterator.hasNext()); - } - - @Test - public void complicatedIterationTest() { - Graph graph = new Graph(); - graph.add(new TestNode("a")); - for (TestNode tn : graph.getNodes(TestNode.class)) { - String name = tn.getName(); - for (int i = 0; i < name.length(); ++i) { - char c = name.charAt(i); - if (c == 'a') { - tn.safeDelete(); - graph.add(new TestNode("b")); - graph.add(new TestNode("c")); - } else if (c == 'b') { - tn.safeDelete(); - } else if (c == 'c') { - graph.add(new TestNode("d")); - graph.add(new TestNode("e")); - graph.add(new TestNode("d")); - graph.add(new TestNode("e")); - graph.add(new TestNode("e")); - graph.add(new TestNode("d")); - graph.add(new TestNode("e")); - graph.add(new TestNode("d")); - } else if (c == 'd') { - for (TestNode tn2 : graph.getNodes(TestNode.class)) { - if (tn2.getName().equals("e")) { - tn2.safeDelete(); - } else if (tn2.getName().equals("c")) { - tn2.safeDelete(); - } - } - } else if (c == 'e') { - fail("All e nodes must have been deleted by visiting the d node"); - } - } - } - assertEquals("dddd", toString(graph.getNodes(TestNode.class))); - } - - @Test - public void addingNodeDuringIterationTest() { - Graph graph = new Graph(); - graph.add(new TestNode("a")); - StringBuilder sb = new StringBuilder(); - int z = 0; - for (TestNode tn : graph.getNodes(TestNode.class)) { - if (z == 0) { - graph.add(new TestNode("b")); - } - sb.append(tn.getName()); - z++; - } - assertEquals(2, z); - assertEquals("ab", sb.toString()); - z = 0; - for (TestNode tn : graph.getNodes(TestNode.class)) { - if (z == 0) { - graph.add(new TestNode("c")); - } - assertNotNull(tn); - z++; - } - assertEquals(3, z); - } - - private static String toString(Iterable nodes) { - StringBuilder sb = new StringBuilder(); - for (TestNode tn : nodes) { - sb.append(tn.getName()); - } - return sb.toString(); - } -} diff -r 861f8d5a5153 -r ab6115911fe5 mx/projects --- a/mx/projects Fri Jun 08 16:57:07 2012 +0200 +++ b/mx/projects Fri Jun 08 17:00:38 2012 +0200 @@ -64,10 +64,17 @@ # graal.graph project@com.oracle.graal.graph@subDir=graal -project@com.oracle.graal.graph@sourceDirs=src,test -project@com.oracle.graal.graph@dependencies=com.oracle.graal.debug,JUNIT +project@com.oracle.graal.graph@sourceDirs=src +project@com.oracle.graal.graph@dependencies=com.oracle.graal.debug project@com.oracle.graal.graph@javaCompliance=1.7 +# graal.graph.test +project@com.oracle.graal.graph.test@subDir=graal +project@com.oracle.graal.graph.test@sourceDirs=src +project@com.oracle.graal.graph.test@checkstyle=com.oracle.graal.graph +project@com.oracle.graal.graph.test@dependencies=JUNIT,com.oracle.graal.graph +project@com.oracle.graal.graph.test@javaCompliance=1.7 + # graal.debug project@com.oracle.graal.debug@subDir=graal project@com.oracle.graal.debug@sourceDirs=src