add test_protocol.py and port on mac