Repository navigation
Link the Android native tests in CI and name them after their classes - #39
Merged
Merged
Conversation
The seven splatkit_*_test executables kept the names of the pre-restructure layout (gpu_buffer, world, visibility, radix_sort, ...), so none of them matched the Vulkan class vocabulary the sources and test files now use. Each executable is now splatkit_vulkan_<class>_test, with the visibility and frame tests spelled out as visibility_pass and frame_compute, and the two usage strings follow. Nothing outside the CMake file and those strings referenced them.
The splatkit_*_test executables were only built on a developer's machine, so a wrong source path or an undefined reference surfaced when the test was pushed to a phone. scripts/lint-cpp.sh already configures the Android tree with SPLATKIT_ANDROID_BUILD_TESTS=ON for clang-tidy, so it now also builds the new splatkit_android_tests aggregate target, which links all seven tests with the NDK toolchain, and prints the build log on failure. Keeping it there leaves one script owning the Android test configuration, and the Android mirror already ships lint.yml and lint-cpp.sh.
The splatkit_vulkan_*_test executables had no written recipe, so the configure flags, the target and the adb steps lived only in agent notes. The Android README gets a short "Native tests on a device" section, and CONTRIBUTING.md now says the lint script links the tests while running them on a phone stays a manual step.
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.
Summary
CI now links every Android native test, and the test executables carry the Vulkan class names.
scripts/lint-cpp.sh, not inandroid.yml.That script already owns the only Android test configuration, so a second configure in the workflow would duplicate the NDK flags.
The Android mirror ships
lint.ymlandlint-cpp.sh, so the check reaches it too.splatkit_android_testsaggregate target inpackages/splatkit-android/tests/CMakeLists.txtlists the seven executables, so the script names none of them.splatkit_vulkan_<class>_test; nothing outside the CMake file and two usage strings referenced the old names.adb push, run), and CONTRIBUTING.md points to it.Evidence
VulkanRadixSort.cppremoved from the radix sort test, the new step fails withld.lld: error: undefined symbol: splatkit::VulkanRadixSort::...; with a misspelled source path, CMake generation fails.Restored,
scripts/lint-cpp.shexits 0 and all seven aarch64 ELF executables exist.No physical device ran it; device runs are deferred to an end session.
scripts/lint-cpp.shclean (exit 0); the README recipe built from a fresh directory; SPIR-V hashes of the nine baseline shaders unchanged; the world frame completion host check compiles and exits 0;python3 -m unittest discover -s scripts/tests38 tests OK.Not run:
sdk_harness.py check, Gradle build (no Gradle or Kotlin change),npmchecks.Merge Danger
Door: Two-way.
Reverting restores the old names and drops the extra CI step.
Blast Radius: CI
The lint job gains a link step (the cpp job took 8m5s on this PR; a recent main run took 11m); the Android mirror receives the same script and test CMake.