diff --git a/Makefile b/Makefile
index 82a5d374ed9b9b720bce17a378c7f906a2265d2b..829736b1fe6e15788c14ee9e342a4c230518cd43 100644
--- a/Makefile
+++ b/Makefile
@@ -1,2 +1,5 @@
 clean:
-	rm -rf build dist build *.egg-info *.pyc
\ No newline at end of file
+	rm -rf build dist build *.egg-info *.pyc
+
+test: mininet/*.py mininet/test/*.py
+	mininet/test/test_nets.py
\ No newline at end of file
diff --git a/mininet/mininet.py b/mininet/mininet.py
index f46b82590e9778bb3710b9208c94e92203e1003c..b0d8baa727ebc288f51e94d195e117f2cfeb17e5 100755
--- a/mininet/mininet.py
+++ b/mininet/mininet.py
@@ -73,6 +73,8 @@
 flush = sys.stdout.flush
 from resource import setrlimit, RLIMIT_NPROC, RLIMIT_NOFILE
 
+DATAPATHS = ['user', 'kernel']
+
 # Utility routines to make it easier to run commands
 
 def run( cmd ):
diff --git a/mininet/test/test_nets.py b/mininet/test/test_nets.py
new file mode 100755
index 0000000000000000000000000000000000000000..87dca058044b8d6c8ff1e6f9b6d6041f7e816c28
--- /dev/null
+++ b/mininet/test/test_nets.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+'''@package mininet
+
+Test creation and all-pairs ping for each included mininet topo type.
+'''
+
+from time import sleep
+import unittest
+
+from mininet.mininet import init, TreeNet, pingTest, DATAPATHS
+
+class testMinimal(unittest.TestCase):
+    '''For each datapath type, test ping with a minimal topology.
+
+    Each topology has two hosts and one switch.
+    '''
+
+    def testMinimal(self):
+        '''Ping test with user-space datapath on minimal topology'''
+        init()
+        for datapath in DATAPATHS:
+            k = datapath == 'kernel'
+            network = TreeNet(depth = 1, fanout = 2, kernel = k)
+            dropped = network.run(pingTest)
+            self.assertEqual(dropped, 0)
+
+
+class testTree(unittest.TestCase):
+    '''For each datapath type, test all-pairs ping with TreeNet.'''
+
+    def testTree16(self):
+        '''Ping test with user-space datapath on minimal topology'''
+        init()
+        for datapath in DATAPATHS:
+            k = datapath == 'kernel'
+            network = TreeNet(depth = 2, fanout = 4, kernel = k)
+            dropped = network.run(pingTest)
+            self.assertEqual(dropped, 0)
+
+
+if __name__ == '__main__':
+    unittest.main()
\ No newline at end of file