예제 #1
0
    def test_list(self):
        """
        Test list method with sorting
        """
        s.add(s.createProcess(1, 'high'))
        s.add(s.createProcess(2, 'low'))
        s.add(s.createProcess(3, 'medium'))
        returnedList = s.list()
        self.assertEqual(len(returnedList), 3)
        #make sure list is sorted by created timestamp
        for i in range(1, 3):
            self.assertGreaterEqual(returnedList[i][2], returnedList[i - 1][2])

        #make sure list is sorted by priority
        returnedList = s.list(sortBy='priority')
        priorities = {'low': 0, 'medium': 1, 'high': 2}
        for i in range(1, 3):
            self.assertGreaterEqual(
                priorities[returnedList[i][1]] -
                priorities[returnedList[i - 1][1]], 0)

        #make sure list is sorted by pid
        returnedList = s.list(sortBy='pid')
        for i in range(1, 3):
            self.assertGreaterEqual(returnedList[i][0], returnedList[i - 1][0])

        #make sure list is sorted by pid in a reverse order
        returnedList = s.list(sortBy='pid', reverseOrder=True)
        for i in range(1, 3):
            self.assertGreaterEqual(returnedList[i - 1][0], returnedList[i][0])
예제 #2
0
 def test_kill(self):
     """
     Test kill option for a single process
     """
     s.add(s.createProcess(1, 'high'))
     s.add(s.createProcess(2, 'low'))
     self.assertEqual(len(s.list()), 2)
     s.kill(1)
     self.assertEqual(len(s.list()), 1)
예제 #3
0
 def test_kill_group(self):
     """
     Test kill option for a group of process with same priority
     """
     s.add(s.createProcess(1, 'high'))
     s.add(s.createProcess(2, 'low'))
     s.add(s.createProcess(3, 'low'))
     self.assertEqual(len(s.list()), 3)
     s.kill_group('low')
     self.assertEqual(len(s.list()), 1)
예제 #4
0
 def test_add_fifo(self):
     """
     Test method add(process) assuming setup is set to FIFO option
     """
     s.add(s.createProcess(1, 'low'))
     s.add(s.createProcess(2, 'low'))
     s.add(s.createProcess(3, 'low'))
     response, message = s.add(s.createProcess(4, 'low'))
     self.assertEqual(response, True)
     self.assertEqual(message, 'Removed process pid 1')
예제 #5
0
 def test_add_capacity(self):
     """
     Test method add(process) assuming setup is set to capacity option
     """
     s.add(s.createProcess(1, 'low'))
     s.add(s.createProcess(2, 'low'))
     s.add(s.createProcess(3, 'low'))
     response, message = s.add(s.createProcess(4, 'low'))
     self.assertEqual(response, False)
     self.assertEqual(message, 'Max capacity exceeded')
예제 #6
0
 def test_kill_all(self):
     """
     Test kill option for all processes
     """
     s.add(s.createProcess(1, 'high'))
     s.add(s.createProcess(2, 'low'))
     s.add(s.createProcess(3, 'low'))
     self.assertEqual(len(s.list()), 3)
     s.kill_all()
     self.assertEqual(len(s.list()), 0)
예제 #7
0
 def test_add_priority(self):
     """
     Test method add(process) assuming setup is set to priority option
     """
     s.add(s.createProcess(1, 'high'))
     s.add(s.createProcess(2, 'low'))
     s.add(s.createProcess(3, 'medium'))
     response, message = s.add(s.createProcess(4, 'medium'))
     self.assertEqual(response, True)
     self.assertEqual(message, 'Removed process pid 2')
     response, message = s.add(s.createProcess(5, 'low'))
     self.assertEqual(response, False)
     self.assertEqual(message,
                      'No lower priority process to be removed was found')
     response, message = s.add(s.createProcess(6, 'medium'))
     self.assertEqual(response, False)
     self.assertEqual(message,
                      'No lower priority process to be removed was found')
예제 #8
0
 def do_add(self, line):
     args = line.split()
     process = s.createProcess (args[0], args[1])
     s.add(process)