You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					26 lines
				
				697 B
			
		
		
			
		
	
	
					26 lines
				
				697 B
			| 
								 
											1 year ago
										 
									 | 
							
								#!/usr/bin/env python3
							 | 
						||
| 
								 | 
							
								import os
							 | 
						||
| 
								 | 
							
								import tempfile
							 | 
						||
| 
								 | 
							
								from typing import Dict
							 | 
						||
| 
								 | 
							
								import unittest
							 | 
						||
| 
								 | 
							
								from parameterized import parameterized
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import cereal.services as services
							 | 
						||
| 
								 | 
							
								from cereal.services import SERVICE_LIST
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class TestServices(unittest.TestCase):
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  @parameterized.expand(SERVICE_LIST.keys())
							 | 
						||
| 
								 | 
							
								  def test_services(self, s):
							 | 
						||
| 
								 | 
							
								    service = SERVICE_LIST[s]
							 | 
						||
| 
								 | 
							
								    self.assertTrue(service.frequency <= 104)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  def test_generated_header(self):
							 | 
						||
| 
								 | 
							
								    with tempfile.NamedTemporaryFile(suffix=".h") as f:
							 | 
						||
| 
								 | 
							
								      ret = os.system(f"python3 {services.__file__} > {f.name} && clang++ {f.name}")
							 | 
						||
| 
								 | 
							
								      self.assertEqual(ret, 0, "generated services header is not valid C")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if __name__ == "__main__":
							 | 
						||
| 
								 | 
							
								  unittest.main()
							 |