| 
									
										
										
										
											2023-05-21 03:12:24 -07:00
										 |  |  | import os | 
					
						
							|  |  |  | import sys | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-03 15:11:36 +02:00
										 |  |  | try: | 
					
						
							|  |  |  |     from _testinternalcapi import perf_map_state_teardown, write_perf_map_entry | 
					
						
							|  |  |  | except ImportError: | 
					
						
							|  |  |  |     raise unittest.SkipTest("requires _testinternalcapi") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-21 03:12:24 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | if sys.platform != 'linux': | 
					
						
							|  |  |  |     raise unittest.SkipTest('Linux only') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class TestPerfMapWriting(unittest.TestCase): | 
					
						
							|  |  |  |     def test_write_perf_map_entry(self): | 
					
						
							|  |  |  |         self.assertEqual(write_perf_map_entry(0x1234, 5678, "entry1"), 0) | 
					
						
							|  |  |  |         self.assertEqual(write_perf_map_entry(0x2345, 6789, "entry2"), 0) | 
					
						
							|  |  |  |         with open(f"/tmp/perf-{os.getpid()}.map") as f: | 
					
						
							|  |  |  |             perf_file_contents = f.read() | 
					
						
							|  |  |  |             self.assertIn("1234 162e entry1", perf_file_contents) | 
					
						
							|  |  |  |             self.assertIn("2345 1a85 entry2", perf_file_contents) | 
					
						
							|  |  |  |         perf_map_state_teardown() |