[Scummvm-cvs-logs] SF.net SVN: scummvm:[41830] tools/branches/gsoc2009-decompiler/decompiler

kjdf at users.sourceforge.net kjdf at users.sourceforge.net
Wed Jun 24 20:27:43 CEST 2009


Revision: 41830
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41830&view=rev
Author:   kjdf
Date:     2009-06-24 18:27:43 +0000 (Wed, 24 Jun 2009)

Log Message:
-----------
decompiler: "#define private public" in tests and remove unwanted interface bits from Graph

Modified Paths:
--------------
    tools/branches/gsoc2009-decompiler/decompiler/graph.h
    tools/branches/gsoc2009-decompiler/decompiler/test/test_graph.h

Modified: tools/branches/gsoc2009-decompiler/decompiler/graph.h
===================================================================
--- tools/branches/gsoc2009-decompiler/decompiler/graph.h	2009-06-24 18:27:29 UTC (rev 41829)
+++ tools/branches/gsoc2009-decompiler/decompiler/graph.h	2009-06-24 18:27:43 UTC (rev 41830)
@@ -29,10 +29,6 @@
 			return _out;
 		}
 
-		Node *interval() const {
-			return _interval;
-		}
-
 	private:
 
 		friend class Graph;
@@ -50,10 +46,6 @@
 		}
 	};
 
-	const std::list<Node*> &nodes() const {
-		return _nodes;
-	}
-
 	std::list<Node*> _nodes;
 	Node *_entry;
 
@@ -76,6 +68,8 @@
 
 	// TODO cleanup
 	Graph &operator=(const Graph &g) {
+		if (this == &g)
+			return *this;
 		foreach (Node *u, _nodes)
 			delete u;
 		_nodes.clear();

Modified: tools/branches/gsoc2009-decompiler/decompiler/test/test_graph.h
===================================================================
--- tools/branches/gsoc2009-decompiler/decompiler/test/test_graph.h	2009-06-24 18:27:29 UTC (rev 41829)
+++ tools/branches/gsoc2009-decompiler/decompiler/test/test_graph.h	2009-06-24 18:27:43 UTC (rev 41830)
@@ -1,5 +1,9 @@
 #include <cxxtest/TestSuite.h>
+
+// TODO: move interal tests to a separate file
+#define private public
 #include <graph.h>
+#undef private
 
 #include <list>
 #include <vector>
@@ -26,39 +30,41 @@
 		g3 = makeGraph3();
 	}
 
+	// this tests internal, intermediate results, not part of the api
 	void test_intervals() {
 		g1.intervals();
-		TS_ASSERT_EQUALS(findNode(g1, 1)->interval()->_data, findNode(g1, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g1, 2)->interval()->_data, findNode(g1, 2)->_data);
-		TS_ASSERT_EQUALS(findNode(g1, 3)->interval()->_data, findNode(g1, 2)->_data);
-		TS_ASSERT_EQUALS(findNode(g1, 4)->interval()->_data, findNode(g1, 2)->_data);
-		TS_ASSERT_EQUALS(findNode(g1, 5)->interval()->_data, findNode(g1, 2)->_data);
-		TS_ASSERT_EQUALS(findNode(g1, 6)->interval()->_data, findNode(g1, 2)->_data);
+		TS_ASSERT_EQUALS(findNode(g1, 1)->_interval->_data, findNode(g1, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g1, 2)->_interval->_data, findNode(g1, 2)->_data);
+		TS_ASSERT_EQUALS(findNode(g1, 3)->_interval->_data, findNode(g1, 2)->_data);
+		TS_ASSERT_EQUALS(findNode(g1, 4)->_interval->_data, findNode(g1, 2)->_data);
+		TS_ASSERT_EQUALS(findNode(g1, 5)->_interval->_data, findNode(g1, 2)->_data);
+		TS_ASSERT_EQUALS(findNode(g1, 6)->_interval->_data, findNode(g1, 2)->_data);
 		g2.intervals();
-		TS_ASSERT_EQUALS(findNode(g2, 1)->interval()->_data, findNode(g2, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 2)->interval()->_data, findNode(g2, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 3)->interval()->_data, findNode(g2, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 4)->interval()->_data, findNode(g2, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 5)->interval()->_data, findNode(g2, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 6)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 7)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 8)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 9)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 10)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 11)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 12)->interval()->_data, findNode(g2, 6)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 13)->interval()->_data, findNode(g2, 13)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 14)->interval()->_data, findNode(g2, 13)->_data);
-		TS_ASSERT_EQUALS(findNode(g2, 15)->interval()->_data, findNode(g2, 13)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 1)->_interval->_data, findNode(g2, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 2)->_interval->_data, findNode(g2, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 3)->_interval->_data, findNode(g2, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 4)->_interval->_data, findNode(g2, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 5)->_interval->_data, findNode(g2, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 6)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 7)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 8)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 9)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 10)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 11)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 12)->_interval->_data, findNode(g2, 6)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 13)->_interval->_data, findNode(g2, 13)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 14)->_interval->_data, findNode(g2, 13)->_data);
+		TS_ASSERT_EQUALS(findNode(g2, 15)->_interval->_data, findNode(g2, 13)->_data);
 		g3.intervals();
-		TS_ASSERT_EQUALS(findNode(g3, 1)->interval()->_data, findNode(g3, 1)->_data);
-		TS_ASSERT_EQUALS(findNode(g3, 2)->interval()->_data, findNode(g3, 2)->_data);
-		TS_ASSERT_EQUALS(findNode(g3, 3)->interval()->_data, findNode(g3, 3)->_data);
+		TS_ASSERT_EQUALS(findNode(g3, 1)->_interval->_data, findNode(g3, 1)->_data);
+		TS_ASSERT_EQUALS(findNode(g3, 2)->_interval->_data, findNode(g3, 2)->_data);
+		TS_ASSERT_EQUALS(findNode(g3, 3)->_interval->_data, findNode(g3, 3)->_data);
 	}
 
+	// this tests internal, intermediate results, not part of the api
 	void test_derive() {
 		IntGraph g1d = g1.derive();
-		TS_ASSERT_EQUALS(g1d.nodes().size(), 2);
+		TS_ASSERT_EQUALS(g1d._nodes.size(), 2);
 		TS_ASSERT(findNode(g1d, 1));
 		TS_ASSERT(findNode(g1d, 2));
 		TS_ASSERT_EQUALS(outEdgesCount(g1d, 1), 1);
@@ -66,11 +72,11 @@
 		TS_ASSERT(pointsTo(g1d, 1, 2));
 		TS_ASSERT(pointsTo(g1d, 1, 2));
 		IntGraph g1dd = g1d.derive();
-		TS_ASSERT_EQUALS(g1dd.nodes().size(), 1);
+		TS_ASSERT_EQUALS(g1dd._nodes.size(), 1);
 		TS_ASSERT(findNode(g1d, 1));
 		TS_ASSERT_EQUALS(outEdgesCount(g1dd, 1), 0);
 		IntGraph g2d = g2.derive();
-		TS_ASSERT_EQUALS(g2d.nodes().size(), 3);
+		TS_ASSERT_EQUALS(g2d._nodes.size(), 3);
 		TS_ASSERT(findNode(g2d, 1));
 		TS_ASSERT(findNode(g2d, 6));
 		TS_ASSERT(findNode(g2d, 13));
@@ -81,7 +87,7 @@
 		TS_ASSERT(pointsTo(g2d, 6, 13));
 		TS_ASSERT(pointsTo(g2d, 13, 6));
 		IntGraph g3d = g3.derive();
-		TS_ASSERT_EQUALS(g3d.nodes().size(), 3);
+		TS_ASSERT_EQUALS(g3d._nodes.size(), 3);
 		TS_ASSERT(findNode(g3d, 1));
 		TS_ASSERT(findNode(g3d, 2));
 		TS_ASSERT(findNode(g3d, 3));
@@ -97,7 +103,7 @@
 private:
 
 	IntNode *findNode(IntGraph &g, int data) {
-		foreach (IntNode *u, g.nodes())
+		foreach (IntNode *u, g._nodes)
 			if (u->_data == data)
 				return u;
 		return 0;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list