This guide provides step-by-step instructions for building and testing the DRM Test Suite on Tizen targets.
- Tizen SDK >= 7.0
- GBS (Graphical Build System) >= 0.14
- Tizen Studio >= 4.0
- Tizen target device or emulator
- Tizen DRM development packages
- Tizen device with DRM support
- USB cable for device connection
- Debug mode enabled on target device
# Initialize GBS environment
gbs env --setup
# Create project directory
gbs build --create-project# Create source tarball
make dist
# Copy to GBS workspace
cp tizen_drm_test_suite.spec ~/tizen-workspace/tizen-drm-test-suite/
cp tizen-drm-test-suite-1.0.0.tar.gz ~/tizen-workspace/tizen-drm-test-suite/# Set target architecture
export ARCH=armv7l
# Set target profile
export PROFILE=mobile# Build package
gbs build --include-all --arch $ARCH --profile $PROFILE
# Build with debug symbols (optional)
gbs build --include-all --arch $ARCH --profile $PROFILE --debug# List connected targets
sdb devices
# Ensure device is in debug mode
sdb shell "setprop debug.drm.enable 1"# Install package
sdb push /path/to/package.rpm /tmp/
sdb shell "rpm -Uvh /tmp/package.rpm"# Run test suite
sdb shell "/usr/bin/test_suite"
# View test results
sdb shell "cat /tmp/test_results.log"# Run specific tests
sdb shell "/usr/bin/test_suite --test buffer_sharing"
sdb shell "/usr/bin/test_suite --test format_conversion"
# Run with verbose output
sdb shell "/usr/bin/test_suite --verbose"# Test GEM buffer sharing
sdb shell "/usr/bin/test_suite --test buffer_sharing --format ARGB32"
# Test DMA-BUF sharing
sdb shell "/usr/bin/test_suite --test dma_buf_sharing"# Test RGB to YUV conversion
sdb shell "/usr/bin/test_suite --test format_conversion --src_format ARGB32 --dst_format NV12"
# Test YUV to RGB conversion
sdb shell "/usr/bin/test_suite --test format_conversion --src_format NV12 --dst_format ARGB32"# Test primary plane
sdb shell "/usr/bin/test_suite --test plane_config --plane primary"
# Test overlay plane
sdb shell "/usr/bin/test_suite --test plane_config --plane overlay"# Run buffer sharing performance test
sdb shell "/usr/bin/test_suite --test performance --test_case buffer_sharing"
# Run format conversion performance test
sdb shell "/usr/bin/test_suite --test performance --test_case format_conversion"# Enable DRM debug logs
sdb shell "setprop debug.drm.log 1"
# View DRM logs
sdb shell "logcat -s DRM"# Run with debug output
sdb shell "/usr/bin/test_suite --debug"
# View test logs
sdb shell "cat /tmp/test_debug.log"# Run with memory profiling
sdb shell "valgrind --tool=memcheck /usr/bin/test_suite"
# View memory report
sdb shell "cat /tmp/memcheck_report.txt"-
Build Errors
- Check if all build dependencies are installed
- Verify GBS environment is properly set up
- Check for architecture-specific issues
-
Test Failures
- Check DRM driver version compatibility
- Verify DRM permissions
- Check for memory allocation failures
-
Performance Issues
- Monitor CPU usage
- Check for buffer leaks
- Verify synchronization primitives
- Check DRM Capabilities
sdb shell "cat /sys/class/drm/card0/device/drm/caps"- Verify Buffer Formats
sdb shell "/usr/bin/test_suite --test buffer_formats"- Check Memory Usage
sdb shell "top -b -n 1 | grep test_suite"# Measure DMA-BUF sharing latency
sdb shell "/usr/bin/test_suite --test performance --test_case dma_buf_sharing"
# Measure GEM buffer sharing latency
sdb shell "/usr/bin/test_suite --test performance --test_case gem_sharing"# Measure RGB to YUV conversion time
sdb shell "/usr/bin/test_suite --test performance --test_case rgb_to_yuv"
# Measure YUV to RGB conversion time
sdb shell "/usr/bin/test_suite --test performance --test_case yuv_to_rgb"# Measure plane configuration time
sdb shell "/usr/bin/test_suite --test performance --test_case plane_config"-
Test Environment
- Run tests in a clean environment
- Disable unnecessary services
- Use dedicated test partitions
-
Performance Testing
- Run multiple iterations
- Measure average performance
- Consider thermal effects
-
Memory Management
- Check for memory leaks
- Verify buffer allocation
- Monitor memory usage
-
DRM Permissions
- Verify DRM device permissions
- Check for buffer access rights
- Validate DMA-BUF sharing permissions
-
Data Protection
- Ensure secure buffer sharing
- Validate format conversions
- Check for buffer overflows
-
Target Compatibility
- Some tests may require specific DRM driver versions
- Performance metrics may vary across devices
- Buffer formats may differ between targets
-
Resource Constraints
- Memory limitations on target devices
- CPU/GPU performance variations
- Thermal management considerations
For issues and feedback:
- GitHub Issues: https://github.com/tizen/tizen-drm-test-suite/issues
- Tizen Forums: https://forums.tizen.org
- Email: tizen-dev@lists.tizen.org
This guide is licensed under the Apache-2.0 license.