Esempio n. 1
0
def main(server_index):
    logger = logging.getLogger(__name__)
    host, port = global_config.SERVER_ADDR_LIST[server_index]

    # Start the server.
    logger.info("Starting flash server {0} on {1}:{2}".format(
        server_index, host, port))
    server = protobuf.socketrpc.server.SocketRpcServer(port, "0.0.0.0")

    try:
        with FlashUnit(server_index, global_config) as flash_unit:
            server.registerService(FlashServiceImpl(flash_unit))
            server.run()
    except KeyboardInterrupt:
        sys.exit(0)
Esempio n. 2
0
 def setUp(self):
     self.flash_unit = FlashUnit(0, config)
     self.flash_unit.reset()
Esempio n. 3
0
class TestFlashUnit(unittest.TestCase):

    def setUp(self):
        self.flash_unit = FlashUnit(0, config)
        self.flash_unit.reset()

    def tearDown(self):
        self.flash_unit.close()

    def test_write_offset_write(self):
        self.flash_unit.write_offset(data_id, msg)
        self._write_and_assert()

    def test_write_write_offset(self):
        threading.Timer(.1, self._write_offset).start()
        self._write_and_assert()

    def test_write_is_full(self):
        self.flash_unit.write_offset(data_id, full_msg)
        self.assertRaises(flashlib.ErrorNoCapacity,
                self.flash_unit.write, data_id, data)

    def test_read_hole_timeout(self):
        measure = Measure(utils.nanotime())
        msg = OffsetMessage(measure, is_full=False, offset=1)
        self.flash_unit.write_offset(data_id, msg)
        time.sleep(config.FLASH_HOLE_DELAY_THRESHOLD)
        self.assertRaises(flashlib.ErrorFilledHole, self.flash_unit.read,
                offset)
        self.assertRaises(flashlib.ErrorFilledHole, self.flash_unit.write,
                data_id, data)

    def _write_offset(self):
        self.flash_unit.write_offset(data_id, msg)

    def _write_and_assert(self):
        test_measure = self.flash_unit.write(data_id, data)
        self.assertEqual(measure, test_measure)
        test_data = self.flash_unit.read(offset)
        self.assertEqual(data, test_data)
Esempio n. 4
0
 def from_index(cls, server_index=0, config=global_config, logger=None):
     flash_unit = FlashUnit(server_index, config)
     return FlashServiceImpl(flash_unit, logger)
Esempio n. 5
0
 def setUp(self):
     self.flash_unit = FlashUnit(0, config)
     self.flash_unit.reset()
Esempio n. 6
0
class TestFlashUnit(unittest.TestCase):
    def setUp(self):
        self.flash_unit = FlashUnit(0, config)
        self.flash_unit.reset()

    def tearDown(self):
        self.flash_unit.close()

    def test_write_offset_write(self):
        self.flash_unit.write_offset(data_id, msg)
        self._write_and_assert()

    def test_write_write_offset(self):
        threading.Timer(.1, self._write_offset).start()
        self._write_and_assert()

    def test_write_is_full(self):
        self.flash_unit.write_offset(data_id, full_msg)
        self.assertRaises(flashlib.ErrorNoCapacity, self.flash_unit.write,
                          data_id, data)

    def test_read_hole_timeout(self):
        measure = Measure(utils.nanotime())
        msg = OffsetMessage(measure, is_full=False, offset=1)
        self.flash_unit.write_offset(data_id, msg)
        time.sleep(config.FLASH_HOLE_DELAY_THRESHOLD)
        self.assertRaises(flashlib.ErrorFilledHole, self.flash_unit.read,
                          offset)
        self.assertRaises(flashlib.ErrorFilledHole, self.flash_unit.write,
                          data_id, data)

    def _write_offset(self):
        self.flash_unit.write_offset(data_id, msg)

    def _write_and_assert(self):
        test_measure = self.flash_unit.write(data_id, data)
        self.assertEqual(measure, test_measure)
        test_data = self.flash_unit.read(offset)
        self.assertEqual(data, test_data)