การทดสอบการพับของกล้อง ITS

ตั้งแต่ Android 13 เป็นต้นไป Camera ITS มีการรองรับการทดสอบสำหรับอุปกรณ์แบบพับได้ อุปกรณ์แบบพับได้มีกล้องที่พร้อมใช้งานหรือไม่พร้อมใช้งาน ขึ้นอยู่กับว่าอุปกรณ์อยู่ในสถานะพับหรือกางออก

รหัสกล้องจะเปลี่ยนไปตามประเภทอุปกรณ์ รุ่น และยี่ห้อ และความพร้อมใช้งานของกล้องหน้าจริงจะเปลี่ยนแปลงไปตามสถานะ ด้วยเหตุนี้ Camera ITS จึงกำหนดฉากและการรวมกล้องแบบไดนามิกเพื่อใช้สำหรับการทดสอบ เนื่องจากกล้องจำเป็นต้องได้รับการทดสอบทั้งในสถานะพับและกางออก การทดสอบแบบพับได้จึงจำเป็นต้องติดตั้ง DUT อีกครั้งในระหว่างขั้นตอนการทดสอบ

ทดสอบกล้องหน้าและหลัง

เซ็นเซอร์กล้องที่มีอยู่ในอุปกรณ์แบบพับได้จะแตกต่างกันไป ขึ้นอยู่กับว่าอุปกรณ์อยู่ในสถานะพับหรือกางออก สำหรับกล้องแบบพับได้ ความพร้อมใช้งานของกล้องหน้าจะเปลี่ยนแปลงไปตามสถานะ ตัวอย่างเช่น กล้องหน้าไม่พร้อมใช้งานในสถานะพับ เนื่องจากการเปลี่ยนแปลงในความพร้อมของกล้องหน้า กล้องหน้าจึงต้องได้รับการทดสอบทั้งในสถานะพับและกางออก กล้อง ITS จะถือว่าความพร้อมของกล้องด้านหลังยังคงเหมือนเดิมไม่ว่าอุปกรณ์จะพับหรือกางออก ดังนั้นกล้องด้านหลังจึงต้องทดสอบเพียงครั้งเดียว

ขึ้นอยู่กับสถานะของอุปกรณ์ กล้อง ITS จะกรองอุปกรณ์กล้องที่ไม่พร้อมใช้งานออก และอุปกรณ์กล้องจะไม่ปรากฏในรายการชุดกล้องและฉาก

ตารางต่อไปนี้อธิบายลักษณะการทดสอบ ITS ของกล้องสำหรับการวางแนวกล้องแต่ละแบบ

การวางแนวกล้อง พฤติกรรมการทดสอบ ITS ของกล้อง
กล้องหลัง ทดสอบกล้องหนึ่งครั้งในสถานะพับหรือกางออก
กล้องหน้าหลัก ทดสอบกล้องหนึ่งครั้งในสถานะพับและอีกครั้งในสถานะกางออก
กล้องหน้าทางกายภาพ ทดสอบกล้องเฉพาะในรัฐที่มีกล้องให้บริการเท่านั้น

กระบวนการทดสอบ

ในส่วนนี้จะอธิบายขั้นตอนในการทดสอบกล้องสำหรับอุปกรณ์แบบพับได้

ตั้งค่าอุปกรณ์

สำหรับข้อมูลการตั้งค่า โปรดดูที่ การตั้งค่า

ให้สิทธิ์การเข้าถึง API ทดสอบ

เพื่อให้ Camera ITS ตรวจสอบว่าอุปกรณ์สามารถพับได้หรือไม่ คุณต้องให้สิทธิ์การเข้าถึง API ทดสอบก่อนเรียกใช้การทดสอบ หากไม่ได้รับอนุญาตให้เรียกใช้การทดสอบ Camera ITS ส่งผลให้แอปหยุดทำงาน

หากต้องการให้สิทธิ์เข้าถึง ให้รันคำสั่ง ADB ต่อไปนี้ คำสั่งนี้ต้องรันเพียงครั้งเดียวสำหรับอุปกรณ์เครื่องเดียว หากมีการติดตั้ง CTS Verifier ใหม่ด้วยเวอร์ชันอื่น คุณต้องรันคำสั่งอีกครั้ง

adb shell am compat enable ALLOW_TEST_API_ACCESS com.android.cts.verifier

ไฟล์การกำหนดค่า

หากต้องการระบุว่าอุปกรณ์เป็นอุปกรณ์แบบพับได้ ให้เพิ่มพารามิเตอร์ foldable_device ทั้งใน tablet และ sensor_fusion ฟิวชั่นในไฟล์ config.yml Camera ITS ใช้พารามิเตอร์นี้เพื่อกำหนดการรวมกันของ camera_id และฉากสำหรับสถานะพับและกางออก

ต่อไปนี้เป็นตัวอย่างไฟล์ config.yml สำหรับอุปกรณ์แบบพับได้

TestBeds:
  - Name: TABLET_SCENES
    # Test configuration for scenes[0:4, 6]
    Controllers:
        AndroidDevice:
          - serial: 8A9X0NS5Z
            label: dut
          - serial: 5B16001229
            label: tablet

    TestParams:
      brightness: 192
      chart_distance: 22.0
      debug_mode: "False"     # "quotes" needed
      chart_loc_arg: ""
      camera: 0
      scene: scene2_a
  lighting_cntl: arduino    # can be "arduino" or "None"
  lighting_ch: 1
  foldable_device: "True"     # "False" for non-foldable DUTs

ทำการทดสอบ

หากต้องการรันการทดสอบ ITS บนอุปกรณ์แบบพับได้ ให้รันคำสั่ง run_all_tests.py สำหรับรายละเอียด โปรดดู การเรียกใช้การทดสอบ

เมื่อใช้ Camera ITS บนอุปกรณ์แบบพับได้ กล้องหน้าหลักจะได้รับการทดสอบในทั้งสองสถานะ ทั้งแบบพับและกางออก หากอุปกรณ์ถูกพับ ผลลัพธ์จะแสดงใต้ camera1_ SCENE_NAME _folded ในแอป CTS Verifier รหัสกล้องด้านหน้าบางตัวอาจไม่พร้อมใช้งานและไม่ได้ทดสอบ ทั้งนี้ขึ้นอยู่กับสถานะของอุปกรณ์ กล้องด้านหลังจะต้องได้รับการทดสอบในสถานะเดียวเท่านั้น โดยควรเป็นสถานะพับ และผลลัพธ์ของกล้องด้านหลังไม่มีส่วนต่อท้าย _folded

เพื่อให้แน่ใจว่าฉากที่พับไว้จะดำเนินการโดยที่อุปกรณ์พับอยู่ และตรวจสอบสถานะของ DUT แบบพับได้ ให้รันคำสั่งต่อไปนี้

adb shell cmd device_state state

เมื่อดำเนินการทดสอบในสถานะพับ Camera ITS จะแสดงข้อความในเทอร์มินัลเพื่อแจ้งให้ผู้ใช้ตั้งค่าอุปกรณ์อย่างถูกต้องบนกล่อง ITS หากต้องการดำเนินการทดสอบต่อหลังจากได้รับแจ้ง ให้กด Enter

หากคุณกำลังเรียกใช้ฉากทั้งหมดในสถานะพับและกางออก ฉากที่พับจะถูกดำเนินการก่อน ตามด้วยฉากที่กางออก ซึ่งจะช่วยลดจำนวนการติดตั้งใหม่ที่จำเป็นในระหว่างการทดสอบให้เหลือน้อยที่สุด

Camera ITS ยังเพิ่มส่วนต่อท้าย folded ในไดเร็กทอรี tmp ที่สร้างขึ้นสำหรับฉากสถานะแบบพับ

คำสั่งตัวอย่าง

ต่อไปนี้เป็นคำสั่งตัวอย่างสำหรับการทดสอบบนอุปกรณ์แบบพับได้

สั่งการ คำอธิบาย
python tools/run_all_tests.py ลุยทุกฉาก..
python tools/run_all_tests.py scenes=scene0 วิ่งฉาก0. หากอุปกรณ์ถูกพับและผู้ใช้กำลังทดสอบกล้องหน้าหลัก สคริปต์จะกำหนดสถานะของอุปกรณ์และเพิ่มส่วนต่อท้าย _folded ให้กับชื่อฉาก ผู้ใช้ไม่จำเป็นต้องเพิ่มส่วนต่อท้ายเพื่อเรียกใช้ฉากที่พับ
python tests/scene0/ -c config.yml python tests/scene0/ -c config.yml ดำเนินการทดสอบเฉพาะ