From f9d5c3ce8bbec84fe48d264688d8b7d15d1b4e51 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Mon, 4 May 2026 12:41:34 -0700 Subject: [PATCH 1/3] Update integration tests for 02,03 traceflags --- .../integration/test_base_sw_headers_attrs.py | 15 +++++++++++++++ tests/integration/test_scenario_1.py | 2 +- tests/integration/test_scenario_4.py | 6 ++++-- tests/integration/test_scenario_8.py | 17 ++++++++++------- tests/integration/test_signed_tt.py | 18 +++++++++--------- tests/integration/test_unsigned_tt.py | 10 +++++----- .../test_xtraceoptions_validation.py | 2 +- 7 files changed, 45 insertions(+), 25 deletions(-) diff --git a/tests/integration/test_base_sw_headers_attrs.py b/tests/integration/test_base_sw_headers_attrs.py index 6c735c114..76ae4cf05 100644 --- a/tests/integration/test_base_sw_headers_attrs.py +++ b/tests/integration/test_base_sw_headers_attrs.py @@ -50,6 +50,21 @@ class TestBaseSwHeadersAndAttributes(TestBase): "SampleSource" ] + @staticmethod + def assert_valid_trace_flags(trace_flags: str): + """Assert trace flags are valid two-digit lowercase hex (e.g. 00, 01, 02, 03).""" + assert re.match(r"^[0-9a-f]{2}$", trace_flags) + + def assert_trace_flags_sampled(self, trace_flags: str): + """Assert sampled bit is set (bit 0): sampled for 01 and 03; not for 00 or 02.""" + self.assert_valid_trace_flags(trace_flags) + assert int(trace_flags, 16) & 0x01 == 0x01 + + def assert_trace_flags_not_sampled(self, trace_flags: str): + """Assert sampled bit is clear (bit 0): not sampled for 00 and 02; not for 01 or 03.""" + self.assert_valid_trace_flags(trace_flags) + assert int(trace_flags, 16) & 0x01 == 0x00 + @staticmethod def _test_trace(): incoming_headers = {} diff --git a/tests/integration/test_scenario_1.py b/tests/integration/test_scenario_1.py index 4e258d1da..7844f2b7d 100644 --- a/tests/integration/test_scenario_1.py +++ b/tests/integration/test_scenario_1.py @@ -93,7 +93,7 @@ def test_scenario_1_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know there is only `sw` in tracestate diff --git a/tests/integration/test_scenario_4.py b/tests/integration/test_scenario_4.py index 650e80a6a..333ed3a00 100644 --- a/tests/integration/test_scenario_4.py +++ b/tests/integration/test_scenario_4.py @@ -103,7 +103,8 @@ def test_scenario_4_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == trace_flags + self.assert_valid_trace_flags(new_trace_flags) + assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 assert "tracestate" in resp_json # In this test we know there is only `sw` in tracestate @@ -253,7 +254,8 @@ def test_scenario_4_not_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == trace_flags + self.assert_valid_trace_flags(new_trace_flags) + assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 assert "tracestate" in resp_json # In this test we know there is only `sw` in tracestate diff --git a/tests/integration/test_scenario_8.py b/tests/integration/test_scenario_8.py index 97b18341f..f4bf9aea0 100644 --- a/tests/integration/test_scenario_8.py +++ b/tests/integration/test_scenario_8.py @@ -10,7 +10,6 @@ from unittest import mock from opentelemetry import trace as trace_api -from unittest import mock from .test_base_sw_headers_attrs import TestBaseSwHeadersAndAttributes @@ -111,7 +110,8 @@ def test_sampled_both_trace_context_and_xtraceoptions_valid(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == trace_flags + self.assert_valid_trace_flags(new_trace_flags) + assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -307,7 +307,8 @@ def test_not_sampled_both_trace_context_and_xtraceoptions_valid(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == trace_flags + self.assert_valid_trace_flags(new_trace_flags) + assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -439,7 +440,8 @@ def test_sampled_both_trace_context_and_xtraceoptions_valid_without_tt(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == trace_flags + self.assert_valid_trace_flags(new_trace_flags) + assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 assert "tracestate" in resp_json # In this test we know there is `sw` in tracestate @@ -635,7 +637,8 @@ def test_not_sampled_both_trace_context_and_xtraceoptions_valid_without_tt(self) new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == trace_flags + self.assert_valid_trace_flags(new_trace_flags) + assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 assert "tracestate" in resp_json # In this test we know there is `sw` in tracestate @@ -757,7 +760,7 @@ def test_sampled_invalid_trace_context_and_valid_unsigned_with_tt(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -932,7 +935,7 @@ def test_not_sampled_invalid_trace_context_and_valid_unsigned_with_tt(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` diff --git a/tests/integration/test_signed_tt.py b/tests/integration/test_signed_tt.py index 3aa975fef..546bcc6c7 100644 --- a/tests/integration/test_signed_tt.py +++ b/tests/integration/test_signed_tt.py @@ -104,7 +104,7 @@ def test_signed_with_tt_auth_ok(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -281,7 +281,7 @@ def test_signed_without_tt_auth_ok(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -454,7 +454,7 @@ def test_signed_with_tt_rate_exceeded(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -559,7 +559,7 @@ def test_signed_with_tt_tracing_disabled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -659,7 +659,7 @@ def test_signed_with_tt_auth_fail(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -759,7 +759,7 @@ def test_signed_without_tt_auth_fail(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -864,7 +864,7 @@ def test_signed_with_tt_auth_fail_bad_ts(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -968,7 +968,7 @@ def test_signed_without_tt_auth_fail_bad_ts(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -1069,7 +1069,7 @@ def test_signed_missing_xtraceoptions_header(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know there is `sw` in tracestate diff --git a/tests/integration/test_unsigned_tt.py b/tests/integration/test_unsigned_tt.py index 5e2d490e7..972b68e81 100644 --- a/tests/integration/test_unsigned_tt.py +++ b/tests/integration/test_unsigned_tt.py @@ -100,7 +100,7 @@ def test_unsigned_with_tt_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -269,7 +269,7 @@ def test_unsigned_with_tt_not_sampled_rate_exceeded(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -370,7 +370,7 @@ def test_unsigned_with_tt_not_sampled_tt_disabled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -471,7 +471,7 @@ def test_unsigned_without_tt_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` @@ -644,7 +644,7 @@ def test_unsigned_without_tt_not_sampled_rate_exceeded(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "00" + self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json # In this test we know tracestate will have `sw` diff --git a/tests/integration/test_xtraceoptions_validation.py b/tests/integration/test_xtraceoptions_validation.py index a28a43471..897750362 100644 --- a/tests/integration/test_xtraceoptions_validation.py +++ b/tests/integration/test_xtraceoptions_validation.py @@ -76,7 +76,7 @@ def get_new_span_id_and_trace_flags(self, resp_json): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) - assert new_trace_flags == "01" + self.assert_trace_flags_sampled(new_trace_flags) return new_span_id, new_trace_flags def check_some_header_ok(self, resp_json): From cb376f8859be90f7f75afc14fd39b08cdc22b700 Mon Sep 17 00:00:00 2001 From: tammy-baylis-swi Date: Mon, 4 May 2026 12:56:51 -0700 Subject: [PATCH 2/3] Keep both actually --- tests/integration/test_scenario_1.py | 1 + tests/integration/test_scenario_4.py | 2 ++ tests/integration/test_scenario_8.py | 6 ++++++ tests/integration/test_signed_tt.py | 9 +++++++++ tests/integration/test_unsigned_tt.py | 5 +++++ tests/integration/test_xtraceoptions_validation.py | 1 + 6 files changed, 24 insertions(+) diff --git a/tests/integration/test_scenario_1.py b/tests/integration/test_scenario_1.py index 7844f2b7d..38beec844 100644 --- a/tests/integration/test_scenario_1.py +++ b/tests/integration/test_scenario_1.py @@ -93,6 +93,7 @@ def test_scenario_1_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json diff --git a/tests/integration/test_scenario_4.py b/tests/integration/test_scenario_4.py index 333ed3a00..809773204 100644 --- a/tests/integration/test_scenario_4.py +++ b/tests/integration/test_scenario_4.py @@ -103,6 +103,7 @@ def test_scenario_4_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == trace_flags self.assert_valid_trace_flags(new_trace_flags) assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 @@ -254,6 +255,7 @@ def test_scenario_4_not_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == trace_flags self.assert_valid_trace_flags(new_trace_flags) assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 diff --git a/tests/integration/test_scenario_8.py b/tests/integration/test_scenario_8.py index f4bf9aea0..774e6e1ae 100644 --- a/tests/integration/test_scenario_8.py +++ b/tests/integration/test_scenario_8.py @@ -110,6 +110,7 @@ def test_sampled_both_trace_context_and_xtraceoptions_valid(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == trace_flags self.assert_valid_trace_flags(new_trace_flags) assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 @@ -307,6 +308,7 @@ def test_not_sampled_both_trace_context_and_xtraceoptions_valid(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == trace_flags self.assert_valid_trace_flags(new_trace_flags) assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 @@ -440,6 +442,7 @@ def test_sampled_both_trace_context_and_xtraceoptions_valid_without_tt(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == trace_flags self.assert_valid_trace_flags(new_trace_flags) assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 @@ -637,6 +640,7 @@ def test_not_sampled_both_trace_context_and_xtraceoptions_valid_without_tt(self) new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == trace_flags self.assert_valid_trace_flags(new_trace_flags) assert int(new_trace_flags, 16) & 0x01 == int(trace_flags, 16) & 0x01 @@ -760,6 +764,7 @@ def test_sampled_invalid_trace_context_and_valid_unsigned_with_tt(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -935,6 +940,7 @@ def test_not_sampled_invalid_trace_context_and_valid_unsigned_with_tt(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json diff --git a/tests/integration/test_signed_tt.py b/tests/integration/test_signed_tt.py index 546bcc6c7..bdb43fe74 100644 --- a/tests/integration/test_signed_tt.py +++ b/tests/integration/test_signed_tt.py @@ -104,6 +104,7 @@ def test_signed_with_tt_auth_ok(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -281,6 +282,7 @@ def test_signed_without_tt_auth_ok(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -454,6 +456,7 @@ def test_signed_with_tt_rate_exceeded(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -559,6 +562,7 @@ def test_signed_with_tt_tracing_disabled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -659,6 +663,7 @@ def test_signed_with_tt_auth_fail(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -759,6 +764,7 @@ def test_signed_without_tt_auth_fail(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -864,6 +870,7 @@ def test_signed_with_tt_auth_fail_bad_ts(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -968,6 +975,7 @@ def test_signed_without_tt_auth_fail_bad_ts(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -1069,6 +1077,7 @@ def test_signed_missing_xtraceoptions_header(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json diff --git a/tests/integration/test_unsigned_tt.py b/tests/integration/test_unsigned_tt.py index 972b68e81..89754fcca 100644 --- a/tests/integration/test_unsigned_tt.py +++ b/tests/integration/test_unsigned_tt.py @@ -100,6 +100,7 @@ def test_unsigned_with_tt_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -269,6 +270,7 @@ def test_unsigned_with_tt_not_sampled_rate_exceeded(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -370,6 +372,7 @@ def test_unsigned_with_tt_not_sampled_tt_disabled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -471,6 +474,7 @@ def test_unsigned_without_tt_sampled(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) assert "tracestate" in resp_json @@ -644,6 +648,7 @@ def test_unsigned_without_tt_not_sampled_rate_exceeded(self): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "00" self.assert_trace_flags_not_sampled(new_trace_flags) assert "tracestate" in resp_json diff --git a/tests/integration/test_xtraceoptions_validation.py b/tests/integration/test_xtraceoptions_validation.py index 897750362..ef08bc78e 100644 --- a/tests/integration/test_xtraceoptions_validation.py +++ b/tests/integration/test_xtraceoptions_validation.py @@ -76,6 +76,7 @@ def get_new_span_id_and_trace_flags(self, resp_json): new_span_id = traceparent_re_result.group(3) assert new_span_id is not None new_trace_flags = traceparent_re_result.group(4) + assert new_trace_flags == "01" self.assert_trace_flags_sampled(new_trace_flags) return new_span_id, new_trace_flags From 435ac2e8e485f3f6037bf71824eb7d0ee34a06f0 Mon Sep 17 00:00:00 2001 From: Tammy Baylis <96076570+tammy-baylis-swi@users.noreply.github.com> Date: Mon, 4 May 2026 13:01:05 -0700 Subject: [PATCH 3/3] Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --- tests/integration/test_base_sw_headers_attrs.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/integration/test_base_sw_headers_attrs.py b/tests/integration/test_base_sw_headers_attrs.py index 76ae4cf05..c5a32064c 100644 --- a/tests/integration/test_base_sw_headers_attrs.py +++ b/tests/integration/test_base_sw_headers_attrs.py @@ -52,18 +52,18 @@ class TestBaseSwHeadersAndAttributes(TestBase): @staticmethod def assert_valid_trace_flags(trace_flags: str): - """Assert trace flags are valid two-digit lowercase hex (e.g. 00, 01, 02, 03).""" - assert re.match(r"^[0-9a-f]{2}$", trace_flags) + """Assert trace flags are one of the explicitly supported lowercase values.""" + assert trace_flags in {"00", "01", "02", "03"} def assert_trace_flags_sampled(self, trace_flags: str): - """Assert sampled bit is set (bit 0): sampled for 01 and 03; not for 00 or 02.""" + """Assert trace flags are one of the explicitly sampled values.""" self.assert_valid_trace_flags(trace_flags) - assert int(trace_flags, 16) & 0x01 == 0x01 + assert trace_flags in {"01", "03"} def assert_trace_flags_not_sampled(self, trace_flags: str): - """Assert sampled bit is clear (bit 0): not sampled for 00 and 02; not for 01 or 03.""" + """Assert trace flags are one of the explicitly not-sampled values.""" self.assert_valid_trace_flags(trace_flags) - assert int(trace_flags, 16) & 0x01 == 0x00 + assert trace_flags in {"00", "02"} @staticmethod def _test_trace():