From 07fd31290bbdf30d2fc35ee340f957a0133762d1 Mon Sep 17 00:00:00 2001 From: Peter Bandzi Date: Thu, 9 Apr 2015 10:39:48 +0200 Subject: Add ODL tests from ODL integration suites Tests are from https://github.com/opendaylight/integration Most of test suites and libs are removed. As they requires either additioanl features in ODL or mininet environment atached to ODL. For neutron test suite there are 3 tests added which delete created networks, subnets, ports. JIRA: FUNCTEST-5 Change-Id: I96b41b5df394795bf10aec2bbb0c5de0e63b950c Signed-off-by: Peter Bandzi --- testcases/Controllers/ODL/CI/libraries/Common.py | 81 ++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 testcases/Controllers/ODL/CI/libraries/Common.py (limited to 'testcases/Controllers/ODL/CI/libraries/Common.py') diff --git a/testcases/Controllers/ODL/CI/libraries/Common.py b/testcases/Controllers/ODL/CI/libraries/Common.py new file mode 100644 index 000000000..e748caad8 --- /dev/null +++ b/testcases/Controllers/ODL/CI/libraries/Common.py @@ -0,0 +1,81 @@ +""" +Library for the robot based system test tool of the OpenDaylight project. +Authors: Baohua Yang@IBM, Denghui Huang@IBM +Updated: 2013-11-14 +""" +import collections +import xml.etree.ElementTree as ET + +''' +Common constants and functions for the robot framework. +''' + +def collection_should_contain(collection, *members): + """ + Fail if not every members is in the collection. + """ + if not isinstance(collection, collections.Iterable): + return False + for m in members: + if m not in collection: + return False + else: + return True + +def combine_strings(*strings): + """ + Combines the given `strings` together and returns the result. + The given strings are not altered by this keyword. + """ + result = '' + for s in strings: + if isinstance(s,str) or isinstance(s,unicode): + result += s + if result == '': + return None + else: + return result + + +def compare_xml(xml1, xml2): + """ + compare the two XML files to see if they contain the same data + but could be if different order. + It just split the xml in to lines and just check the line is in + the other file + """ + for line in xml1.rstrip().split('\n'): + if line not in xml2.rstrip().split('\n'): + return False + + for line in xml2.rstrip().split('\n'): + if line not in xml1.rstrip().split('\n'): + return False + + return True + +def num_of_nodes(depth, fanout): + '''returns num of switches of a mininet with tree topology + with particular depth and fanout parameters + ''' + result = 0 + for i in xrange(depth): + result += fanout**i + return result + +def num_of_links_for_node(nodeid, leaflist, fanout): + ''' + If the given node is a leaf node, there will be an only one link for it + and nodeid will be represented 2 times in topology + If the given node is not a leaf node, then there will be fanout+1 links + for it and nodeid will be represented (fanout+1)*2 times in topology + + p.s. root node is excluded. + ''' + if nodeid in leaflist: + return 1 + return (fanout+1) + +if __name__ == '__main__': + print num_of_nodes(3,4) + pass -- cgit 1.2.3-korg