Add sensord test to Jenkins (#24524)
	
		
	
				
					
				
			* Add sensord test to Jenkins * add second configuration * add other configs too * rename * move into existing HW testspull/24527/head
							parent
							
								
									6b0440f9c9
								
							
						
					
					
						commit
						822ea1fbd9
					
				
				 3 changed files with 79 additions and 0 deletions
			
			
		| @ -0,0 +1,78 @@ | ||||
| #!/usr/bin/env python3 | ||||
| 
 | ||||
| import time | ||||
| import unittest | ||||
| 
 | ||||
| import cereal.messaging as messaging | ||||
| from selfdrive.hardware import TICI | ||||
| from selfdrive.test.helpers import with_processes | ||||
| 
 | ||||
| TEST_TIMESPAN = 10 | ||||
| 
 | ||||
| SENSOR_CONFIGURATIONS = ( | ||||
|   { | ||||
|     ('bmx055', 'acceleration'), | ||||
|     ('bmx055', 'gyroUncalibrated'), | ||||
|     ('bmx055', 'magneticUncalibrated'), | ||||
|     ('bmx055', 'temperature'), | ||||
|     ('lsm6ds3', 'acceleration'), | ||||
|     ('lsm6ds3', 'gyroUncalibrated'), | ||||
|     ('lsm6ds3', 'temperature'), | ||||
|     ('rpr0521', 'light'), | ||||
|   }, | ||||
|   { | ||||
|     ('lsm6ds3', 'acceleration'), | ||||
|     ('lsm6ds3', 'gyroUncalibrated'), | ||||
|     ('lsm6ds3', 'temperature'), | ||||
|     ('mmc5603nj', 'magneticUncalibrated'), | ||||
|     ('rpr0521', 'light'), | ||||
|   }, | ||||
|   { | ||||
|     ('bmx055', 'acceleration'), | ||||
|     ('bmx055', 'gyroUncalibrated'), | ||||
|     ('bmx055', 'magneticUncalibrated'), | ||||
|     ('bmx055', 'temperature'), | ||||
|     ('lsm6ds3trc', 'acceleration'), | ||||
|     ('lsm6ds3trc', 'gyroUncalibrated'), | ||||
|     ('lsm6ds3trc', 'temperature'), | ||||
|     ('rpr0521', 'light'), | ||||
|   }, | ||||
|   { | ||||
|     ('lsm6ds3trc', 'acceleration'), | ||||
|     ('lsm6ds3trc', 'gyroUncalibrated'), | ||||
|     ('lsm6ds3trc', 'temperature'), | ||||
|     ('mmc5603nj', 'magneticUncalibrated'), | ||||
|     ('rpr0521', 'light'), | ||||
|   }, | ||||
| ) | ||||
| 
 | ||||
| 
 | ||||
| class TestSensord(unittest.TestCase): | ||||
|   @classmethod | ||||
|   def setUpClass(cls): | ||||
|     if not TICI: | ||||
|       raise unittest.SkipTest | ||||
| 
 | ||||
|   @with_processes(['sensord']) | ||||
|   def test_sensors_present(self): | ||||
|     sensor_events = messaging.sub_sock("sensorEvents", timeout=0.1) | ||||
| 
 | ||||
|     start_time_sec = time.time() | ||||
|     events = [] | ||||
|     while time.time() - start_time_sec < TEST_TIMESPAN: | ||||
|       events += messaging.drain_sock(sensor_events) | ||||
|       time.sleep(0.01) | ||||
| 
 | ||||
|     seen = set() | ||||
|     for event in events: | ||||
|       for measurement in event.sensorEvents: | ||||
|         # Filter out unset events | ||||
|         if measurement.version == 0: | ||||
|           continue | ||||
|         seen.add((str(measurement.source), measurement.which())) | ||||
| 
 | ||||
|     self.assertIn(seen, SENSOR_CONFIGURATIONS) | ||||
| 
 | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|   unittest.main() | ||||
					Loading…
					
					
				
		Reference in new issue