Δημοσίευση πηγής
Κατεβάστε την πηγή ZIP
CH-J SM Mobile
Περιηγηθείτε σε καταλόγους και αρχεία για μια συγκεκριμένη έκδοση εφαρμογών.
CH-J / SM Mobile
134 αρχεία
sm-mobile-20261016T050549Z-3678f2a05fa9
Προστέθηκε: · Χτισμένο:
1
#!/usr/bin/env python32
"""Optional Linux SSH/password/monitor integration fixture; never an app dependency."""3
import argparse,os,pathlib,secrets,socket,subprocess,time4
root=pathlib.Path(__file__).resolve().parents[1]5
p=argparse.ArgumentParser()6
p.add_argument('--context',help='Docker context, e.g. colima-sm-mobile-test')7
args=p.parse_args()8
docker=['docker']+(['--context',args.context] if args.context else [])9
image='lscr.io/linuxserver/openssh-server@sha256:0f535b0faa7448511b23528165e9fbd4f1fe563b861b3dcaa5ddb0ddbfe2254c'10
name='sm-mobile-linux-'+secrets.token_hex(6)11
password=secrets.token_urlsafe(24)12
env={**os.environ,'USER_PASSWORD':password}13
subprocess.run(docker+['run','--rm','-d','--name',name,'--memory','256m','--cpus','1',14
'-p','127.0.0.1:22239:2222','-e','USER_NAME=smtest','-e','PASSWORD_ACCESS=true',15
'-e','USER_PASSWORD','-e','SUDO_ACCESS=false',image],env=env,check=True,stdout=subprocess.DEVNULL)16
try:17
for attempt in range(80):18
try:19
with socket.create_connection(('127.0.0.1',22239),timeout=1) as probe:20
if not probe.recv(128).startswith(b'SSH-'):raise OSError('SSH is not ready')21
break22
except OSError:time.sleep(.25)23
else:raise SystemExit('Linux SSH fixture did not become ready.')24
files=subprocess.check_output(docker+['exec',name,'find','/config','-name','*ed25519*.pub'],text=True).splitlines()25
if len(files)!=1:raise SystemExit('Unexpected host-key files in Linux fixture.')26
fingerprint=subprocess.check_output(docker+['exec',name,'ssh-keygen','-lf',files[0],'-E','sha256'],text=True).split()[1]27
print('Testing real Linux OpenSSH using pinned image '+image,flush=True)28
subprocess.run(['flutter','test','test/network/linux_test.dart','--reporter','expanded'],cwd=root,29
env={**os.environ,'SM_LINUX_TEST':'1','SM_TEST_PASSWORD':password,'SM_TEST_FINGERPRINT':fingerprint},check=True)30
finally:31
subprocess.run(docker+['rm','-f',name],check=False,stdout=subprocess.DEVNULL)SHA-256
7a275349c3ef11ef84f683eaf17d356af7f42d78b4180d83f93a569e84c6a0eaCH-J Proprietary Software License 1.14 · Η πηγή παρέχεται στο CH-J Proprietary Software License 1.14. Η διαθεσιμότητά του δεν αλλάζει τους όρους της άδειας χρήσης ούτε χορηγεί πρόσθετα δικαιώματα.
Archive SHA-256
c486a807e4828998b9c57ab0f2e760f7980b31965fe118e89d3e1a5a2b65be65