mirror of https://github.com/dnomd343/ProxyC
Dnomd343
3 years ago
4 changed files with 2 additions and 78 deletions
@ -1,76 +0,0 @@ |
|||
#!/usr/bin/python |
|||
# -*- coding:utf-8 -*- |
|||
|
|||
import os |
|||
import sys |
|||
import time |
|||
import subprocess |
|||
|
|||
import Checker |
|||
import ProxyTester as Tester |
|||
|
|||
testConfig = { |
|||
'port': 12345, |
|||
'passwd': 'dnomd343', |
|||
'host': 'dns.343.re', |
|||
'cert': '/etc/ssl/certs/dns.343.re/certificate.crt', |
|||
'key': '/etc/ssl/certs/dns.343.re/private.key' |
|||
} |
|||
|
|||
def testBuild(config: dict): # load file and start process |
|||
if config['filePath'] is not None: |
|||
with open(config['filePath'], 'w') as fileObject: # save file |
|||
fileObject.write(config['fileContent']) |
|||
return subprocess.Popen( # start process |
|||
config['startCommand'], |
|||
env = config['envVar'], |
|||
stdout = subprocess.DEVNULL, |
|||
stderr = subprocess.DEVNULL |
|||
) |
|||
|
|||
def testDestroy(config: dict, process): # remove file and kill process |
|||
if process.poll() is None: # still alive |
|||
while process.poll() is None: # wait for exit |
|||
process.terminate() # SIGTERM |
|||
time.sleep(0.2) |
|||
if config['filePath'] is not None: |
|||
os.remove(config['filePath']) # remove file |
|||
|
|||
def testObject(option: dict) -> None: # test target object |
|||
aiderProcess = None |
|||
serverProcess = testBuild(option['server']) # start server process |
|||
if option['aider'] is not None: |
|||
aiderProcess = testBuild(option['aider']) # start aider process |
|||
|
|||
checkResult = Checker.proxyTest({ # http check |
|||
'check': ['http'], |
|||
'info': option['proxy'] |
|||
}) |
|||
print(option['caption'], end=' -> ') |
|||
if not checkResult['success']: # client build error |
|||
print('\n----------------------------------------------------------------') |
|||
print(option) |
|||
print('----------------------------------------------------------------\n') |
|||
raise Exception('check error') |
|||
delay = checkResult['check']['http']['delay'] # get http delay |
|||
print(str(delay) + 'ms') |
|||
|
|||
testDestroy(option['server'], serverProcess) # destroy server process |
|||
if option['aider'] is not None: |
|||
testDestroy(option['aider'], aiderProcess) # destroy aider process |
|||
|
|||
if len(sys.argv) == 1: # no param |
|||
print('Unknown test type') |
|||
sys.exit(1) |
|||
testList = Tester.test(sys.argv[1], testConfig) # get test list |
|||
|
|||
if len(sys.argv) == 2: # test all |
|||
for i in range(0, len(testList)): |
|||
print(str(i), end = ': ') |
|||
testObject(testList[i]) |
|||
sys.exit(0) |
|||
|
|||
if len(sys.argv) == 3: # test target index |
|||
testObject(testList[int(sys.argv[2])]) |
|||
else: |
|||
print('Too many options') |
Loading…
Reference in new issue