Add Unit Testing#7
Merged
Merged
Conversation
- 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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.