Please sign in to comment.
sanitycheck: support symbolic links in ZEPHYR_BASE
Fix issue where sanitycheck wrongly assumed tests inside ZEPHYR_BASE to be outside ZEPHYR_BASE and dropped the prefix in their name. This happened when: - ZEPHYR_BASE contains symbolic link(s), and - relative --testcase-root argument(s) are passed To generate unique names, TestCase.get_unique(testcase_root) first checks whether "testcase_root" starts with ZEPHYR_BASE. Either may or may not include symbolic links so both must be canonicalized before comparison. While fixing this method, replace explicit forward slash "/" and string replace with os.path.relpath() and make a couple other simplifications and minor pydoc fixes. Add new canonical_zephyr_base = os.path.realpath(ZEPHYR_BASE) constant and corresponding comments and guidelines. The most visible effect of this mismatch was sanitycheck dropping the --testcase-root prefix from the unique name of tests inside ZEPHYR_BASE. This means some test names could be not unique anymore and silently overwrite each other's results, example: bash# cd zephyr_dir_with_symlink; export ZEPHYR_BASE=$(pwd) ./scripts/sanitycheck -T samples/portability/cmsis_rtos_v1 \ -T samples/portability/cmsis_rtos_v2 The more systematic and practical consequence (and how I actually found this) was test outputs landing in unexpected locations. Signed-off-by: Marc Herbert <email@example.com>
- Loading branch information...