MCPcopy
hub / github.com/shadowsocks/shadowsocks / test

Function test

shadowsocks/manager.py:201–288  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

199
200
201def test():
202 import time
203 import threading
204 import struct
205 from shadowsocks import encrypt
206
207 logging.basicConfig(level=5,
208 format='%(asctime)s %(levelname)-8s %(message)s',
209 datefmt='%Y-%m-%d %H:%M:%S')
210 enc = []
211 eventloop.TIMEOUT_PRECISION = 1
212
213 def run_server():
214 config = {
215 'server': '127.0.0.1',
216 'local_port': 1081,
217 'port_password': {
218 '8381': 'foobar1',
219 '8382': 'foobar2'
220 },
221 'method': 'aes-256-cfb',
222 'manager_address': '127.0.0.1:6001',
223 'timeout': 60,
224 'fast_open': False,
225 'verbose': 2
226 }
227 manager = Manager(config)
228 enc.append(manager)
229 manager.run()
230
231 t = threading.Thread(target=run_server)
232 t.start()
233 time.sleep(1)
234 manager = enc[0]
235 cli = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
236 cli.connect(('127.0.0.1', 6001))
237
238 # test add and remove
239 time.sleep(1)
240 cli.send(b'add: {"server_port":7001, "password":"asdfadsfasdf"}')
241 time.sleep(1)
242 assert 7001 in manager._relays
243 data, addr = cli.recvfrom(1506)
244 assert b'ok' in data
245
246 cli.send(b'remove: {"server_port":8381}')
247 time.sleep(1)
248 assert 8381 not in manager._relays
249 data, addr = cli.recvfrom(1506)
250 assert b'ok' in data
251 logging.info('add and remove test passed')
252
253 # test statistics for TCP
254 header = common.pack_addr(b'google.com') + struct.pack('>H', 80)
255 data = encrypt.encrypt_all(b'asdfadsfasdf', 'aes-256-cfb', 1,
256 header + b'GET /\r\n\r\n')
257 tcp_cli = socket.socket()
258 tcp_cli.connect(('127.0.0.1', 7001))

Callers 1

manager.pyFile · 0.70

Calls 2

stopMethod · 0.80
closeMethod · 0.45

Tested by

no test coverage detected