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