AOSP มีชุดทดสอบ GPUDrawElements Quality (deqp) ที่ https://android.googlesource.com/platform/external/deqp หน้านี้แสดงรายละเอียดวิธีทำให้ชุดทดสอบ Deqp ใช้งานได้ในสภาพแวดล้อมใหม่
หากต้องการใช้งานรหัสที่ส่งล่าสุด ให้ใช้ Branch ของ deqp-dev
สำหรับโค้ดที่ตรงกับรุ่น Android CTS บางรุ่น ให้ใช้
release-code-name-release
Branch (เช่น สำหรับ Android 6.0
ใช้ Branch marshmallow-release
)
เลย์เอาต์ต้นฉบับ
เค้าโครงซอร์สโค้ดสำหรับโมดูลการทดสอบ Deqp และไลบรารีสนับสนุนคือ ที่แสดงในตารางด้านล่าง (ข้อมูลไม่ครอบคลุม แต่เน้นที่ ไดเรกทอรีที่สำคัญที่สุด)
ไดเรกทอรี | คำอธิบาย |
---|---|
android |
แหล่งที่มาของผู้ทดสอบ Android และสคริปต์บิลด์ |
data |
ไฟล์ข้อมูลทดสอบ |
modules |
แหล่งที่มาของโมดูลทดสอบ |
modules/egl |
โมดูล EGL |
modules/gles2 |
โมดูล GLES2 |
modules/gles3 |
โมดูล GLES3 |
modules/gles31 |
โมดูล GLES3.1 |
modules/gles32 |
โมดูล GLES3.2 |
targets |
ไฟล์การกำหนดค่าบิลด์เฉพาะเป้าหมาย |
framework |
เฟรมเวิร์กโมดูลการทดสอบ Deqp และยูทิลิตี |
framework/delibs |
การถ่ายโอนฐานและสร้างไลบรารี |
framework/platform |
พอร์ตของแพลตฟอร์ม |
framework/qphelper |
ไลบรารีการผสานรวมโปรแกรมทดสอบ (C) |
framework/common |
เฟรมเวิร์ก Deqp (C++) |
framework/opengl, framework/egl |
ยูทิลิตีเฉพาะ API |
execserver |
แหล่งที่มา ExecServer ฝั่งเซิร์ฟเวอร์ |
executor |
เครื่องมือและยูทิลิตี Shell ผู้ดำเนินการทดสอบฝั่งโฮสต์ |
external |
สร้างไดเรกทอรี stub สำหรับ libs ภายนอก libpng และ zlib |
คอมโพเนนต์โอเพนซอร์ส
Deqp ใช้ libpng
และ zlib
ซึ่งดึงข้อมูลได้
โดยใช้สคริปต์
platform/external/deqp/external/fetch_sources.py
หรือผ่าน git
จาก platform/external/[libpng,zlib]
สร้างโปรแกรมทดสอบ
เฟรมเวิร์กการทดสอบได้รับการออกแบบมาโดยคำนึงถึงความสามารถในการถ่ายโอนได้ มีเพียง ข้อกำหนดที่บังคับคือการสนับสนุน C++ ทั้งหมดและไลบรารีระบบมาตรฐานสำหรับ I/O, เทรดและซ็อกเก็ต
ระบบบิลด์ CMake
แหล่งที่มา Deqp มีสคริปต์บิลด์สำหรับ CMake ซึ่งเป็นเครื่องมือที่แนะนำสำหรับ เพื่อคอมไพล์โปรแกรมทดสอบ
CMake เป็นระบบบิลด์แบบโอเพนซอร์สที่รองรับหลายแพลตฟอร์มและ Toolchain CMake สร้างไฟล์ get แบบเนทีฟหรือไฟล์โปรเจ็กต์ IDE จาก ไฟล์การกำหนดค่าไม่อิงตามเป้าหมาย สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ CMake โปรดดูที่ CMake
CMake สนับสนุนและแนะนำบิลด์ที่มาจากโครงสร้างภายนอก กล่าวคือ คุณควร สร้างไฟล์สร้างหรือไฟล์โปรเจ็กต์ในไดเรกทอรีบิลด์แยกต่างหากเสมอ ภายนอกแผนผังแหล่งที่มา CMake ไม่มี "ไม่สะอาด" ทุกประเภท เป้าหมาย ดังนั้น การนำไฟล์ที่ CMake สร้างขึ้นออกจะต้องทำด้วยตนเอง
มีตัวเลือกการกำหนดค่าให้กับ CMake โดยใช้ -DOPTION_NAME=VALUE
ไวยากรณ์ ตัวเลือกบางส่วนที่ใช้กันโดยทั่วไปสำหรับ Deqp มีดังนี้
ตัวเลือกการกำหนดค่า | คำอธิบาย |
---|---|
DEQP_TARGET |
ชื่อเป้าหมาย เช่น "android" สคริปต์ Deqp CMake จะมีไฟล์
|
CMAKE_TOOLCHAIN_FILE |
เส้นทางไปยังไฟล์ Toolchain สำหรับ CMake ใช้สำหรับการคอมไพล์แบบข้ามระบบ |
CMAKE_BUILD_TYPE |
ประเภทบิลด์สำหรับเป้าหมาย Makefile ค่าที่ถูกต้องคือ "Debug" และ "เผยแพร่" โปรดทราบว่าการตีความและประเภทเริ่มต้นขึ้นอยู่กับระบบบิลด์เป้าหมาย โปรดดูรายละเอียดในเอกสารประกอบของ CMake |
สร้างไฟล์บิลด์เป้าหมาย
มีการกำหนดค่าระบบบิลด์ Deqp สำหรับเป้าหมายใหม่โดยใช้ไฟล์บิลด์เป้าหมาย
ไฟล์บิลด์เป้าหมายจะกำหนดฟีเจอร์ที่แพลตฟอร์มรองรับและไลบรารีหรือ
ต้องระบุเส้นทาง "รวม" เพิ่มเติม ชื่อไฟล์เป้าหมายเป็นไปตาม targets/NAME/NAME.cmake
และเป้าหมายถูกเลือกโดยใช้พารามิเตอร์บิลด์ DEQP_TARGET
เส้นทางของไฟล์ในไฟล์เป้าหมายจะสัมพัทธ์กับไดเรกทอรี deqp
พื้นฐาน ไม่ใช่ไดเรกทอรี
ไดเรกทอรี targets/NAME
ไฟล์บิลด์เป้าหมายตั้งค่าตัวแปรมาตรฐานต่อไปนี้ได้
ตัวแปร | คำอธิบาย |
---|---|
DEQP_TARGET_NAME |
ชื่อเป้าหมาย (จะรวมอยู่ในบันทึกการทดสอบ) |
DEQP_SUPPORT_GLES2 |
รองรับ GLES2 หรือไม่ (ค่าเริ่มต้น: ปิด) |
DEQP_GLES2_LIBRARIES |
ไลบรารี GLES2 (เว้นว่างไว้หากไม่รองรับหรือใช้การโหลดแบบไดนามิก) |
DEQP_SUPPORT_GLES3 |
รองรับ GLES3.x หรือไม่ (ค่าเริ่มต้น: ปิด) |
DEQP_GLES3_LIBRARIES |
ไลบรารี GLES3.x (เว้นว่างไว้หากไม่รองรับหรือใช้การโหลดแบบไดนามิก) |
DEQP_SUPPORT_VG |
รองรับ OpenVG หรือไม่ (ค่าเริ่มต้น: ปิด) |
DEQP_OPENVG_LIBRARIES |
ไลบรารี OpenVG (เว้นว่างไว้หากไม่รองรับหรือใช้การโหลดแบบไดนามิก) |
DEQP_SUPPORT_EGL |
มีการรองรับ EGL หรือไม่ (ค่าเริ่มต้น: ปิด) |
DEQP_EGL_LIBRARIES |
ไลบรารี EGL (เว้นว่างไว้หากไม่รองรับหรือใช้การโหลดแบบไดนามิก) |
DEQP_PLATFORM_LIBRARIES |
ต้องมีไลบรารีเพิ่มเติมเฉพาะแพลตฟอร์มสำหรับการลิงก์ |
DEQP_PLATFORM_COPY_LIBRARIES |
รายการไลบรารีที่คัดลอกไปยังไดเรกทอรีบิลด์ไบนารีทดสอบแต่ละรายการ สามารถเป็นได้ ใช้เพื่อคัดลอกไลบรารีที่จำเป็นสำหรับการเรียกใช้การทดสอบ แต่ไม่ใช่ค่าเริ่มต้น เส้นทางการค้นหา |
TCUTIL_PLATFORM_SRCS |
รายการแหล่งที่มาของพอร์ตแพลตฟอร์ม แหล่งที่มาเริ่มต้นจะกำหนดตาม ความสามารถและระบบปฏิบัติการ หมายเหตุ: เส้นทางเกี่ยวข้องกับ |
ไฟล์บิลด์เป้าหมายสามารถเพิ่มเส้นทางการรวมหรือลิงก์เพิ่มเติมโดยใช้เมธอด
include_directories()
และ link_directories()
ฟังก์ชัน CMake
บิลด์ Win32
วิธีที่ง่ายที่สุดในการสร้างโมดูล Deqp สำหรับ Windows คือการใช้บิลด์ของ CMake ระบบ คุณต้องใช้ CMake 2.6.12 ขึ้นไปและ Microsoft Visual C/C++ คอมไพเลอร์ Deqp ได้รับการทดสอบกับ Visual Studio 2013 แล้ว
สร้างไฟล์โปรเจ็กต์ Visual Studio ได้โดยใช้คำสั่งต่อไปนี้
cmake path\to\src\deqp -G "Visual Studio 12"
สร้างบิลด์ 64 บิตได้โดยเลือก "Visual Studio VERSION Win64" เป็นบิลด์ โปรแกรมสร้าง:
cmake path\to\src\deqp -G "Visual Studio 12 Win64"
คุณสามารถสร้างไฟล์ NMake โดยใช้ตัวเลือก -G "NMake Makefiles"
ได้เช่นกัน
เป็นประเภทบิลด์ (-DCMAKE_BUILD_TYPE="Debug"
หรือ "Release"
)
แสดงผลการสร้างบริบท
คุณสร้างบริบทการแสดงผลได้ด้วย WGL หรือ EGL ใน Windows
รองรับ WGL
ไบนารี Win32 ทั้งหมดรองรับการสร้างบริบท GL ด้วย WGL เนื่องจากต้องการเพียง
ไลบรารีมาตรฐาน เลือกบริบท WGL ได้โดยใช้ --deqp-gl-context-type=wgl
อาร์กิวเมนต์บรรทัดคำสั่ง ในโหมด WGL Deqp จะใช้ WGL_EXT_create_context_es_profile
เพื่อสร้างบริบท OpenGL ES รายการนี้ได้รับการทดสอบให้ใช้งานกับ
ไดรเวอร์ล่าสุดจาก NVIDIA และ Intel ไดรเวอร์ AMD ไม่สนับสนุน
ส่วนขยาย
การรองรับ EGL
Deqp สร้างขึ้นด้วยการโหลดแบบไดนามิกสำหรับ EGL ใน Windows หาก DEQP_SUPPORT_EGL
เปิดอยู่ ตัวเลือกนี้เป็นค่าเริ่มต้นในเป้าหมายส่วนใหญ่ จากนั้น หากโฮสต์มีไลบรารี EGL
คุณสามารถทดสอบด้วยบรรทัดคำสั่งได้
พารามิเตอร์: --deqp-gl-context-type=egl
บิลด์ของ Android
บิลด์ Android ใช้สคริปต์บิลด์ CMake สำหรับการสร้างโค้ดทดสอบแบบเนทีฟ ส่วนของ Java ซึ่งก็คือ Test Execution Server และ Test Application Stub คอมไพล์ด้วยเครื่องมือสร้าง Android มาตรฐาน
เพื่อคอมไพล์โปรแกรมการทดสอบ Deqp สำหรับ Android ด้วยบิลด์ที่มีให้ คุณจะต้องมีสิ่งต่อไปนี้
- เวอร์ชันล่าสุด
Android NDK ไฟล์
android/scripts/common.py
แสดงเวอร์ชันที่จำเป็น - SDK แบบสแตนด์อโลนของ Android ที่มี API 13, เครื่องมือ SDK, เครื่องมือแพลตฟอร์ม SDK และ SDK ติดตั้งแพ็กเกจ Build-tools แล้ว
- Apache Ant 1.9.4 (จำเป็นสำหรับบิลด์โค้ด Java)
- CMake 2.8.12 ขึ้นไป
- Python 2.6 ขึ้นไปในซีรีส์ 2.x ไม่รองรับ Python 3.x
- สำหรับ Windows: ใช้ NMake หรือ JOM ใน
PATH
ก็ได้- JOM ช่วยให้สร้างบิลด์ได้เร็วขึ้น
- ไม่บังคับ: Linux รองรับแบรนด์นินจาด้วย
ไบนารีของ Ant และ SDK จะอิงตามตัวแปรสภาพแวดล้อม PATH ที่มี
ค่าเริ่มต้นบางอย่างสำหรับการลบล้าง โดย android/scripts/common.py
จะควบคุมตรรกะนี้
ไดเรกทอรี NDK ต้องเป็นแบบ ~/android-ndk-VERSION
หรือ
C:/android/android-ndk-VERSION
หรือกำหนดผ่าน ANDROID_NDK_PATH
ตัวแปรสภาพแวดล้อม
คอมโพเนนต์ Deqp ในอุปกรณ์ บริการการดำเนินการทดสอบ และโปรแกรมทดสอบต่างๆ
ซึ่งสร้างด้วยการเรียกใช้สคริปต์ android/scripts/build.py
ระบบจะสร้าง .apk สุดท้ายใน
android/package/bin
และติดตั้งได้ด้วยสคริปต์ install.py
หาก
มีการใช้ผู้ดำเนินการบรรทัดคำสั่ง และเปิดตัว ExecService
กับสคริปต์ launch.py
รายการบนอุปกรณ์ผ่าน ADB สคริปต์จะทำงานจากไดเรกทอรีใดก็ได้
บิลด์ของ Linux
สามารถสร้างไบนารีทดสอบและยูทิลิตีบรรทัดคำสั่งสำหรับ Linux ได้โดยการสร้างไฟล์การติดต่อโดยใช้ CMake มีเป้าหมายบิลด์ที่กำหนดไว้ล่วงหน้าหลายรายการซึ่งมีประโยชน์เมื่อสร้างสำหรับ Linux
เป้าหมายของบิลด์ | คำอธิบาย |
---|---|
default |
เป้าหมายเริ่มต้นที่ใช้การตรวจสอบแพลตฟอร์ม CMake เพื่อกำหนดการรองรับ API ต่างๆ |
x11_glx |
ใช้ GLX เพื่อสร้างบริบท OpenGL (ES) |
x11_egl |
ใช้ EGL เพื่อสร้างบริบท OpenGL (ES) |
x11_egl_glx |
รองรับทั้ง GLX และ EGL ด้วย X11 |
ใช้ -DCMAKE_BUILD_TYPE=<Debug|Release>
เสมอเพื่อกำหนดประเภทบิลด์
Release
คือค่าเริ่มต้นที่ดี หากไม่มีตัวเลือกนี้ ระบบจะสร้างบิลด์การเผยแพร่ที่ไม่มีการเพิ่มประสิทธิภาพโดยค่าเริ่มต้น
อาร์กิวเมนต์บรรทัดคำสั่ง -DCMAKE_C_FLAGS
และ -DCMAKE_CXX_FLAGS
ได้
ใช้ในการส่งต่ออาร์กิวเมนต์เพิ่มเติมไปยังคอมไพเลอร์ ตัวอย่างเช่น บิลด์ 32 บิตหรือ 64 บิตสามารถทำได้โดย
การตั้งค่า -DCMAKE_C(XX)_FLAGS="-m32"
หรือ "-m64"
ตามลำดับ หากไม่
มีการใช้สถาปัตยกรรมดั้งเดิมของ Toolchain ที่มักเป็นแบบ 64 บิตบน Toolchain แบบ 64 บิต
ใช้อาร์กิวเมนต์ -DCMAKE_LIBRARY_PATH
และ -DCMAKE_INCLUDE_PATH
ได้
สำหรับ CMake เพื่อมอบไลบรารีเพิ่มเติมแก่ CMake หรือเพิ่มเส้นทางการค้นหา
ตัวอย่างบรรทัดคำสั่งแบบเต็มที่ใช้สร้างบิลด์การแก้ไขข้อบกพร่อง 32 บิต ส่วนหัวและไลบรารีของไดรเวอร์ในตำแหน่งที่กำหนดเองจะเป็นดังนี้
cmake <path to src>/deqp -DDEQP_TARGET=x11_egl -DCMAKE_C_FLAGS="-m32" -DCMAKE_CXX_FLAGS="-m32" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_LIBRARY_PATH="PATH_TO_DRIVER/lib" -DCMAKE_INCLUDE_PATH="PATH_TO_DRIVER/inc"
make -j4
การคอมไพล์แบบข้ามระบบ
คุณสามารถคอมไพล์ข้ามได้โดยใช้ไฟล์เครื่องมือ CMake Toolchain
ระบุคอมไพเลอร์ที่จะใช้ พร้อมด้วยเส้นทางการค้นหาที่กำหนดเองสำหรับ
ไลบรารีและส่วนหัว ไฟล์ Toolchain หลายๆ ไฟล์สำหรับสถานการณ์ที่พบบ่อยมีดังนี้
ซึ่งรวมอยู่ในแพ็กเกจรุ่นในไดเรกทอรี framework/delibs/cmake
นอกจากตัวแปร CMake มาตรฐานแล้ว ตัวแปรเฉพาะ deqp ต่อไปนี้
สามารถตั้งค่าโดยไฟล์ Toolchain โดยปกติ CMake สามารถตรวจพบ DE_OS
และ DE_COMPILER
ได้
และ DE_PTR_SIZE
อย่างถูกต้อง แต่ DE_CPU
ต้องตั้งค่าโดยไฟล์ Toolchain
ตัวแปร | คำอธิบาย |
---|---|
DE_OS |
ระบบปฏิบัติการ ค่าที่รองรับมีดังนี้ |
DE_COMPILER |
ประเภทคอมไพเลอร์ ค่าที่รองรับมีดังนี้ |
DE_CPU |
ประเภท CPU ค่าที่รองรับคือ |
DE_PTR_SIZE |
sizeof(void*) บนแพลตฟอร์ม ค่าที่รองรับคือ 4 และ 8 |
คุณเลือกไฟล์ Toolchain ได้โดยใช้พารามิเตอร์บิลด์ CMAKE_TOOLCHAIN_FILE
ตัวอย่างเช่น ตัวอย่างต่อไปนี้จะสร้างไฟล์จำนวนมากสำหรับบิลด์โดยใช้ CodeSourcery แบบข้ามคอมไพเลอร์สำหรับ ARM/Linux
cmake PATH_TO_SRC/deqp –DDEQP_BUILD_TYPE="Release" –DCMAKE_TOOLCHAIN_FILE=PATH_TO_SRC/delibs/cmake/toolchain-arm-cs.cmake –DARM_CC_BASE=PATH_TO_CC_DIRECTORY
การลิงก์รันไทม์ของไลบรารี GLES และ EGL
Deqp ไม่จำเป็นต้องมีจุดเข้าของ API ในระหว่างการทดสอบระหว่างการลิงก์ โค้ดทดสอบจะเข้าถึง API ผ่านตัวชี้ฟังก์ชันเสมอ จุดแรกเข้าสามารถ จะถูกโหลดแบบไดนามิกในเวลาที่รันไทม์ หรือที่พอร์ตของแพลตฟอร์มสามารถระบุข้อมูลดังกล่าวไว้ที่ เวลาลิงก์
หากเปิดการสนับสนุน API ในการตั้งค่าบิลด์และไลบรารีลิงก์
ไม่ได้ระบุไว้ Deqp จะโหลดจุดเข้าที่จำเป็นขณะทำงาน หาก
หากต้องการการลิงก์แบบคงที่ ให้ระบุไลบรารีลิงก์ที่จำเป็นใน DEQP_<API>_LIBRARIES
ตัวแปรการกำหนดค่าบิลด์
ย้ายเฟรมเวิร์กการทดสอบ
การพอร์ต Deqp มี 3 ขั้นตอน ได้แก่ การปรับเปลี่ยน Base Portability Library การใช้อินเทอร์เฟซการผสานรวมแพลตฟอร์มที่มีกรอบการทดสอบ และการย้าย ที่ดำเนินการได้
ตารางด้านล่างแสดงสถานที่ตั้งของการเปลี่ยนแปลงที่น่าจะเป็นการย้าย สิ่งอื่นใดนอกเหนือจากนั้น ก็น่าจะแปลกใหม่
ตำแหน่ง | คำอธิบาย |
---|---|
framework/delibs/debase |
การใช้งานที่จำเป็นของโค้ดเฉพาะระบบปฏิบัติการ |
framework/qphelper/qpCrashHandler.c |
ไม่บังคับ: การติดตั้งใช้งานในระบบปฏิบัติการ |
framework/qphelper/qpWatchDog.c |
การติดตั้งใช้งานสำหรับระบบปฏิบัติการของคุณ ค่าปัจจุบันอิงตาม |
framework/platform |
พอร์ตแพลตฟอร์มและสตับแอปพลิเคชันใหม่สามารถนำมาใช้ได้ตามที่อธิบายไว้ใน พอร์ตแพลตฟอร์มของเฟรมเวิร์กทดสอบ |
ไลบรารีความสามารถในการเคลื่อนย้ายฐาน
ไลบรารีแบบพกพาพื้นฐานรองรับ Windows, ตัวแปร Linux ส่วนใหญ่, Mac OS iOS และ Android หากเป้าหมายทดสอบทำงานในระบบปฏิบัติการหนึ่ง คือไม่จำเป็นต้องแตะไลบรารีความสามารถในการพกพาที่เป็นฐานเลย
พอร์ตแพลตฟอร์มเฟรมเวิร์กการทดสอบ
พอร์ตแพลตฟอร์มเฟรมเวิร์กการทดสอบ Deqp ต้องมีองค์ประกอบ 2 ส่วน ได้แก่ แอปพลิเคชัน จุดแรกเข้าและการใช้งานอินเทอร์เฟซของแพลตฟอร์ม
จุดแรกเข้าของแอปพลิเคชันมีหน้าที่สร้างออบเจ็กต์แพลตฟอร์ม
กำลังสร้างออบเจ็กต์บรรทัดคำสั่ง (tcu::CommandLine
) ซึ่งเป็นการเปิดบันทึกการทดสอบ
(tcu::TestLog
) และทำซ้ำแอปพลิเคชันทดสอบ (tcu::App
) หาก
ระบบปฏิบัติการเป้าหมายรองรับจุดแรกเข้า main()
มาตรฐาน ใช้ tcuMain.cpp
ได้
เป็นการใช้งานจุดแรกเข้า
เราได้อธิบายรายละเอียดเกี่ยวกับ API แพลตฟอร์ม Deqp ไว้ในไฟล์ต่อไปนี้
ไฟล์ | คำอธิบาย |
---|---|
framework/common/tcuPlatform.hpp |
คลาสฐานสำหรับพอร์ตทุกพอร์ต |
framework/opengl/gluPlatform.hpp |
อินเทอร์เฟซแพลตฟอร์ม OpenGL |
framework/egl/egluPlatform.hpp |
อินเทอร์เฟซแพลตฟอร์ม EGL |
framework/platform/tcuMain.cpp |
จุดแรกเข้าของแอปพลิเคชันมาตรฐาน |
คลาสฐานสำหรับพอร์ตทุกพอร์ตคือ tcu::Platform
พอร์ตแพลตฟอร์มจะทำสิ่งต่อไปนี้ได้
สามารถเลือกรองรับอินเทอร์เฟซเฉพาะสำหรับ GL และ EGL โปรดดู
เพื่อดูภาพรวมของสิ่งที่ต้องดำเนินการเพื่อ
ทำการทดสอบ
โมดูล | SDK โฆษณา B |
---|---|
โมดูลทดสอบ OpenGL (ES) |
อินเทอร์เฟซแพลตฟอร์ม GL |
โมดูลการทดสอบ EGL |
อินเทอร์เฟซแพลตฟอร์ม EGL |
คำแนะนำโดยละเอียดสำหรับการใช้พอร์ตแพลตฟอร์มอยู่ใน กำลังพอร์ตส่วนหัวของเลเยอร์
บริการการดำเนินการทดสอบ
ในการใช้โครงสร้างพื้นฐานของการดำเนินการทดสอบ Deqp หรือผู้ให้บริการบรรทัดคำสั่ง
บริการการดำเนินการทดสอบต้องพร้อมใช้งานในเป้าหมาย C++ แบบพกพา
การนำบริการไปใช้ในไดเรกทอรี execserver
สแตนด์อโลน
ไบนารีนั้นสร้างขึ้นเป็นส่วนหนึ่งของโมดูลการทดสอบ Deqp
สร้างเกมใหม่ๆ เพื่อเป้าหมายบน PC คุณสามารถแก้ไข execserver/CMakeLists.txt
เพื่อเปิดใช้บิลด์บน
เป้าหมายอื่นๆ
บริการการดำเนินการทดสอบเวอร์ชัน C++ ยอมรับบรรทัดคำสั่ง 2 บรรทัด ได้แก่
-
--port=<port>
จะตั้งค่าพอร์ต TCP ที่เซิร์ฟเวอร์รับสัญญาณ ค่าเริ่มต้นคือ 50016 -
--single
จะยุติกระบวนการของเซิร์ฟเวอร์เมื่อไคลเอ็นต์ยกเลิกการเชื่อมต่อ โดยค่าเริ่มต้น แอตทริบิวต์ กระบวนการของเซิร์ฟเวอร์จะยังคงทำงานต่อไปเพื่อรองรับคำขอดำเนินการทดสอบเพิ่มเติม
ทำการทดสอบ
หน้านี้แสดงวิธีเรียกใช้การทดสอบ Deqp ใน Linux และ Windows สภาพแวดล้อมการใช้อาร์กิวเมนต์บรรทัดคำสั่ง และการทำงานกับ Android แพ็กเกจแอปพลิเคชัน
สภาพแวดล้อมของ Linux และ Windows
เริ่มต้นด้วยการคัดลอกไฟล์และไดเรกทอรีต่อไปนี้ไปยังเป้าหมาย
โมดูล | ไดเรกทอรี | Target |
---|---|---|
เซิร์ฟเวอร์การเรียกใช้ | build/execserver/execserver |
<dst>/execserver |
โมดูล EGL | build/modules/egl/deqp-egl |
<dst>/deqp-egl |
โมดูล GLES2 | build/modules/gles2/deqp-gles2 |
<dst>/deqp-gles2 |
data/gles2 |
<dst>/gles2 |
|
โมดูล GLES3 | build/modules/gles3/deqp-gles3 |
<dst>/deqp-gles3 |
data/gles3 |
<dst>/gles3 |
|
โมดูล GLES3.1 | build/modules/gles31/deqp-gles31 |
<dst>/deqp-gles31 |
data/gles31 |
<dst>/gles31 |
|
โมดูล GLES3.2 | build/modules/gles32/deqp-gles32 |
<dst>/deqp-gles32 |
data/gles32 |
<dst>/gles32 |
คุณทำให้บริการการดำเนินการและไบนารีทดสอบใช้งานได้ที่ใดก็ได้ในเป้าหมาย ระบบไฟล์ แต่ไบนารีทดสอบคาดว่าจะพบไดเรกทอรีข้อมูลใน ไดเรกทอรีที่ใช้งานอยู่ในปัจจุบัน เมื่อพร้อมแล้ว ให้เริ่มบริการการดำเนินการทดสอบใน อุปกรณ์เป้าหมาย โปรดดูรายละเอียดเกี่ยวกับการเริ่มใช้บริการ ทดสอบ ที่ดำเนินการ
อาร์กิวเมนต์บรรทัดคำสั่ง
ตารางต่อไปนี้แสดงรายการอาร์กิวเมนต์บรรทัดคำสั่งที่มีผลต่อการดำเนินการทั้งหมด โปรแกรมทดสอบต่างๆ
อาร์กิวเมนต์ | คำอธิบาย |
---|---|
--deqp-case=<casename> |
เรียกใช้เคสที่ตรงกับรูปแบบที่ระบุ ระบบรองรับไวลด์การ์ด (*) |
--deqp-log-filename=<filename> |
เขียนผลการทดสอบไปยังไฟล์ที่มีชื่อที่คุณระบุ การดำเนินการทดสอบ บริการจะตั้งชื่อไฟล์เมื่อเริ่มการทดสอบ |
--deqp-stdin-caselist |
อ่านรายการกรณีจาก stdin หรือจากอาร์กิวเมนต์ที่ระบุ การดำเนินการทดสอบ บริการจะตั้งค่าอาร์กิวเมนต์ตามคำขอการดำเนินการที่ได้รับ โปรดดู ส่วนถัดไปสำหรับคำอธิบายรูปแบบรายการเคส |
--deqp-test-iteration-count=<count> |
ลบล้างจำนวนการทำซ้ำสำหรับการทดสอบที่รองรับจำนวนตัวแปรของ ซ้ำหลายครั้ง |
--deqp-base-seed=<seed> |
Base Seed สำหรับกรอบการทดสอบที่ใช้การสุ่ม |
อาร์กิวเมนต์เฉพาะ GLES2 และ GLES3
ตารางต่อไปนี้แสดงอาร์กิวเมนต์เฉพาะ GLES2 และ GLES3อาร์กิวเมนต์ | คำอธิบาย |
---|---|
--deqp-gl-context-type=<type> |
ประเภทบริบท OpenGL ประเภทบริบทที่ใช้ได้จะขึ้นอยู่กับแพลตฟอร์ม เปิด
แพลตฟอร์มที่รองรับ EGL สามารถใช้ค่า egl เพื่อเลือก
บริบท EGL |
--deqp-gl-config-id=<id> |
เรียกใช้การทดสอบหารหัสการกำหนดค่า GL ที่ระบุ การตีความ คือ ขึ้นอยู่กับแพลตฟอร์ม ในแพลตฟอร์ม EGL นี่คือรหัสการกำหนดค่า EGL |
--deqp-gl-config-name=<name> |
เรียกใช้การทดสอบสำหรับการกำหนดค่า GL ที่มีชื่อ การตีความ คือ
ขึ้นอยู่กับแพลตฟอร์ม สำหรับ EGL รูปแบบคือ
rgb(a)<bits>d<bits>s<bits> ตัวอย่างเช่น
ของ rgb888s8 จะเลือกการกำหนดค่าแรกที่
บัฟเฟอร์สีคือ RGB888 และบัฟเฟอร์ลายฉลุมี 8 บิต |
--deqp-gl-context-flags=<flags> |
สร้างบริบท ระบุ robust หรือ debug |
--deqp-surface-width=<width> |
ลองสร้างพื้นผิวที่มีขนาดตามที่ระบุ โดยจะรองรับการดำเนินการนี้หรือไม่ก็ได้ |
--deqp-surface-type=<type> |
ใช้ประเภทพื้นผิวที่กำหนดเป็นเป้าหมายการแสดงผลทดสอบหลัก เป็นไปได้
ประเภทได้แก่ window , pixmap , pbuffer
และ fbo |
--deqp-screen-rotation=<rotation> |
การวางแนวหน้าจอโดยเพิ่มองศา 90 องศาสำหรับแพลตฟอร์มที่ ก็สนับสนุนได้เลย |
รูปแบบรายการกรอบการทดสอบ
รายการกรอบการทดสอบมี 2 รูปแบบ ตัวเลือกแรกคือการแสดง ชื่อเต็มของการทดสอบแต่ละครั้งในแต่ละบรรทัดในไฟล์ ASCII มาตรฐาน ตามที่ ชุดทดสอบยิ่งขยายตัว การใส่คำนำหน้าซ้ำๆ อาจยุ่งยาก เพื่อหลีกเลี่ยงการเกิดซ้ำ คำนำหน้า ให้ใช้ไวยากรณ์ Trie (หรือที่เรียกว่าแผนผังคำนำหน้า) ที่แสดงด้านล่าง
{nodeName{firstChild{…},…lastChild{…}}}
เช่น
{dEQP-EGL{config-list,create_context{rgb565_depth_stencil}}}
แบ่งเป็นกรณีทดสอบ 2 กรณีดังต่อไปนี้
dEQP-EGL.config_list dEQP-EGL.create_context.rgb565_depth_stencil
Android
แพ็กเกจแอปพลิเคชัน Android มีคอมโพเนนต์ที่จำเป็นทั้งหมด ได้แก่
บริการการดำเนินการทดสอบ ไบนารีการทดสอบ และไฟล์ข้อมูล กิจกรรมทดสอบ
NativeActivity
ที่ใช้ EGL (ต้องใช้ Android 3.2 ขึ้นไป)
แพ็กเกจแอปพลิเคชันสามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้ (ชื่อ แสดงเป็นชื่อ APK ในแพ็กเกจ Android CTS ชื่อที่ต้องใช้ บิลด์)
adb –d install –r com.drawelements.deqp.apk
หากต้องการเปิดใช้บริการการดำเนินการทดสอบ และตั้งค่าการส่งต่อพอร์ต ให้ใช้ ดังต่อไปนี้:
adb –d forward tcp:50016 tcp:50016
adb –d shell am start –n com.drawelements.deqp/.execserver.ServiceStarter
คุณเปิดใช้การพิมพ์การแก้ไขข้อบกพร่องได้โดยเรียกใช้คำสั่งต่อไปนี้ก่อนเริ่ม การทดสอบ:
adb –d shell setprop log.tag.dEQP DEBUG
ดำเนินการทดสอบใน Android โดยไม่ใช้ Android CTS
หากต้องการเริ่มกิจกรรมการดำเนินการทดสอบด้วยตนเอง ให้สร้าง Intent ของ Android
ที่กำหนดเป้าหมายเป็น android.app.NativeActivity
กิจกรรมประเภท
พบในแพ็กเกจ com.drawelements.deqp
บรรทัดคำสั่งต้อง
ระบุเป็นสตริงเพิ่มเติมที่มีคีย์ "cmdLine"
ใน Intent ได้
บันทึกการทดสอบเขียนไปยัง /sdcard/dEQP-log.qpa
หากทำการทดสอบ
ไม่เริ่มทำงานตามปกติ อุปกรณ์จะแสดงข้อมูลการแก้ไขข้อบกพร่องเพิ่มเติม
log
คุณสามารถเปิดกิจกรรมจากบรรทัดคำสั่งได้โดยใช้ am
ยูทิลิตี เช่น หากต้องการเรียกใช้การทดสอบ dEQP-GLES2.info
รายการบนแพลตฟอร์ม
ซึ่งรองรับ NativeActivity,
ให้ใช้คำสั่งต่อไปนี้
adb -d shell am start -n com.drawelements.deqp/android.app.NativeActivity -e \ 'cmdLine "deqp --deqp-case=dEQP-GLES2.info.* --deqp-log-filename=/sdcard/dEQP-Log.qpa"'
แก้ไขข้อบกพร่องใน Android
หากต้องการเรียกใช้การทดสอบโดยใช้โปรแกรมแก้ไขข้อบกพร่อง GDB บน Android ให้คอมไพล์และติดตั้งก่อน บิลด์การแก้ไขข้อบกพร่องด้วยการเรียกใช้สคริปต์ 2 รายการต่อไปนี้
python android/scripts/build.py --native-build-type=Debug
python android/scripts/install.py
หลังจากติดตั้งบิลด์การแก้ไขข้อบกพร่องในอุปกรณ์แล้ว เพื่อเปิดใช้การทดสอบภายใต้ GDB ที่กำลังทำงานบนโฮสต์ ให้เรียกใช้คำสั่งต่อไปนี้
python android/scripts/debug.py \ --deqp-commandline="--deqp-log-filename=/sdcard/TestLog.qpa --deqp-case=dEQP-GLES2.functional.*"
บรรทัดคำสั่ง Deqp ขึ้นอยู่กับกรอบการทดสอบที่จะดำเนินการและ
พารามิเตอร์ที่จำเป็น สคริปต์เพิ่มเบรกพอยท์เริ่มต้นที่ตอนต้นของ
การดำเนินการ Deqp (tcu::App::App
)
สคริปต์ debug.py
ยอมรับอาร์กิวเมนต์บรรทัดคำสั่งหลายรายการสำหรับ
การดำเนินการ เช่น การตั้งค่าเบรกพอยท์สำหรับการแก้ไขข้อบกพร่อง การเชื่อมต่อ gdbserver
และเส้นทางไปยังไบนารีเพิ่มเติมเพื่อแก้ไขข้อบกพร่อง (ใช้ debug.py
--help
สำหรับอาร์กิวเมนต์และคำอธิบายทั้งหมด) สคริปต์ยังคัดลอก
ไลบรารีเริ่มต้นจากอุปกรณ์เป้าหมายเพื่อรับรายการสัญลักษณ์
เพื่อดูขั้นตอนผ่านโค้ดไดรเวอร์ (เช่น เมื่อ GDB ต้องการทราบตำแหน่งที่ตั้ง
ของไบนารีที่มีข้อมูลการแก้ไขข้อบกพร่องอย่างสมบูรณ์) ให้เพิ่มไลบรารีเพิ่มเติมผ่าน
พารามิเตอร์บรรทัดคำสั่ง debug.py
สคริปต์นี้จะเขียน
สำหรับ GDB เริ่มต้นจากบรรทัดที่ 132 ของไฟล์สคริปต์ คุณ
สามารถให้เส้นทางเพิ่มเติมไปยังไบนารี ฯลฯ แต่การระบุคำสั่งที่ถูกต้อง
ควรเพียงพอแล้ว
หมายเหตุ: ใน Windows ไบนารี GDB จำเป็นต้องใช้
libpython2.7.dll
เพิ่มก่อนการเปิดตัว debug.py
<path-to-ndk>/prebuilt/windows/bin
ไปยังตัวแปร PATH
หมายเหตุ: การแก้ไขข้อบกพร่องของโค้ดเนทีฟจะไม่ทำงาน สต็อก Android 4.3 สำหรับวิธีแก้ไขปัญหาชั่วคราว โปรดดูที่ ข้อบกพร่องของสาธารณะนี้ Android 4.4 ขึ้นไปไม่มีข้อบกพร่องนี้
ทำให้การทดสอบเป็นแบบอัตโนมัติ
โมดูลการทดสอบ Deqp สามารถผสานรวมเข้ากับระบบทดสอบอัตโนมัติได้หลายวิธี วิธีที่ดีที่สุดขึ้นอยู่กับโครงสร้างพื้นฐานและเป้าหมายการทดสอบที่มีอยู่ ของคุณ
ผลลัพธ์หลักจากการเรียกใช้ทดสอบจะเป็นไฟล์บันทึกการทดสอบเสมอ ซึ่งก็คือไฟล์
ที่มีการแก้ไขโพสต์ไว้ของ .qpa
สามารถแยกวิเคราะห์ผลการทดสอบแบบเต็มจากบันทึกการทดสอบ เอาต์พุตของคอนโซลคือ
ข้อมูลการแก้ไขข้อบกพร่องเท่านั้น และอาจไม่พร้อมใช้งานในบางแพลตฟอร์ม
คุณเรียกใช้ไบนารีการทดสอบได้โดยตรงจากระบบอัตโนมัติทดสอบ การทดสอบ สามารถเปิดไบนารีสำหรับกรณีที่เฉพาะเจาะจง สำหรับชุดทดสอบ หรือสำหรับ การทดสอบที่มีอยู่ หากเกิดข้อผิดพลาดร้ายแรงระหว่างการดำเนินการ (เช่น API บางรายการ) ข้อผิดพลาดหรือการขัดข้อง) การดำเนินการทดสอบจะล้มเลิก สำหรับการทดสอบการถดถอย ค่า วิธีที่ดีที่สุดคือเรียกใช้ไบนารีการทดสอบสำหรับกรณีเฉพาะหรือการทดสอบขนาดเล็ก แยกกัน เพื่อให้ได้ผลลัพธ์บางส่วนแม้อยู่ในเหตุการณ์ ความล้มเหลวอย่างหนัก
Deqp มาพร้อมกับเครื่องมือการดำเนินการทดสอบบรรทัดคำสั่งที่สามารถใช้ ร่วมกับบริการการดำเนินการเพื่อให้การผสานรวมมีประสิทธิภาพมากขึ้น ผู้ดำเนินการตรวจพบการสิ้นสุดของกระบวนการทดสอบและกลับมาดำเนินการทดสอบต่อในวันที่ เคสถัดไปที่พร้อมใช้งาน ไฟล์บันทึกเดียวที่สร้างจากการทดสอบเต็มรูปแบบ เซสชัน การตั้งค่านี้เหมาะสำหรับระบบการทดสอบขนาดเล็กที่ไม่มี และศูนย์กู้คืนการชน
เครื่องมือทดสอบบรรทัดคำสั่ง
ชุดเครื่องมือบรรทัดคำสั่งปัจจุบันประกอบด้วยเครื่องมือดำเนินการทดสอบระยะไกล นั่นคือการทดสอบ โปรแกรมสร้างการเปรียบเทียบบันทึกสำหรับการวิเคราะห์การถดถอย เครื่องมือแปลงบันทึกบันทึกเป็น CSV ทดสอบ เครื่องมือแปลงทดสอบบันทึกเป็น XML และเครื่องมือแปลง testlog-to-JUnit
ซอร์สโค้ดสำหรับเครื่องมือเหล่านี้อยู่ในไดเรกทอรี executor
และไบนารี
อยู่ในไดเรกทอรี <builddir>/executor
ผู้ดำเนินการทดสอบบรรทัดคำสั่ง
การดำเนินการทดสอบบรรทัดคำสั่งเป็นเครื่องมือ C++ แบบพกพาสำหรับเรียกใช้การทดสอบ
ในอุปกรณ์และเก็บรวบรวมบันทึกที่ได้จากอุปกรณ์ผ่าน TCP/IP ผู้บริหาร
สื่อสารกับบริการดำเนินการ (execserver) ในอุปกรณ์เป้าหมาย
รวมทั้งมีฟังก์ชันการทำงานต่างๆ เช่น การกู้คืนจากข้อขัดข้องของกระบวนการทดสอบ
ตัวอย่างต่อไปนี้สาธิตวิธีใช้ตัวดำเนินการทดสอบบรรทัดคำสั่ง
(ใช้ --help
เพื่อดูรายละเอียดเพิ่มเติม):
ตัวอย่างที่ 1: ทดสอบการทำงาน GLES2 ในอุปกรณ์ Android
executor --connect=127.0.0.1 --port=50016 --binaryname= com.drawelements.deqp/android.app.NativeActivity --caselistdir=caselists --testset=dEQP-GLES2.* --out=BatchResult.qpa --cmdline="--deqp-crashhandler=enable --deqp-watchdog=enable --deqp-gl-config-name=rgba8888d24s8"
ตัวอย่างที่ 2: ทำการทดสอบ OpenGL ES 2 บางส่วนต่อในเครื่อง
executor --start-server=execserver/execserver --port=50016 --binaryname=deqp-gles2 --workdir=modules/opengl --caselistdir=caselists --testset=dEQP-GLES2.* --exclude=dEQP-GLES2.performance.* --in=BatchResult.qpa --out=BatchResult.qpa
ทดสอบการส่งออก CSV ของบันทึกและเปรียบเทียบ
deqp มีเครื่องมือสำหรับแปลงไฟล์บันทึกการทดสอบ (ไฟล์ .qpa
) เป็นไฟล์ CSV CSV
เอาต์พุตจะมีรายการกรอบการทดสอบและ
ผลลัพธ์ เครื่องมือนี้ยังสามารถเปรียบเทียบผลลัพธ์แบบกลุ่มตั้งแต่ 2 รายการขึ้นไปและแสดงเฉพาะ
กรอบการทดสอบที่มีรหัสสถานะแตกต่างกันในผลลัพธ์ของกลุ่มอินพุต
ก็จะพิมพ์จำนวนเคสที่ตรงกันด้วย
เอาต์พุตในรูปแบบ CSV มีประโยชน์อย่างยิ่งสำหรับการประมวลผลเพิ่มเติมตามมาตรฐาน
บรรทัดคำสั่ง หรือโปรแกรมแก้ไขสเปรดชีต ข้อมูลเพิ่มเติมที่มนุษย์อ่านได้
เลือกรูปแบบข้อความธรรมดาได้โดยใช้อาร์กิวเมนต์บรรทัดคำสั่ง --format=text
ตัวอย่างที่ 1: ส่งออกบันทึกการทดสอบในรูปแบบ CSV
testlog-to-csv --value=code BatchResult.qpa > Result_statuscodes.csv
testlog-to-csv --value=details BatchResult.qpa > Result_statusdetails.csv
ตัวอย่างที่ 2: แสดงรายการความแตกต่างของผลการทดสอบระหว่างบันทึกการทดสอบ 2 รายการ
testlog-to-csv --mode=diff --format=text Device_v1.qpa Device_v2.qpa
หมายเหตุ: อาร์กิวเมนต์ --value=code
จะแสดงผลการทดสอบ
รหัสผลลัพธ์ เช่น "ผ่าน" หรือ "ไม่ผ่าน" อาร์กิวเมนต์ --value=details
จะเลือกอาร์กิวเมนต์
คำอธิบายผลลัพธ์หรือค่าตัวเลขที่เกิดจากการทดสอบประสิทธิภาพ ความสามารถ หรือความแม่นยำ
ส่งออก XML ของบันทึกทดสอบ
ไฟล์บันทึกทดสอบสามารถแปลงเป็นเอกสาร XML ที่ถูกต้องโดยใช้ testlog-to-xml
ยูทิลิตี โหมดเอาต์พุต 2 แบบที่ใช้ได้มีดังนี้
- โหมดเอกสารแยกต่างหาก โดยจะใช้แต่ละกรอบการทดสอบและข้อมูลสรุป
caselist.xml
เขียนเอกสารไปยังไดเรกทอรีปลายทางแล้ว - โหมดไฟล์เดียว ซึ่งจะเขียนผลลัพธ์ทั้งหมดในไฟล์
.qpa
เป็นเอกสาร XML เดียว
สามารถดูไฟล์บันทึกการทดสอบที่ส่งออกได้ในเบราว์เซอร์โดยใช้สไตล์ชีต XML
ให้ตัวอย่างเอกสารสไตล์ชีต (testlog.xsl
และ testlog.css
)
ในไดเรกทอรี doc/testlog-stylesheet
หากต้องการแสดงผลไฟล์บันทึกในเบราว์เซอร์ ให้คัดลอก
ไฟล์สไตล์ชีตสองไฟล์ลงในไดเรกทอรีเดียวกันที่มีเอกสาร XML ที่ส่งออกอยู่
หากใช้ Google Chrome จะต้องเข้าถึงไฟล์ผ่าน HTTP ในฐานะ Chrome
จำกัดการเข้าถึงไฟล์ในเครื่องด้วยเหตุผลด้านความปลอดภัย การติดตั้ง Python มาตรฐาน
มีเซิร์ฟเวอร์ HTTP พื้นฐานที่สามารถเปิดขึ้นเพื่อแสดง
ด้วยคำสั่ง python –m SimpleHTTPServer 8000
หลังจากเปิดใช้เซิร์ฟเวอร์
เพียงชี้เบราว์เซอร์ Chrome ไปที่ http://localhost:8000
เพื่อดูบันทึกการทดสอบ
การแปลงเป็นบันทึกการทดสอบ JUnit
ระบบอัตโนมัติสำหรับการทดสอบหลายระบบสามารถสร้างรายงานผลการทดสอบจาก JUnit ได้ เอาต์พุต ไฟล์บันทึกการทดสอบ Deqp สามารถแปลงเป็นรูปแบบเอาต์พุต JUnit ได้ โดยใช้เครื่องมือ testlog-to-junit
ปัจจุบันเครื่องมือนี้สนับสนุนการแปลผลการตัดสินกรอบการทดสอบเท่านั้น เป็น JUnit สนับสนุนเฉพาะ "ผ่าน" เท่านั้น และ "ล้มเหลว" ผลลัพธ์ ระบบจะจับคู่ผลลัพธ์การผ่านของ Deqp กับ "บัตรผ่าน JUnit" และผลลัพธ์อื่นๆ จะถือว่าล้มเหลว Deqp เดิม รหัสผลลัพธ์จะอยู่ในเอาต์พุต JUnit ข้อมูลอื่นๆ เช่น ข้อความบันทึก และรูปภาพผลลัพธ์ จะไม่ปรากฏใน Conversion
ใช้กลุ่มทดสอบพิเศษ
กลุ่มทดสอบบางกลุ่มอาจต้องการหรือรองรับตัวเลือกบรรทัดคำสั่งพิเศษ หรือต้องใช้ ด้วยความระมัดระวังเป็นพิเศษเมื่อใช้ในบางระบบ
การทดสอบความเครียดของการจัดสรรหน่วยความจำ
การทดสอบความเครียดในการจัดสรรหน่วยความจำใช้เงื่อนไขที่อยู่นอกหน่วยความจําซ้ำๆ จัดสรรทรัพยากรบางอย่างจนกว่าคนขับจะรายงานข้อผิดพลาดจากหน่วยความจำหมด
ในบางแพลตฟอร์ม เช่น Android และ Linux เวอร์ชันส่วนใหญ่ จะมีการดำเนินการดังนี้
อาจเกิดขึ้นได้: ระบบปฏิบัติการอาจปิดกระบวนการทดสอบแทนที่จะปล่อยให้
ไดรเวอร์นั้นจัดการได้หรือมีข้อผิดพลาดของหน่วยความจํา ใน
แพลตฟอร์ม การทดสอบที่ออกแบบมาเพื่อทำให้เกิดข้อผิดพลาดจากหน่วยความจำจะถูกปิดใช้
โดยค่าเริ่มต้น และต้องเปิดใช้โดยใช้อาร์กิวเมนต์บรรทัดคำสั่ง --deqp-test-oom=enable
เราขอแนะนำให้คุณดำเนินการทดสอบดังกล่าวด้วยตนเองเพื่อ
ตรวจสอบว่าระบบทำงานอย่างถูกต้องภายใต้แรงกดของทรัพยากรหรือไม่ อย่างไรก็ตาม
ความขัดข้องของกระบวนการทดสอบ ควรตีความว่าผ่าน
กลุ่มทดสอบ
dEQP-GLES2.stress.memory.* dEQP-GLES3.stress.memory.*
การทดสอบความเครียดในการแสดงภาพที่ใช้เวลานาน
การแสดงผลการทดสอบความเครียดได้รับการออกแบบมาเพื่อเปิดเผยปัญหาเรื่องความทนทานภายใต้
การโหลดการแสดงผล โดยค่าเริ่มต้น การทดสอบจะดำเนินการซ้ำเพียงไม่กี่ครั้ง
สามารถกำหนดค่าให้ทำงานโดยไม่มีกำหนดได้โดยการใส่ --deqp-test-iteration-count=-1
อาร์กิวเมนต์บรรทัดคำสั่ง ควรปิดใช้ Watchdog การทดสอบ (--deqp-watchdog=disable
)
เมื่อทำการทดสอบเป็นระยะเวลานาน
กลุ่มทดสอบ
dEQP-GLES2.stress.long.* dEQP-GLES3.stress.long.*