|
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