Source code for tests.unit.log_parsing.superlog_parser_test
#!/usr/bin/env python
#
# Copyright 2011-2013 Colin Scott
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import unittest
import sys
import os
import itertools
from copy import copy
import types
import tempfile
sys.path.append(os.path.dirname(__file__) + "/../../..")
import sts.input_traces.log_parser as log_parser
from sts.replay_event import LinkFailure, LinkRecovery
[docs]class superlog_parser_test(unittest.TestCase):
tmpfile = '/tmp/superlog.tmp'
[docs] def open_simple_superlog(self):
''' Returns the file. Make sure to close afterwards! '''
superlog = open(self.tmpfile, 'w')
e1 = str('''{"dependent_labels": ["e2"], "start_dpid": 1, "class": "LinkFailure",'''
''' "start_port_no": 1, "end_dpid": 2, "end_port_no": 1, "label": "e1", "time": [0,0], "round": 0}''')
superlog.write(e1 + '\n')
e2 = str('''{"dependent_labels": [], "start_dpid": 1, "class": "LinkRecovery",'''
''' "start_port_no": 1, "end_dpid": 2, "end_port_no": 1, "label": "e2", "time": [0,0], "round": 0}''')
superlog.write(e2 + '\n')
superlog.close()
[docs] def test_basic(self):
name = None
try:
self.open_simple_superlog()
events = log_parser.parse_path(self.tmpfile)
self.assertEqual(2, len(events))
self.assertEqual(LinkFailure,type(events[0]))
self.assertEqual(LinkRecovery,type(events[1]))
finally:
if name is not None:
os.unlink(name)
if __name__ == '__main__':
unittest.main()