Skip to content

Conversation

KarolinaPomian
Copy link
Collaborator

This pull request adds comprehensive documentation to the Media Transport Library validation test suite by introducing new README.md files across key directories. These documents provide detailed overviews of the test framework's structure, configuration, utilities, engine components, and test modules, significantly improving onboarding and usability for developers and testers.

Documentation Additions:

  • Top-level test suite documentation:

    • Added tests/validation/README.md with an overview of the validation framework, directory structure, setup instructions, test execution examples, configuration guidance, troubleshooting tips, and licensing information.
  • Common utilities documentation:

    • Added tests/validation/common/README.md describing shared utilities for network control, data integrity checks, FFmpeg integration, and usage examples.
  • Configuration documentation:

    • Added tests/validation/configs/README.md explaining the structure and customization of test_config.yaml and topology_config.yaml, including environment-specific overrides and programmatic usage.
  • Test engine documentation:

    • Added tests/validation/mtl_engine/README.md detailing the core engine modules, such as process management, application interfaces, reporting, integrity checking, RAM disk management, and extension points.
  • Test modules documentation:

    • Added tests/validation/tests/README.md outlining the organization of test categories, test types, execution instructions, and guidelines for adding new tests.

Comment on lines 12 to 44
tests/validation/
├── common/ # Shared utilities for tests
│ ├── ffmpeg_handler/ # FFmpeg integration utilities
│ ├── integrity/ # Data integrity verification tools
│ └── nicctl.py # Network interface control
├── configs/ # Test configuration files
│ ├── test_config.yaml # Test environment settings
│ └── topology_config.yaml # Network topology configuration
├── create_pcap_file/ # Tools for packet capture file creation
├── mtl_engine/ # Core test framework components
│ ├── execute.py # Test execution management
│ ├── RxTxApp.py # RX/TX application interface
│ ├── GstreamerApp.py # GStreamer integration
│ ├── ffmpeg_app.py # FFmpeg integration
│ ├── csv_report.py # Test result reporting
│ └── ramdisk.py # RAM disk management
├── tests/ # Test modules
│ ├── single/ # Single-flow test scenarios
│ │ ├── dma/ # DMA tests
│ │ ├── ffmpeg/ # FFmpeg integration tests
│ │ ├── gstreamer/ # GStreamer integration tests
│ │ ├── kernel_socket/ # Kernel socket tests
│ │ ├── performance/ # Performance benchmarking
│ │ ├── ptp/ # Precision Time Protocol tests
│ │ ├── st20p/ # ST2110-20 video tests
│ │ ├── st22p/ # ST2110-22 compressed video tests
│ │ ├── st30p/ # ST2110-30 audio tests
│ │ └── st41/ # ST2110-40 ancillary data tests
│ ├── dual/ # Dual-flow test scenarios
│ └── invalid/ # Error handling and negative test cases
├── conftest.py # pytest configuration and fixtures
├── pytest.ini # pytest settings
└── requirements.txt # Python dependencies
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will be difficult to maintain and does not provide any new information beyond what is already in the file name. I would remove it or leave description just to common files with extended description.

Comment on lines 49 to 54
### Prerequisites

- Python 3.9 or higher
- Media Transport Library built and installed
- Network interfaces configured for testing
- Sufficient permissions for network management
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • It is also necessary to have the files used as input data. We currently have them on NFS.
  • What does it mean to have "Network interfaces configured for testing"? I guess you need to have to have everything done form MTL's run.md, but VF are created automatically.
  • by "Sufficient permissions for network management" you mean you have to be root user? Is there any other option?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • you need to install ffmpeg and gstreamer plugins to run some of the tests.


## Running Tests

### Basic Test Execution
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add info that you also can run given testcase with specific parameters like : pytest --topology_config=configs/topology_config.yaml --test_config=configs/test_config.yaml "tests/single/st20p/fps/test_fps.py::test_fps[|fps = p60|-ParkJoy_1080p]"

- **name**: Host identifier
- **instantiate**: Whether to instantiate the host
- **role**: Host role (e.g., sut for System Under Test)
- **network_interfaces**: List of network interfaces
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can I specify device differently? I think there was an option to provide system name. How to do it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants