|
7 | 7 | import os |
8 | 8 | import re |
9 | 9 | import tempfile |
| 10 | +import time |
10 | 11 | import traceback |
11 | 12 | import unittest |
12 | 13 | from io import StringIO |
@@ -1090,45 +1091,58 @@ def test_create_framed_telemetry_log_sinks(self): |
1090 | 1091 | def test_single_frame(self): |
1091 | 1092 | with NamedTemporaryFile() as temp_file: |
1092 | 1093 | message = "hello world\nsomething on a new line!\n" |
| 1094 | + before = int(time.time_ns() / 1000) |
1093 | 1095 | with bootstrap.FramedTelemetryLogSink( |
1094 | 1096 | os.open(temp_file.name, os.O_CREAT | os.O_RDWR) |
1095 | 1097 | ) as ls: |
1096 | 1098 | ls.log(message) |
| 1099 | + after = int(time.time_ns() / 1000) |
1097 | 1100 | with open(temp_file.name, "rb") as f: |
1098 | 1101 | content = f.read() |
1099 | 1102 |
|
1100 | 1103 | frame_type = int.from_bytes(content[:4], "big") |
1101 | | - self.assertEqual(frame_type, 0xA55A0001) |
| 1104 | + self.assertEqual(frame_type, 0xA55A0003) |
1102 | 1105 |
|
1103 | 1106 | length = int.from_bytes(content[4:8], "big") |
1104 | 1107 | self.assertEqual(length, len(message)) |
1105 | 1108 |
|
1106 | | - actual_message = content[8:].decode() |
| 1109 | + timestamp = int.from_bytes(content[8:16], "big") |
| 1110 | + self.assertTrue(before <= timestamp) |
| 1111 | + self.assertTrue(timestamp <= after) |
| 1112 | + |
| 1113 | + actual_message = content[16:].decode() |
1107 | 1114 | self.assertEqual(actual_message, message) |
1108 | 1115 |
|
1109 | 1116 | def test_multiple_frame(self): |
1110 | 1117 | with NamedTemporaryFile() as temp_file: |
1111 | 1118 | first_message = "hello world\nsomething on a new line!" |
1112 | 1119 | second_message = "hello again\nhere's another message\n" |
1113 | 1120 |
|
| 1121 | + before = int(time.time_ns() / 1000) |
1114 | 1122 | with bootstrap.FramedTelemetryLogSink( |
1115 | 1123 | os.open(temp_file.name, os.O_CREAT | os.O_RDWR) |
1116 | 1124 | ) as ls: |
1117 | 1125 | ls.log(first_message) |
1118 | 1126 | ls.log(second_message) |
| 1127 | + after = int(time.time_ns() / 1000) |
1119 | 1128 |
|
1120 | 1129 | with open(temp_file.name, "rb") as f: |
1121 | 1130 | content = f.read() |
1122 | 1131 | pos = 0 |
1123 | 1132 | for message in [first_message, second_message]: |
1124 | 1133 | frame_type = int.from_bytes(content[pos : pos + 4], "big") |
1125 | | - self.assertEqual(frame_type, 0xA55A0001) |
| 1134 | + self.assertEqual(frame_type, 0xA55A0003) |
1126 | 1135 | pos += 4 |
1127 | 1136 |
|
1128 | 1137 | length = int.from_bytes(content[pos : pos + 4], "big") |
1129 | 1138 | self.assertEqual(length, len(message)) |
1130 | 1139 | pos += 4 |
1131 | 1140 |
|
| 1141 | + timestamp = int.from_bytes(content[pos : pos + 8], "big") |
| 1142 | + self.assertTrue(before <= timestamp) |
| 1143 | + self.assertTrue(timestamp <= after) |
| 1144 | + pos += 8 |
| 1145 | + |
1132 | 1146 | actual_message = content[pos : pos + len(message)].decode() |
1133 | 1147 | self.assertEqual(actual_message, message) |
1134 | 1148 | pos += len(message) |
|
0 commit comments