Create saltybot_tests package with comprehensive automated testing: Test Coverage: - Node startup verification (all critical nodes within 30s) - Topic publishing verification - TF tree completeness (all transforms present) - Sensor health checks (RPLIDAR, RealSense, IMU) - Perception pipeline (person detection availability) - Navigation stack (odometry, transforms) - System stability (30-second no-crash test) - Graceful shutdown verification Features: - launch_testing framework for automated startup tests - NodeChecker: wait for nodes in ROS graph - TFChecker: verify TF tree completeness - TopicMonitor: track message rates and counts - Follow mode tests (minimal hardware deps) - Subsystem-specific tests for sensor health - Comprehensive README with troubleshooting Usage: pytest src/saltybot_tests/test/test_launch.py -v -s or colcon test --packages-select saltybot_tests Performance Targets: - Node startup: <30s (follow mode) - RPLIDAR: 10 Hz scan rate - RealSense: 30 Hz RGB + depth - Person detection: 5 Hz - System stability: 30s no-crash validation Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
29 lines
814 B
Python
29 lines
814 B
Python
from setuptools import find_packages, setup
|
|
import os
|
|
from glob import glob
|
|
|
|
package_name = 'saltybot_tests'
|
|
|
|
setup(
|
|
name=package_name,
|
|
version='0.1.0',
|
|
packages=find_packages(exclude=['test']),
|
|
data_files=[
|
|
('share/ament_index/resource_index/packages',
|
|
['resource/' + package_name]),
|
|
('share/' + package_name, ['package.xml']),
|
|
(os.path.join('share', package_name, 'launch'),
|
|
glob(os.path.join('launch', '*launch.[pxy][yma]*'))),
|
|
],
|
|
install_requires=['setuptools'],
|
|
zip_safe=True,
|
|
maintainer='sl-jetson',
|
|
maintainer_email='seb@vayrette.com',
|
|
description='Integration test suite for SaltyBot full stack (Issue #504)',
|
|
license='MIT',
|
|
tests_require=['pytest'],
|
|
entry_points={
|
|
'console_scripts': [],
|
|
},
|
|
)
|