()
| 28 | |
| 29 | |
| 30 | def main() -> int: |
| 31 | if len(sys.argv) < 2: |
| 32 | print('Usage: testserver.py <exe> [workdir] [ip] [port] [cfgpath] [server_dir]') |
| 33 | return 2 |
| 34 | |
| 35 | exe = sys.argv[1] |
| 36 | workdir = sys.argv[2] if len(sys.argv) > 2 and sys.argv[2] else None |
| 37 | ip = sys.argv[3] if len(sys.argv) > 3 and sys.argv[3] else 'localhost' |
| 38 | port = int(sys.argv[4]) if len(sys.argv) > 4 and sys.argv[4] else 9001 |
| 39 | cfgpath = sys.argv[5] if len(sys.argv) > 5 and sys.argv[5] else 'unittest.cfg' |
| 40 | server_dirs = [p for p in sys.argv[6:] if p] |
| 41 | |
| 42 | for server_dir in reversed(server_dirs): |
| 43 | sys.path.insert(0, os.path.normpath(server_dir)) |
| 44 | |
| 45 | try: |
| 46 | import test_script_server # type: ignore |
| 47 | except Exception as e: |
| 48 | print('Failed to import test_script_server from', server_dirs, '\n', e) |
| 49 | return 2 |
| 50 | |
| 51 | if workdir: |
| 52 | os.chdir(workdir) |
| 53 | |
| 54 | write_config(cfgpath, ip, port) |
| 55 | |
| 56 | server = test_script_server.Server(port=port, ip=ip) |
| 57 | server.start() |
| 58 | try: |
| 59 | rc = subprocess.call([exe, cfgpath]) |
| 60 | finally: |
| 61 | try: |
| 62 | server.stop() |
| 63 | except Exception: |
| 64 | pass |
| 65 | try: |
| 66 | os.remove(cfgpath) |
| 67 | except OSError: |
| 68 | pass |
| 69 | return rc |
| 70 | |
| 71 | |
| 72 | if __name__ == '__main__': |
no test coverage detected