[kgraphviewer-devel] [kgraphviewer/libkgraphviz] tests/kgraphviz: Add random tests

Kevin Funk krf at electrostorm.net
Thu Jan 27 15:10:44 CET 2011


Git commit bd80f1f452eac7cd93c018886be0978755370e08 by Kevin Funk.
Pushed by kfunk into branch 'libkgraphviz'.

Add random tests

M  +18   -5    tests/kgraphviz/dotgraphtests.cpp     
M  +2    -0    tests/kgraphviz/examples/CMakeLists.txt     
A  +5    -0    tests/kgraphviz/examples/directed-self-looped-graph.dot         [License: UNKNOWN]
A  +5    -0    tests/kgraphviz/examples/undirected-self-looped-graph.dot         [License: UNKNOWN]
M  +35   -21   tests/kgraphviz/graphiotests.cpp     

http://commits.kde.org/9c7b74a4/bd80f1f452eac7cd93c018886be0978755370e08

diff --git a/tests/kgraphviz/dotgraphtests.cpp b/tests/kgraphviz/dotgraphtests.cpp
index 13b03fb..4b93865 100644
--- a/tests/kgraphviz/dotgraphtests.cpp
+++ b/tests/kgraphviz/dotgraphtests.cpp
@@ -26,18 +26,31 @@ class DotGraphTests : public QObject
   Q_OBJECT
 
 private Q_SLOTS:
-  void testCreateGraph();
+  void testCreateEmptyGraph();
+  void testCreateSelfLoopedGraph();
 };
 
 using namespace KGraphViz;
 
-void DotGraphTests::testCreateGraph()
+void DotGraphTests::testCreateEmptyGraph()
 {
   DotGraph graph;
 
-  QVERIFY(graph.nodes().size() == 0);
-  QVERIFY(graph.edges().size() == 0);
-  QVERIFY(graph.subgraphs().size() == 0);
+  QCOMPARE(graph.nodes().size(), 0);
+  QCOMPARE(graph.edges().size(), 0);
+  QCOMPARE(graph.subgraphs().size(), 0);
+}
+
+void DotGraphTests::testCreateSelfLoopedGraph()
+{
+  DotGraph graph;
+
+  graph.addNewNode("A");
+  graph.addNewEdge("A", "A");
+  QCOMPARE(graph.edges().size(), 1);
+
+  graph.addNewEdge("A", "A");
+  QCOMPARE(graph.edges().size(), 2);
 }
 
 QTEST_KDEMAIN_CORE(DotGraphTests)
diff --git a/tests/kgraphviz/examples/CMakeLists.txt b/tests/kgraphviz/examples/CMakeLists.txt
index 809d3bf..2707ccd 100644
--- a/tests/kgraphviz/examples/CMakeLists.txt
+++ b/tests/kgraphviz/examples/CMakeLists.txt
@@ -1,3 +1,5 @@
 install( FILES directed-acyclic-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+install( FILES directed-self-looped-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
 install( FILES subgraph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
 install( FILES undirected-acyclic-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
+install( FILES undirected-self-looped-graph.dot DESTINATION ${CMAKE_CURRENT_BINARY_DIR} )
diff --git a/tests/kgraphviz/examples/directed-self-looped-graph.dot b/tests/kgraphviz/examples/directed-self-looped-graph.dot
new file mode 100644
index 0000000..38e07c4
--- /dev/null
+++ b/tests/kgraphviz/examples/directed-self-looped-graph.dot
@@ -0,0 +1,5 @@
+digraph graphname {
+  a -> b -> c;
+  a -> a;
+  a -> a;
+}
diff --git a/tests/kgraphviz/examples/undirected-self-looped-graph.dot b/tests/kgraphviz/examples/undirected-self-looped-graph.dot
new file mode 100644
index 0000000..f7ef76d
--- /dev/null
+++ b/tests/kgraphviz/examples/undirected-self-looped-graph.dot
@@ -0,0 +1,5 @@
+graph graphname {
+  a -- b -- c;
+  a -- a;
+  a -- a;
+}
diff --git a/tests/kgraphviz/graphiotests.cpp b/tests/kgraphviz/graphiotests.cpp
index 34be266..a644a07 100644
--- a/tests/kgraphviz/graphiotests.cpp
+++ b/tests/kgraphviz/graphiotests.cpp
@@ -34,8 +34,10 @@ class GraphIOTests : public QObject
   Q_OBJECT
 
 private Q_SLOTS:
-  void testImportGraph();
+  void testImportDirectedAcyclicGraph();
   void testImportSubGraph();
+  void testImportDirectedSelfLoopedGraph();
+  void testImportUndirectedSelfLoopedGraph();
 
   void testImportGraphFromInvalidFile();
 
@@ -46,13 +48,22 @@ private Q_SLOTS:
 
 using namespace KGraphViz;
 
-void GraphIOTests::testImportGraph()
+static DotGraph* loadGraphFromFile(const QString& fileName)
 {
   GraphIO io;
-  io.loadFromDotFile("examples/directed-acyclic-graph.dot");
-  QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(finished()), 3000) == true);
+  io.loadFromDotFile(fileName);
+  const bool ret = QTest::kWaitForSignal(&io, SIGNAL(finished()), 100);
+  if (!ret) {
+    qWarning() << "Loading failed";
+    return 0;
+  }
 
-  DotGraph* graph = io.readData();
+  return io.readData();
+}
+
+void GraphIOTests::testImportDirectedAcyclicGraph()
+{
+  DotGraph* graph = loadGraphFromFile("examples/directed-acyclic-graph.dot");
   QVERIFY(graph != 0);
   QVERIFY(graph->nodes().size() == 4);
   QVERIFY(graph->edges().size() == 3);
@@ -60,11 +71,7 @@ void GraphIOTests::testImportGraph()
 
 void GraphIOTests::testImportSubGraph()
 {
-  GraphIO io;
-  io.loadFromDotFile("examples/subgraph.dot");
-  QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(finished()), 3000) == true);
-
-  DotGraph* graph = io.readData();
+  DotGraph* graph = loadGraphFromFile("examples/subgraph.dot");
   QVERIFY(graph != 0);
 
   // test root
@@ -83,13 +90,25 @@ void GraphIOTests::testImportSubGraph()
   QCOMPARE(subgraph2->content().size(), 4);
 }
 
-void GraphIOTests::testImportGraphFromInvalidFile()
+void GraphIOTests::testImportDirectedSelfLoopedGraph()
 {
-  GraphIO io;
-  io.loadFromDotFile("examples/DOES_NOT_EXIST.abc");
-  QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(error(QString)), 3000) == true);
+  DotGraph* graph = loadGraphFromFile("examples/directed-self-looped-graph.dot");
+  QVERIFY(graph != 0);
+  QCOMPARE(graph->edges().size(), 4);
+  QCOMPARE(graph->nodes().size(), 3);
+}
+
+void GraphIOTests::testImportUndirectedSelfLoopedGraph()
+{
+  DotGraph* graph = loadGraphFromFile("examples/undirected-self-looped-graph.dot");
+  QVERIFY(graph != 0);
+  QCOMPARE(graph->edges().size(), 4);
+  QCOMPARE(graph->nodes().size(), 3);
+}
 
-  DotGraph* graph = io.readData();
+void GraphIOTests::testImportGraphFromInvalidFile()
+{
+  DotGraph* graph = loadGraphFromFile("examples/DOES_NOT_EXIST.abc");
   QVERIFY(graph == 0);
 }
 
@@ -114,12 +133,7 @@ void GraphIOTests::testExportImportGraph()
 
   // read graph from dot file and check attributes
   {
-    GraphIO io;
-    io.loadFromDotFile(TEST_FILENAME);
-    QSignalSpy spy(&io, SIGNAL(finished()));
-    QVERIFY(QTest::kWaitForSignal(&io, SIGNAL(finished()), 3000) == true);
-
-    DotGraph* graph = io.readData();
+    DotGraph* graph = loadGraphFromFile(TEST_FILENAME);
     QVERIFY(graph != 0);
     QVERIFY(graph->nodes().size() == 2);
     QVERIFY(graph->edges().size() == 1);



More information about the kgraphviewer-devel mailing list