Skip to content

Add Unit Testing#7

Merged
wilsonCernWq merged 23 commits into
publicfrom
testing
Apr 26, 2026
Merged

Add Unit Testing#7
wilsonCernWq merged 23 commits into
publicfrom
testing

Conversation

@wilsonCernWq
Copy link
Copy Markdown
Collaborator

No description provided.

wilsonCernWq and others added 23 commits April 24, 2026 20:36
- Updated `configure_tests.cmake` to enforce a TEST_PREFIX for CTest names, ensuring proper fixture attachment.
- Refined `build.sh` script to improve phase handling and enforce Python dependency checks for testing.
- Modified `CMakeLists.txt` to enforce hard requirements for Python and pytest when OVR_BUILD_TESTS is enabled, preventing silent skips.
- Added a new test to ensure that all rendering backends produce visible output, addressing potential renderer regressions.
- Updated Python tests to utilize a configurable density scale, ensuring consistency across test cases.
- Improved error handling in rendering regression tests to provide clearer feedback on missing baselines.
- Introduced new synthetic scene images for OptiX and OSPRay backends.
- Updated rendering tests to include `renderer.swap()` calls, ensuring proper framebuffer management across various test cases.
- Introduced `render_to_framebuffer` and `render_to_image` functions in the Python bindings for improved framebuffer management.
- Added a new script `render_scene.py` to facilitate rendering OVR scenes to PNG images, allowing for customizable parameters such as backend, framebuffer size, and rendering options.
- Updated existing tests to utilize the new rendering functions, ensuring consistency and reducing code duplication in test cases.
- Introduced `pyproject.toml` for managing Python dependencies and build configuration using scikit-build-core.
- Updated `.gitignore` to include Python packaging artifacts and lock files.
- Enhanced `README.md` to document the new Python package structure and installation instructions.
- Refactored Python bindings to create a dedicated `_core` module, allowing for cleaner imports and better organization.
- Added a new `render.py` script for rendering scenes from the command line, improving usability.
- Updated testing instructions to reflect the new dependency management approach, removing the old `requirements.txt`.
- Introduced `DEV.md` to provide comprehensive developer guidelines, including build-system internals, CMake options, and Python packaging details.
- Updated `README.md` to reference the new developer guide and clarify project structure.
- Enhanced `pyproject.toml` comments to explain its role in Python packaging and build configuration.
- Improved `scripts/build.sh` comments to direct users to `DEV.md` for detailed phase and option information.
- Updated `test/README.md` to link to `DEV.md` for build-system internals and installation instructions.
…gration

- Added `CUDAARCHS` environment variable to centralize CUDA architecture settings in the CI workflow.
- Removed redundant architecture specifications from job definitions to streamline configuration.
- Enhanced test execution by explicitly managing GPU dependencies in both C++ and Python tests, ensuring failures are reported for missing hardware.
- Updated `pytest` markers and documentation to clarify test execution behavior based on hardware availability.
- Improved comments in the CI workflow and test configuration files for better clarity and maintainability.
- Added `renderapp` and `renderbatch` C++ applications, bundled in `<wheel>/ovrpy/bin/` and exposed via Python entry-point shims in `python/ovrpy/_apps.py` for seamless execution.
- Updated `pyproject.toml` to include new console scripts for the C++ apps, ensuring they are accessible on the user's `$PATH` post-installation.
- Modified CMake configuration to install the C++ apps with the correct RPATH, resolving dependencies without absolute paths.
- Improved documentation in `DEV.md` and `README.md` to clarify the usage of new console scripts and the structure of bundled applications.
- Refactored pytest configuration to centralize options in `pyproject.toml`, enhancing test execution clarity and maintainability.
- Included `dep_json.cmake` to manage the nlohmann/json library as a dependency, ensuring compatibility with existing code.
- Removed the legacy JSON header and license files to streamline the project and avoid redundancy.
- Updated CMake configuration to link the new JSON dependency with the `renderlib` target, enhancing integration.
- Added support for dynamic CUDA architecture settings in the CI workflow by introducing the `CUDAARCHS` variable.
- Updated CMake configuration to ensure consistent handling of CUDA architectures across different job definitions.
- Enhanced test properties in `configure_tests.cmake` to treat specific exit codes as skipped tests, improving test reporting on GPU-less environments.
- Added Python setup step in the CI workflow to install pytest and related dependencies for testing.
- Updated CMake configuration to enable Python bindings during the build process, ensuring compatibility with test execution.
- Improved CTest command to skip Python tests in the CPU-only job while maintaining proper configuration for future integration.
- Included `dep_tinygltf.cmake` to manage the tinygltf library as a dependency, allowing for glTF model loading and saving.
- Updated `CMakeLists.txt` to include the new tinygltf dependency and added a corresponding option in `DEV.md`.
- Removed legacy PLY files (`ply.cpp` and `ply.h`) to streamline the project and eliminate redundancy, as they are no longer needed.
- Enhanced documentation to reflect the addition of tinygltf and its usage in the project.
- Upgraded minimum CMake version to 3.18 for enhanced Python support.
- Replaced legacy Python detection with CMake's FindPython3 for improved compatibility across platforms.
- Ensured PYTHON_EXECUTABLE is set correctly for downstream consumers, maintaining legacy variable support.
- Configured pybind11 to utilize the modern FindPython, preventing issues with Windows paths.
- Included `dep_tinyexr.cmake` and `dep_tinyobj.cmake` to manage the tinyexr and tinyobjloader libraries as dependencies, enabling support for OpenEXR image handling and OBJ model loading.
- Updated `CMakeLists.txt` to include the new dependencies and added corresponding options in `DEV.md` for build configuration.
- Removed legacy files related to tinyexr and tinyobj to streamline the project and eliminate redundancy.
- Enhanced documentation to reflect the addition of tinyexr and tinyobj, including usage instructions in `DEV.md`.
- Implemented post-build commands to stage runtime DLLs next to test executables on Windows, addressing DLL_NOT_FOUND errors during test execution.
- Enhanced the `ovr_add_cpp_test` function to ensure all necessary shared libraries are available for tests, improving compatibility and reliability.
- Mirrored the DLL-staging logic for the `gpu_probe` target to maintain consistency across test configurations.
…ation

- Added `extern/tfnmodule` as a submodule for the Transfer Function Module, enhancing modularity and maintainability.
- Updated `CMakeLists.txt` to include the new submodule and adjusted include paths for the `tfnmodule` target.
- Included `dep_stb` and `dep_opengl` in the build configuration, ensuring necessary dependencies are managed correctly.
- Enhanced documentation in `DEV.md` to reflect the addition of new build options and dependencies, improving clarity for developers.
- Introduced `glfwapp` as a header-only library to provide essential camera frame functionality without OpenGL dependencies, enhancing modularity.
- Updated `CMakeLists.txt` to include the new `glfwapp` subdirectory and link it to the `renderbatch` application.
- Refactored test directory structure by renaming `test` to `tests` across various files, improving consistency and clarity in the project layout.
- Adjusted documentation in `DEV.md`, `README.md`, and `pyproject.toml` to reflect the new test directory structure and updated paths.
- Enhanced CMake configurations to ensure proper handling of test dependencies and paths.
- Updated the Git submodule reference for `github-actions` to the latest commit.
- Revised the license section to reflect the updated copyright holders for 2019-2026, ensuring proper attribution to Qi Wu and contributors.
- Enhanced CMake configuration for the OptiX7 device to include delay-loading for `nvcuda.dll` on Windows, improving compatibility and preventing runtime errors in GPU-less environments.
- Updated the description to emphasize license and citation hygiene for OVR and its submodules.
- Clarified instructions for verifying authorship when copying `LICENSE` and `CITATION.cff` files, ensuring project-specific metadata is accurately represented.
- Enhanced guidance on handling submodules, highlighting the independent nature of their repositories and the need for a two-step commit process when adding files.
…eference

- Changed the URL for the `extern/tfnmodule` submodule from SSH to HTTPS for improved accessibility.
- Added a reference to the latest commit of the Transfer Function Module as a submodule, enhancing project modularity.
- Added a new atomic flag to track invalid values observed during the producer/consumer test.
- Updated assertions to ensure that the last seen value is within the expected range, improving test reliability and clarity.
- Refactored checks to maintain thread safety and ensure accurate reporting of test results.
- Added conditional compilation to isolate stress tests for TransactionalValue on POSIX systems, addressing intermittent access violations observed in Windows CI.
- Ensured deterministic coverage for TransactionalValue while maintaining test stability across platforms.
- Added a conditional check to include the transactional value test only on non-Windows platforms, ensuring compatibility and stability across different operating systems.
- This change addresses platform-specific behavior and enhances the reliability of the test suite.
@wilsonCernWq wilsonCernWq merged commit 05048f1 into public Apr 26, 2026
6 checks passed
@wilsonCernWq wilsonCernWq deleted the testing branch April 26, 2026 06:48
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.

1 participant