| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093 |
- #!/usr/bin/python
- # _*_ coding: utf-8 _*_
- try:
- from Tkinter import * # python2
- import ttk
- import tkMessageBox
- except Exception as e:
- from tkinter import * # python3
- from tkinter import ttk
- from tkinter import messagebox as tkMessageBox
- import time
- import os
- import threading
- import random
- from requests_offline import requests
- def ask_choice_with_timeout(title, message, timeout=5, default_choice=False):
- # 创建顶层弹窗窗口(Python 2 Tkinter语法)
- import Tkinter as tk
- top = tk.Toplevel()
- top.title(title)
- top.geometry("350x180") # 弹窗大小
- top.resizable(False, False) # 禁止调整大小
-
- # 设置模态窗口(阻塞主窗口操作)
- top.transient(top.master)
- top.grab_set()
-
- # 存储结果(用列表实现可变变量,Python 2中nonlocal仅在3.x支持)
- result = [default_choice]
-
- # 显示提示信息
- msg_label = tk.Label(top, text=message, padx=20, pady=20, font=("Arial", 10))
- msg_label.pack(fill=tk.X)
-
- # 显示倒计时提示
- timeout_text = "{}秒后自动{}...".format(timeout, "确认" if default_choice else "取消")
- timeout_label = tk.Label(top, text=timeout_text, fg="gray", font=("Arial", 9))
- timeout_label.pack()
-
- # 按钮回调函数
- def on_ok():
- result[0] = True
- top.destroy()
-
- def on_cancel():
- result[0] = False
- top.destroy()
-
- # 按钮布局
- btn_frame = tk.Frame(top)
- btn_frame.pack(pady=15)
-
- ok_btn = tk.Button(btn_frame, text="OK", command=on_ok, width=8)
- cancel_btn = tk.Button(btn_frame, text="Cancel", command=on_cancel, width=8)
-
- ok_btn.pack(side=tk.LEFT, padx=10)
- cancel_btn.pack(side=tk.LEFT, padx=10)
-
- # 倒计时线程(Python 2 threading语法)
- def countdown():
- current_timeout = timeout
- while current_timeout > 0:
- current_timeout -= 1
- # 更新倒计时文本
- new_text = "{}秒后自动{}...".format(current_timeout, "确认" if default_choice else "取消")
- print(new_text)
- timeout_label.config(text=new_text)
- top.update() # 刷新界面
- time.sleep(1) # 等待1秒
- top.destroy() # 超时关闭窗口
-
- # 启动守护线程(Python 2兼容)
- t = threading.Thread(target=countdown)
- t.setDaemon(True) # 守护线程,主程序退出时自动结束
- t.start()
-
- # 等待窗口关闭
- top.wait_window()
-
- return result[0]
- def step1_routine(context, *args):
- # bios_version
- context.print1("==SubTest: 检查BIOS版本号 - Titem_1")
- time.sleep(0.1)
- context.print1("-:) sh os-ver.sh bios")
- a = os.popen("sh os-ver.sh bios").read().replace('\n', '').replace('\r', '').strip()
- if len(a) == 0:
- return False, "Error! No Device found!\n" + a
- else:
- return True, 'PASS-{}'.format(a)
- def step2_routine(context):
- # bios release date # ec version
- context.print1("==SubTest: 检查EC版本号 - Titem_2")
- context.print1("-:) sh os-ver.sh ec")
- a = os.popen('sh os-ver.sh ec').read().replace('\n', '').replace('\r', '').strip()
- if len(a) == 0:
- return False, "Error! No Device found!\n" + a
- else:
- return True, 'PASS-{}'.format(a)
- def step3_routine(context):
- # CPU type
- context.print1("==SubTest: 检查CPU type - Titem_4")
- context.print1("-:) cat /proc/cpuinfo | grep \"model name\" | awk '{print $5}' | head -1")
- a = os.popen("cat /proc/cpuinfo").read().strip()
- context.print1("output: {}".format(a))
- a = os.popen("cat /proc/cpuinfo | grep \"model name\" | awk '{print $5}' | head -1").read().replace('\n','').replace('\r', '').strip()
- if len(a) == 0:
- return False, "Error! No Device found!\n" + a
- else:
- return True, 'PASS-{}'.format(a)
- def step4_routine(context):
- # memory_version
- context.print1("==SubTest: 检查Memory内存版本号 - Titem_5")
- context.print1("-:) sh mem-ver.sh")
- a = os.popen("sh mem-ver.sh").read().replace('\n', '').replace('\r', '').strip()
- if len(a) == 0:
- return False, "Error! No Device found!\n" + a
- else:
- return True, 'PASS-{}'.format(a)
- def step5_routine(context):
- # hdd_version
- context.print1("==SubTest: 检查SSD硬盘版本号 - Titem_6")
- context.print1("-:) sh hdd-ver.sh")
- b = os.popen("sh hdd-ver.sh").read().strip()
- a = os.popen("cat /sys/block/nvme0n1/device/firmware_rev").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(a))
- if len(a) == 0:
- return False, "Error! No Device found! " + a
- else:
- return True, 'PASS-{}'.format(a)
- def step6_routine(context):
- # os_version
- context.print1("==SubTest: 检查OS操作系统版本号 - Titem_7")
- context.print1("-:) lsb_release -rs")
- string = "os"
- a = os.popen("lsb_release -rs").read().strip()
- context.print1("output: {}".format(a))
- if a == "22.04":
- return True, 'PASS-{}'.format(a)
- else:
- return False, "Error! No Device found! " + a
- def step7_routine(context):
- context.print1("==SubTest: RTC电池 - Titem_8")
- context.print1("-:) sh os-ver.sh RTCBATTERY")
- a = os.popen("sh os-ver.sh RTCBATTERY").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if 2950 <= a_int <= 4000:
- return True, a_int
- else:
- return False, "FAIL " + a
- def step8_routine(context):
- # usb function
- context.print1("==SubTest: USB基本功能测试 - Titem_9")
- context.print1("-:) lsblk -d -o TRAN,NAME,SIZE")
- b = os.popen("lsblk -d -o TRAN,NAME,SIZE").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(b))
- b = os.popen("lsusb").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(b))
- context.print1("-:) lsblk -d -o TRAN,NAME,SIZE | grep usb | wc -l")
- a = os.popen("lsblk -d -o TRAN,NAME,SIZE | grep usb | wc -l").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int == 5:
- return True, a
- else:
- return False, "FAIL " + a
- def step9_routine(context):
- # network speed cli
- context.print1("==SubTest: 检查网络在线速度测试 - Titem_10")
- context.print1("-:) ip link show | grep -c 'BROADCAST,MULTICAST,UP,LOWER_UP'")
- c = os.popen("ip link show | grep -c \"BROADCAST,MULTICAST,UP,LOWER_UP\"").read().strip()
- context.print1("output: {}".format(c))
- try:
- c_int = int(c)
- except ValueError:
- return False, "Invalid output c: {}".format(c)
- if c_int != 1:
- return False, "FAIL " + "Error! No Device found!"
- if(context.device_info['offline_test']):
- context.print1("-:) ping -c 10 www.baidu.com | grep -E 'packet loss' | awk -F'[,%]' '{print $2}' | tr -d ' ' | tr -d 'received'")
- b = os.popen("ping -c 10 www.baidu.com")
- context.print1("output: {}".format(b))
- b = os.popen("ping -c 10 www.baidu.com | grep -E 'packet loss' | awk -F'[,%]' '{print $2}' | tr -d ' ' | tr -d 'received'").read().replace('\n', '').replace('\r', '').strip()
-
- else:
- context.print1("-:) ping -c 10 10.60.64.87 | grep -E 'packet loss' | awk -F'[,%]' '{print $2}' | tr -d ' ' | tr -d 'received'")
- b = os.popen("ping -c 10 10.60.64.87")
- context.print1("output: {}".format(b))
- b = os.popen("ping -c 10 10.60.64.87 | grep -E 'packet loss' | awk -F'[,%]' '{print $2}' | tr -d ' ' | tr -d 'received'").read().replace('\n', '').replace('\r', '').strip()
- try:
- b_int = int(b)
- except ValueError:
- return False, "Invalid output b: {}".format(b)
- if b_int == 10:
- return True, b
- else:
- return False, "FAIL " + "Error! No Device found! {}".format(b)
- def step10_routine(context):
- return True, 'AAPASS'
- #serialA
-
- context.print1("==SubTest: UartA_Test - Titem_9")
- context.print1("-:) sh pcie.sh")
- a = os.popen("sh pcie.sh").read().strip()
- context.print1("{}".format(a))
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH0")
- time.sleep(1)
- ttyWCH0 = os.popen("sh serialport-test.sh /dev/ttyWCH0").read().strip()
- try:
- a_int = int(ttyWCH0)
- except ValueError:
- return False, "Invalid output ttyWCH0: {}".format(ttyWCH0)
- if a_int == 1:
- context.print1("output ttyWCH0: {}".format(ttyWCH0))
- context.print1("output A: {}".format("A1-2"))
- pass
- else:
- context.print1("output ttyWCH0: {}".format(ttyWCH0))
- context.print1("output A: {}".format("A1-2"))
- return False, "FAIL " + "Error! No Device found! A1-2"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH1")
- ttyWCH1 = os.popen("sh serialport-test.sh /dev/ttyWCH1").read().strip()
- try:
- a_int = int(ttyWCH1)
- except ValueError:
- return False, "Invalid output ttyWCH1: {}".format(ttyWCH1)
- if a_int == 1:
- context.print1("output ttyWCH1: {}".format(ttyWCH1))
- context.print1("output A: {}".format("A1-6"))
- pass
- else:
- context.print1("output ttyWCH1: {}".format(ttyWCH1))
- context.print1("output A: {}".format("A1-6"))
- return False, "FAIL " + "Error! No Device found! A1-6"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH2")
- ttyWCH2 = os.popen("sh serialport-test.sh /dev/ttyWCH2").read().strip()
- try:
- a_int = int(ttyWCH2)
- except ValueError:
- return False, "Invalid output ttyWCH2: {}".format(ttyWCH2)
- if a_int == 1:
- context.print1("output ttyWCH2: {}".format(ttyWCH2))
- context.print1("output A: {}".format("A1-1"))
- pass
- else:
- context.print1("output ttyWCH2: {}".format(ttyWCH2))
- context.print1("output A: {}".format("A1-1"))
- return False, "FAIL " + "Error! No Device found! A1-1"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH3")
- ttyWCH3 = os.popen("sh serialport-test.sh /dev/ttyWCH3").read().strip()
- try:
- a_int = int(ttyWCH3)
- except ValueError:
- return False, "Invalid output ttyWCH3: {}".format(ttyWCH3)
- if a_int == 1:
- context.print1("output ttyWCH3: {}".format(ttyWCH3))
- context.print1("output A: {}".format("A1-5"))
- pass
- else:
- context.print1("output ttyWCH3: {}".format(ttyWCH3))
- context.print1("output A: {}".format("A1-5"))
- return False, "FAIL " + "Error! No Device found! A1-5"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH4")
- ttyWCH4 = os.popen("sh serialport-test.sh /dev/ttyWCH4").read().strip()
- try:
- a_int = int(ttyWCH4)
- except ValueError:
- return False, "Invalid output ttyWCH4: {}".format(ttyWCH4)
- if a_int == 1:
- context.print1("output ttyWCH4: {}".format(ttyWCH4))
- context.print1("output A: {}".format("A1-4"))
- pass
- else:
- context.print1("output ttyWCH4: {}".format(ttyWCH4))
- context.print1("output A: {}".format("A1-4"))
- return False, "FAIL " + "Error! No Device found! A1-4"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH5")
- ttyWCH5 = os.popen("sh serialport-test.sh /dev/ttyWCH5").read().strip()
- try:
- a_int = int(ttyWCH5)
- except ValueError:
- return False, "Invalid output ttyWCH5: {}".format(ttyWCH5)
- if a_int == 1:
- context.print1("output ttyWCH5: {}".format(ttyWCH5))
- context.print1("output A: {}".format("A1-8"))
- pass
- else:
- context.print1("output ttyWCH5: {}".format(ttyWCH5))
- context.print1("output A: {}".format("A1-8"))
- return False, "FAIL " + "Error! No Device found! A1-8"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH6")
- ttyWCH6 = os.popen("sh serialport-test.sh /dev/ttyWCH6").read().strip()
- try:
- a_int = int(ttyWCH6)
- except ValueError:
- return False, "Invalid output ttyWCH6: {}".format(ttyWCH6)
- if a_int == 1:
- context.print1("output ttyWCH6: {}".format(ttyWCH6))
- context.print1("output A: {}".format("A1-3"))
- pass
- else:
- context.print1("output ttyWCH6: {}".format(ttyWCH6))
- context.print1("output A: {}".format("A1-3"))
- return False, "FAIL " + "Error! No Device found! A1-3"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH7")
- ttyWCH7 = os.popen("sh serialport-test.sh /dev/ttyWCH7").read().strip()
- try:
- a_int = int(ttyWCH7)
- except ValueError:
- return False, "Invalid output ttyWCH7: {}".format(ttyWCH7)
- if a_int == 1:
- context.print1("output ttyWCH7: {}".format(ttyWCH7))
- context.print1("output A: {}".format("A1-7"))
- pass
- else:
- context.print1("output ttyWCH7: {}".format(ttyWCH7))
- context.print1("output A: {}".format("A1-7"))
- return False, "FAIL " + "Error! No Device found! A1-7"
- return True, "PASS"
- def step11_routine(context):
- return True, 'AAPASS'
- #serialB
- context.print1("==SubTest: UartB_Test - Titem_10")
- a = os.popen("sh pcie.sh").read().strip()
- time.sleep(1)
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH8")
- ttyWCH8 = os.popen("sh serialport-test.sh /dev/ttyWCH8").read().strip()
- try:
- a_int = int(ttyWCH8)
- except ValueError:
- return False, "Invalid output ttyWCH8: {}".format(ttyWCH8)
- if a_int == 1:
- context.print1("output ttyWCH8: {}".format(ttyWCH8))
- context.print1("output A: {}".format("A2-4"))
- pass
- else:
- context.print1("output ttyWCH8: {}".format(ttyWCH8))
- context.print1("output A: {}".format("A2-4"))
- return False, "FAIL " + "Error! No Device found! A2-4"
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH9")
- ttyWCH9 = os.popen("sh serialport-test.sh /dev/ttyWCH9").read().strip()
- try:
- a_int = int(ttyWCH9)
- except ValueError:
- return False, "Invalid output ttyWCH9: {}".format(ttyWCH9)
- if a_int == 1:
- context.print1("output ttyWCH9: {}".format(ttyWCH9))
- context.print1("output A: {}".format("A2-8"))
- pass
- else:
- context.print1("output ttyWCH9: {}".format(ttyWCH9))
- context.print1("output A: {}".format("A2-8"))
- return False, "FAIL " + "Error! No Device found! A2-8"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH10")
- ttyWCH10 = os.popen("sh serialport-test.sh /dev/ttyWCH10").read().strip()
- try:
- a_int = int(ttyWCH10)
- except ValueError:
- return False, "Invalid output ttyWCH10: {}".format(ttyWCH10)
- if a_int == 1:
- context.print1("output ttyWCH10: {}".format(ttyWCH10))
- context.print1("output A: {}".format("A2-3"))
- pass
- else:
- context.print1("output ttyWCH10: {}".format(ttyWCH10))
- context.print1("output A: {}".format("A2-3"))
- return False, "FAIL " + "Error! No Device found! A2-3"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH11")
- ttyWCH11 = os.popen("sh serialport-test.sh /dev/ttyWCH11").read().strip()
- try:
- a_int = int(ttyWCH11)
- except ValueError:
- return False, "Invalid output ttyWCH11: {}".format(ttyWCH11)
- if a_int == 1:
- context.print1("output ttyWCH11: {}".format(ttyWCH11))
- context.print1("output A: {}".format("A2-7"))
- pass
- else:
- context.print1("output ttyWCH11: {}".format(ttyWCH11))
- context.print1("output A: {}".format("A2-7"))
- return False, "FAIL " + "Error! No Device found! A2-7"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH12")
- ttyWCH12 = os.popen("sh serialport-test.sh /dev/ttyWCH12").read().strip()
- try:
- a_int = int(ttyWCH12)
- except ValueError:
- return False, "Invalid output ttyWCH12: {}".format(ttyWCH12)
- if a_int == 1:
- context.print1("output ttyWCH12: {}".format(ttyWCH12))
- context.print1("output A: {}".format("A2-2"))
- pass
- else:
- context.print1("output ttyWCH12: {}".format(ttyWCH12))
- context.print1("output A: {}".format("A2-2"))
- return False, "FAIL " + "Error! No Device found! A2-2"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH13")
- ttyWCH13 = os.popen("sh serialport-test.sh /dev/ttyWCH13").read().strip()
- try:
- a_int = int(ttyWCH13)
- except ValueError:
- return False, "Invalid output ttyWCH13: {}".format(ttyWCH13)
- if a_int == 1:
- context.print1("output ttyWCH13: {}".format(ttyWCH13))
- context.print1("output A: {}".format("A2-6"))
- pass
- else:
- context.print1("output ttyWCH13: {}".format(ttyWCH13))
- context.print1("output A: {}".format("A2-6"))
- return False, "FAIL " + "Error! No Device found! A2-6"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH14")
- ttyWCH14 = os.popen("sh serialport-test.sh /dev/ttyWCH14").read().strip()
- try:
- a_int = int(ttyWCH14)
- except ValueError:
- return False, "Invalid output ttyWCH14: {}".format(ttyWCH14)
- if a_int == 1:
- context.print1("output ttyWCH14: {}".format(ttyWCH14))
- context.print1("output A: {}".format("A2-1"))
- pass
- else:
- context.print1("output ttyWCH14: {}".format(ttyWCH14))
- context.print1("output A: {}".format("A2-1"))
- return False, "FAIL " + "Error! No Device found! A2-1"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyWCH15")
- ttyWCH15 = os.popen("sh serialport-test.sh /dev/ttyWCH15").read().strip()
- try:
- a_int = int(ttyWCH15)
- except ValueError:
- return False, "Invalid output ttyWCH15: {}".format(ttyWCH15)
- if a_int == 1:
- context.print1("output ttyWCH15: {}".format(ttyWCH15))
- context.print1("output A: {}".format("A2-5"))
- pass
- else:
- context.print1("output ttyWCH15: {}".format(ttyWCH15))
- context.print1("output A: {}".format("A2-5"))
- return False, "FAIL " + "Error! No Device found! A2-5"
-
- return True, "PASS"
- def step12_routine(context):
- #serialC
- context.print1("==SubTest: UartC_Test - Titem_11")
- context.print1("-:) sh serialport-test.sh /dev/ttyS0")
- ttyS0 = os.popen("sh serialport-test.sh /dev/ttyS0").read().strip()
- try:
- a_int = int(ttyS0)
- except ValueError:
- return False, "Invalid output ttyS0: {}".format(ttyS0)
- if a_int == 1:
- context.print1("output ttyS0: {}".format(ttyS0))
- context.print1("output COM: {}".format("COM2"))
- pass
- else:
- context.print1("output ttyS0: {}".format(ttyS0))
- context.print1("output COM: {}".format("COM2"))
- return False, "FAIL " + "Error! No Device found! COM2"
- context.print1("-:) sh serialport-test.sh /dev/ttyS1")
- ttyS1 = os.popen("sh serialport-test.sh /dev/ttyS1").read().strip()
- try:
- a_int = int(ttyS1)
- except ValueError:
- return False, "Invalid output ttyS1: {}".format(ttyS1)
- if a_int == 1:
- context.print1("output ttyS1: {}".format(ttyS1))
- context.print1("output COM: {}".format("COM5"))
- pass
- else:
- context.print1("output ttyS1: {}".format(ttyS1))
- context.print1("output COM: {}".format("COM5"))
- return False, "FAIL " + "Error! No Device found! COM5"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyS2")
- ttyS2 = os.popen("sh serialport-test.sh /dev/ttyS2").read().strip()
- try:
- a_int = int(ttyS2)
- except ValueError:
- return False, "Invalid output ttyS2: {}".format(ttyS2)
- if a_int == 1:
- context.print1("output ttyS2: {}".format(ttyS2))
- context.print1("output COM: {}".format("COM1"))
- pass
- else:
- context.print1("output ttyS2: {}".format(ttyS2))
- context.print1("output COM: {}".format("COM1"))
- return False, "FAIL " + "Error! No Device found! COM1"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyS3")
- ttyS3 = os.popen("sh serialport-test.sh /dev/ttyS3").read().strip()
- try:
- a_int = int(ttyS3)
- except ValueError:
- return False, "Invalid output ttyS3: {}".format(ttyS3)
- if a_int == 1:
- context.print1("output ttyS3: {}".format(ttyS3))
- context.print1("output COM: {}".format("COM4"))
- pass
- else:
- context.print1("output ttyS3: {}".format(ttyS3))
- context.print1("output COM: {}".format("COM4"))
- return False, "FAIL " + "Error! No Device found! COM4"
-
- # ttyS4 = os.popen("sh serialport-test.sh /dev/ttyS4").read().strip()
- # try:
- # a_int = int(ttyS4)
- # except ValueError:
- # return False, "Invalid output ttyS4: {}".format(ttyS4)
- # if a_int == 1:
- # pass
- # else:
- # return False, "FAIL " + "Error! No Device found! ttyS4"
-
- # ttyS5 = os.popen("sh serialport-test.sh /dev/ttyS5").read().strip()
- # try:
- # a_int = int(ttyS5)
- # except ValueError:
- # return False, "Invalid output ttyS5: {}".format(ttyS5)
- # if a_int == 1:
- # pass
- # else:
- # return False, "FAIL " + "Error! No Device found! ttyS5"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyS6")
- ttyS6 = os.popen("sh serialport-test.sh /dev/ttyS6").read().strip()
- try:
- a_int = int(ttyS6)
- except ValueError:
- return False, "Invalid output ttyS6: {}".format(ttyS6)
- if a_int == 1:
- context.print1("output ttyS6: {}".format(ttyS6))
- context.print1("output COM: {}".format("COM3"))
- pass
- else:
- context.print1("output ttyS6: {}".format(ttyS6))
- context.print1("output COM: {}".format("COM3"))
- return False, "FAIL " + "Error! No Device found! COM3"
-
- context.print1("-:) sh serialport-test.sh /dev/ttyS7")
- ttyS7 = os.popen("sh serialport-test.sh /dev/ttyS7").read().strip()
- try:
- a_int = int(ttyS7)
- except ValueError:
- return False, "Invalid output ttyS7: {}".format(ttyS7)
- if a_int == 1:
- context.print1("output ttyS7: {}".format(ttyS7))
- context.print1("output COM: {}".format("COM6"))
- pass
- else:
- context.print1("output ttyS7: {}".format(ttyS7))
- context.print1("output COM: {}".format("COM6"))
- return False, "FAIL " + "Error! No Device found! COM6"
-
- return True, "PASS"
- def step13_routine(context):
- #LCD Test
- context.print1("==SubTest: lcd测试 - Titem_14")
- context.print1("-:) ./lcd/lcd/lcd_app | grep -c 'LCD test completed'")
- a = os.popen('./lcd/lcd/lcd_app').read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(a))
- a = os.popen('./lcd/lcd/lcd_app | grep -c "LCD test completed"').read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output a: {}".format(a)
- if a_int == 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step14_routine(context):
- #LED Test
- context.print1("==SubTest: led测试 - Titem_15")
- context.print1("-:) sh led-test.sh")
- a = os.popen("sh led-test.sh").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(a))
- a = os.popen("sh led-test.sh | tail -1").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int == 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step15_routine(context):
- context.print1("==SubTest: 检查电池健康指示灯功能测试 - Titem_16")
- context.print1("-:) sh batled-test.sh")
- a = os.popen("sh batled-test.sh").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(a))
- a = os.popen("sh batled-test.sh | tail -1").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int == 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step16_routine(context):
- context.print1("==SubTest: 检查拨码开关功能测试 - Titem_17")
- context.print1("-:) ls /dev/")
- return True, 'AAPASS'
- # a = os.popen("sh os-ver.sh USB394").read().replace('\n', '').replace('\r', '').strip()
- # if a == "0":
- # return False, "Error! No Device found!\n" + a
- # else:
- # return True, 'PASS-{}'.format(a)
- def step17_routine(context):
- context.print1("==SubTest: Console接口测试 - Titem_18")
- context.print1("-:) ls /dev/")
- return True, 'AAPASS'
- a = os.popen("sh os-ver.sh speedcliDownload").read().replace('\n', '').replace('\r', '').strip()
- if len(a) == 0:
- return False, "Error! No Device found!\n" + a
- elif a == "Download: Upload:":
- return False, "Error! no ethernet!\n" + a
- else:
- return True, 'PASS-{}'.format(a)
- def step18_routine(context):
- context.print1("==SubTest: Buzzer基本功能测试 - Titem_19")
- context.print1("-:) sh beep.sh")
- a = os.popen("sh beep.sh").read().replace('\n', '').replace('\r', '').strip()
- if tkMessageBox.askokcancel("PASS?", "测试蜂鸣器是否正常."):
- # if ask_choice_with_timeout("PASS?", "测试蜂鸣器是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
- def step19_routine(context):
- context.print1("==SubTest: SATA_SSD基本功能测试 - Titem_20")
- context.print1("-:) lsblk -o NAME,TYPE,MOUNTPOINT,MODEL")
- a = os.popen("lsblk -o NAME,TYPE,MOUNTPOINT,MODEL").read().strip()
- context.print1("output: {}".format(a))
- context.print1("-:) ls -l /dev/disk/by-id/ | grep ata-")
- b = os.popen("ls -l /dev/disk/by-id/ | grep -c ata-").read().strip()
- context.print1("output: {}".format(b))
- b = os.popen("ls -l /dev/disk/by-id/ | grep -c ata-").read().replace('\n', '').replace('\r', '').strip()
- if b == "1":
- return True, 'PASS-{}'.format(b)
- else:
- return False, "Error! No Device found! " + b
- def step20_routine(context):
- context.print1("==SubTest: HeadBest_Test - Titem_21")
- return True, 'AAPASS'
- def step21_routine(context):
- context.print1("==SubTest: 数码管测试 - Titem_22")
- context.print1("-:) sh seven_segment_display.sh")
- a = os.popen("sh seven_segment_display.sh").read().replace('\n', '').replace('\r', '').strip()
- if tkMessageBox.askokcancel("PASS?", "测试数码管是否正常."):
- # if ask_choice_with_timeout("PASS?", "测试数码管是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
- def step22_routine(context):
- return True, 'AAPASS'
- def step23_routine(context):
- return True, 'AAPASS'
- def step24_routine(context):
- return True, 'AAPASS'
- def step25_routine(context):
- return True, 'AAPASS'
- def step26_routine(context):
- return True, 'AAPASS'
- def step27_routine(context):
- context.print1("==SubTest: 检查gsensor基本功能测试 - Titem_23")
- context.print1("-:) bash ./gsensor-SC7A20H/C180_gsensor_function_script.sh")
- context.print1("10s内手动转动屏幕,才能测试PASS!")
- tkMessageBox.showinfo("Prompt", "请人工向右转动屏幕检查横竖屏,判断重力传感器是否正常?")
- a = os.popen("bash ./gsensor-SC7A20H/C180_gsensor_function_script.sh | grep -c \"pass\"").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int == 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step28_routine(context):
- return True, 'AAPASS'
- def step29_routine(context):
- a = os.popen("sh display.sh 111111 | wc -l").read().replace('\n', '').replace('\r', '').strip()
- a = os.popen("find ./test_picture/ -name '*.jpg' | wc -l").read().strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 0:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step30_routine(context):
- a = os.popen("sh fio.sh 111111 | wc -l").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 0:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step31_routine(context):
- a = os.popen("sh os-ver.sh speaker | wc -l").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 0:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step32_routine(context):
- a = os.popen("sh record_play.sh 111111 | wc -l").read().replace('\n', '').replace('\r', '').strip()
- a = os.popen("echo 111111 | sudo -S find /tmp/ -name 'my_recording.wav' 2>&1 | wc -l").read().strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 0:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step33_routine(context):
- a = os.popen("sh led-test.sh | tail -1").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int == 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step34_routine(context):
- #a = os.popen("/usr/bin/guvcview &").read().replace('\n', '').replace('\r', '').strip()
- os.system("/usr/bin/guvcview &")
- time.sleep(15)
- os.system("sh os-ver.sh exit &")
- return True, 'PASS'
-
- def step35_routine(context):
- context.print1("==SubTest: 外置键盘测试 - Titem_24")
- context.print1("-:) sh ./keyboard.sh 111111")
- a = os.popen("sh ./keyboard.sh 111111").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(a))
- try:
- if len(a) == 1:
- return False, "FAIL " + "Error! No Device found! {}".format(a)
- elif a == "":
- return False, "FAIL " + "Error! no cashDrawer!"
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if len(a) != 0:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step36_routine(context):
- # network speed cli
- c = os.popen("ip link show | grep -c \"BROADCAST,MULTICAST,UP,LOWER_UP\"").read().strip()
- try:
- c_int = int(c)
- except ValueError:
- return False, "Invalid output c: {}".format(c)
- if c_int != 1:
- return False, "FAIL " + "Error! No Device found!"
- a = os.popen("sh os-ver.sh speedcliDownload").read().replace('\n', '').replace('\r', '').strip()
- if len(a) == 0:
- return False, "FAIL " + "Error! No Device found! {}".format(a)
- elif a == "Download: Upload:":
- return False, "FAIL " + "Error! no ethernet!"
- else:
- b = os.popen("ip link show | grep -c \"BROADCAST,MULTICAST,UP,LOWER_UP\"").read().strip()
- try:
- b_int = int(b)
- except ValueError:
- return False, "Invalid output b: {}".format(b)
- if b_int == 1:
- return True, a
- else:
- return False, "FAIL " + "Error! No Device found! {}".format(a)
- def step37_routine(context):
- a = os.popen("lsblk -d -o TRAN,NAME,SIZE | grep usb | wc -l").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 6:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step38_routine(context):
- time.sleep(1)
- os.system("sh os-ver.sh 1080p &")
- time.sleep(15)
- os.system("sh os-ver.sh exit &")
- return True, 'PASS'
- def step39_routine(context):
- context.print1("==SubTest: 钱箱基本功能测试 - Titem_27")
- context.print1("-:) sh ./cashDrawer_test.sh 111111 | tail -n 1")
- b = os.popen("sh ./cashDrawer_test.sh 111111").read().replace('\n', '').replace('\r', '').strip()
- context.print1("output: {}".format(b))
- a = os.popen("sh ./cashDrawer_test.sh 111111 | tail -n 1").read().replace('\n', '').replace('\r', '').strip()
- try:
- if len(a) == 0:
- return False, "FAIL " + "Error! No Device found! {}".format(a)
- elif a == "cashDrawer1: , cashDrawer2: ":
- return False, "FAIL " + "Error! no cashDrawer!"
- elif a == "cashDrawer1: 0, cashDrawer2: 0":
- return False, "FAIL " + "Error! no cashDrawer!"
- elif a == "cashDrawer1: 1, cashDrawer2: 0":
- return False, "FAIL " + "Error! no cashDrawer2!"
- elif a == "cashDrawer1: 0, cashDrawer2: 1":
- return False, "FAIL " + "Error! no cashDrawer1"
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if len(a) > 0:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step40_routine(context):
- #serialC
- ttyS0 = os.popen("sh serialport-test.sh /dev/ttyS0").read().strip()
- try:
- a_int = int(ttyS0)
- except ValueError:
- return False, "Invalid output ttyS0: {}".format(ttyS0)
- if a_int == 1:
- pass
- else:
- return False, "FAIL " + "Error! No Device found! ttyS0"
- ttyS1 = os.popen("sh serialport-test.sh /dev/ttyS1").read().strip()
- try:
- a_int = int(ttyS1)
- except ValueError:
- return False, "Invalid output ttyS1: {}".format(ttyS1)
- if a_int == 1:
- pass
- else:
- return False, "FAIL " + "Error! No Device found! ttyS1"
-
- ttyS2 = os.popen("sh serialport-test.sh /dev/ttyS2").read().strip()
- try:
- a_int = int(ttyS2)
- except ValueError:
- return False, "Invalid output ttyS2: {}".format(ttyS2)
- if a_int == 1:
- pass
- else:
- return False, "FAIL " + "Error! No Device found! ttyS2"
-
- ttyS3 = os.popen("sh serialport-test.sh /dev/ttyS3").read().strip()
- try:
- a_int = int(ttyS3)
- except ValueError:
- return False, "Invalid output ttyS3: {}".format(ttyS3)
- if a_int == 1:
- pass
- else:
- return False, "FAIL " + "Error! No Device found! ttyS3"
-
- ttyS6 = os.popen("sh serialport-test.sh /dev/ttyS6").read().strip()
- try:
- a_int = int(ttyS6)
- except ValueError:
- return False, "Invalid output ttyS6: {}".format(ttyS6)
- if a_int == 1:
- pass
- else:
- return False, "FAIL " + "Error! No Device found! ttyS6"
-
- ttyS7 = os.popen("sh serialport-test.sh /dev/ttyS7").read().strip()
- try:
- a_int = int(ttyS7)
- except ValueError:
- return False, "Invalid output ttyS7: {}".format(ttyS7)
- if a_int == 1:
- pass
- else:
- return False, "FAIL " + "Error! No Device found! ttyS7"
-
- return True, "PASS"
- def step41_routine(context):
- a = os.popen("bash usb_test.sh 111111 | grep -s 'PASSED' | wc -l").read().replace('\n', '').replace('\r', '').strip()
- #b = os.popen("bash usb_test.sh 111111").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step42_routine(context):
- a = os.popen("sh readsn.sh").read().replace('\n', '').replace('\r', '').strip()
- try:
- if len(a) == 0:
- return False, "Error! Serial Number is empty!\n" + a
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if len(a) == 11:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step43_routine(context):
- context.print1("==SubTest: 相机基本功能测试 - Titem_20")
- context.print1("-:) /usr/bin/guvcview &")
- a = os.popen("/usr/bin/guvcview &").read().replace('\n', '').replace('\r', '').strip()
- if tkMessageBox.askokcancel("PASS?", "测试相机是否正常."):
- # if ask_choice_with_timeout("PASS?", "测试数码管是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
- def step44_routine(context):
- context.print1("==SubTest: 检查喇叭基本功能测试 - Titem_21")
- context.print1("-:) sh os-ver.sh speaker")
- a = os.popen("sh os-ver.sh speaker").read().replace('\n', '').replace('\r', '').strip()
- if tkMessageBox.askokcancel("PASS?", "测试喇叭是否正常."):
- # if ask_choice_with_timeout("PASS?", "测试数码管是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
- def step45_routine(context):
- context.print1("==SubTest: 检查Microphone_Test基本功能测试 - Titem_22")
- context.print1("-:) sh os-ver.sh arecord")
- a = os.popen("sh os-ver.sh arecord").read().replace('\n', '').replace('\r', '').strip()
- if tkMessageBox.askokcancel("PASS?", "测试Microphone_Test是否正常."):
- # if ask_choice_with_timeout("PASS?", "测试数码管是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
- def step46_routine(context):
- context.print1("==SubTest: 检查LEDBlinking基本功能测试 - Titem_26")
- context.print1("-:) sh lightRing.sh")
- a = os.popen("sh lightRing.sh").read().replace('\n', '').replace('\r', '').strip()
- if tkMessageBox.askokcancel("PASS?", "测试确定LEDBlinking是否正常?"):
- # if ask_choice_with_timeout("PASS?", "测试数码管是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
- def step47_routine(context):
- context.print1("==SubTest: 触摸TP测试C180 - Titem_20")
- context.print1("-:) xinput --list | grep -c 'TouchScreen'")
- a = os.popen("xinput --list | grep -c 'TouchScreen'").read().replace('\n', '').replace('\r', '').strip()
- try:
- a_int = int(a)
- except ValueError:
- return False, "Invalid output: {}".format(a)
- if a_int >= 1:
- return True, 'PASS-{}'.format(a)
- else:
- return False, "FAIL " + "Error! No Device found!"
- def step48_routine(context):
- context.print1("==SubTest: 检查耳机基本功能测试 - Titem_22")
- context.print1("-:) Prompt, 请插上耳机继续测试")
- tkMessageBox.showinfo("Prompt", "请插上耳机继续测试")
- context.print1("-:) sh os-ver.sh speaker")
- a = os.popen("sh os-ver.sh speaker").read().replace('\n', '').replace('\r', '').strip()
- tkMessageBox.showinfo("Prompt", "请拔出耳机继续测试")
- if tkMessageBox.askokcancel("PASS?", "测试耳机是否正常并拔出耳机."):
- # if ask_choice_with_timeout("PASS?", "测试数码管是否正常.",30):
- return True, 'PASS'
- else:
- return False, "FAIL"
|