graph LR classDef pass fill:#bef5b1,stroke:#1f7a1f,color:#0a3d0a; classDef partial fill:#fde79c,stroke:#b07a00,color:#3a2c00; classDef fail fill:#fbb4b4,stroke:#a31a1a,color:#5a0000; classDef skip fill:#e0e0e0,stroke:#6a6a6a,color:#333; classDef brk fill:#ff5252,stroke:#990000,color:#fff,stroke-width:3px; P_Infra[Infra 5/5] class P_Infra pass; P_DSP[DSP 10/20] class P_DSP partial; P_Infra --> P_DSP P_L1_data[L1-data 4/7] class P_L1_data partial; P_DSP --> P_L1_data P_L1_ctrl[L1-ctrl 1/8] class P_L1_ctrl partial; P_L1_data --> P_L1_ctrl P_Timers[Timers 5/9] class P_Timers partial; P_L1_ctrl --> P_Timers P_NDB[NDB 19/19] class P_NDB pass; P_Timers --> P_NDB P_ARM_feedback[ARM-feedback 0/2] class P_ARM_feedback fail; P_NDB --> P_ARM_feedback P_ARM_feedback -.->|BREAK| BREAK_ARM_feedback[BREAK HERE ARM-feedback 0% pass] class BREAK_ARM_feedback brk; P_L3_MM[L3-MM 0/5] class P_L3_MM fail; P_ARM_feedback --> P_L3_MM P_Mgmt[Mgmt 3/3] class P_Mgmt pass; P_L3_MM --> P_Mgmt P_Summary[Summary 1/1] class P_Summary pass; P_Mgmt --> P_Summary
Calypso test report
Auto-generated by
tests/conftest.py::pytest_sessionfinish. Pasteable directly in a GitHub issue/PR (Mermaid blocks render natively).
Status global
[!WARNING] ⚠️ PARTIAL — 11 échec(s), 54/89 passent
| métrique | valeur | interprétation |
|---|---|---|
| pct brut | 61 % | passed / total (inclut xfail+skip — minore) |
| pct fonctionnel | 83 % | passed / (passed+failed) — vrai taux des tests qui prétendent valider |
| pct actionnable | 73 % | (passed+failed) / total — non-xfailed/non-skipped |
| résultat | nombre |
|---|---|
| ✅ passed | 54 |
| ❌ failed | 11 |
| ⏭️ skipped | 3 |
| ⚠️ xfailed | 21 |
| total | 89 |
Pipeline — où ça casse
Le pipeline ci-dessous trace le flux logique GSM Calypso, étape par étape. Chaque étape est colorée selon le ratio de tests qui passent. Si une étape est rouge (0% pass), c’est le premier blocker — tout ce qui vient après ne peut pas être validé tant qu’elle n’est pas verte.
➡️ Première rupture (linéaire) : ARM-feedback (0/2 tests passent).
Les étapes jusqu’à NDB sont OK ; le bug à investiguer côté pipeline linéaire est dans la transition NDB → ARM-feedback.
Blockers
11 test(s) en échec :
🔴 1. test_l1ctl_data_ind_received — Milestone / L1-ctrl — marker(s): milestone_l1ctl — durée 0.20s - test_calypso_milestones.py::test_l1ctl_data_ind_received 🔻 2. test_a_cd_writes_nonzero — Runtime / L1-ctrl — marker(s): runtime_l1ctl — durée 0.10s - test_run_observability.py::test_a_cd_writes_nonzero 🔻 3. test_l1ctl_data_ind_rate_vs_alc — Runtime / L1-ctrl — marker(s): runtime_l1ctl — durée 0.17s - test_run_observability.py::test_l1ctl_data_ind_rate_vs_alc 🔻 4. test_l1ctl_data_ind_received — Runtime / L1-ctrl — marker(s): runtime_l1ctl — durée 0.19s - test_run_observability.py::test_l1ctl_data_ind_received 🔻 5. test_frame_irq_per_tdma_ratio — Timing / Timers — marker(s): timer_invariant — durée 0.00s - test_timer_invariants.py::test_frame_irq_per_tdma_ratio 🔻 6. test_kick_realtime_cadence — Timing / Timers — marker(s): timer_invariant — durée 0.00s - test_timer_invariants.py::test_kick_realtime_cadence 🔻 7. test_tdma_period_virtual_close_to_target — Timing / Timers — marker(s): timer_invariant — durée 0.00s - test_timer_invariants.py::test_tdma_period_virtual_close_to_target 🔻 8. test_bridge_qfn_advances_steadily — Timing / Drift — marker(s): drift — durée 0.09s - test_layer_drift.py::test_bridge_qfn_advances_steadily 🔻 9. test_bridge_qfn_tracks_qemu_fn — Timing / Drift — marker(s): drift — durée 0.14s - test_layer_drift.py::test_bridge_qfn_tracks_qemu_fn 🔻 10. test_log_start_within_10s — Timing / Drift — marker(s): drift — durée 0.21s - test_layer_drift.py::test_log_start_within_10s 🔻 11. test_qemu_insn_rate_cv_below_0_4 — Timing / Drift — marker(s): drift — durée 0.07s - test_layer_drift.py::test_qemu_insn_rate_cv_below_0_4
Couches — ce qui marche, ce qui casse
✅ Infra — 5/5
Tous les tests passent dans cette couche.
🟡 DSP — 10/20
⏭️ Skipped : test_fb0_att_nonzero, test_synth_zero_path_active, test_c54x_interrupt_ex_called_nonzero, test_isr_entered_implies_rete, test_no_pending_irq_gated, test_rxdoneflag_no_longer_blocks, test_d_fb_det_pattern_unchanged, test_interrupt_ex_called_counter_exposed, test_isr_entered_matches_rete, test_no_pending_irq_gating ⚠️ xfail : test_fb0_att_nonzero, test_c54x_interrupt_ex_called_nonzero, test_isr_entered_implies_rete, test_no_pending_irq_gated, test_rxdoneflag_no_longer_blocks, test_d_fb_det_pattern_unchanged, test_interrupt_ex_called_counter_exposed, test_isr_entered_matches_rete, test_no_pending_irq_gating
🟡 L1-data — 4/7
⏭️ Skipped : test_ar3_init_source_identified, test_ar4_init_source_identified, test_bridge_fn_drift_under_threshold ⚠️ xfail : test_bridge_fn_drift_under_threshold
🟡 L1-ctrl — 1/8
❌ Échecs : test_l1ctl_data_ind_received, test_l1ctl_data_ind_received, test_a_cd_writes_nonzero, test_l1ctl_data_ind_rate_vs_alc ⏭️ Skipped : test_neigh_pm_req_response_unchanged, test_a_cd_write_pc_includes_ccch_demod, test_rach_attempted ⚠️ xfail : test_neigh_pm_req_response_unchanged, test_a_cd_write_pc_includes_ccch_demod, test_rach_attempted
🟡 Timers — 5/9
❌ Échecs : test_tdma_period_virtual_close_to_target, test_frame_irq_per_tdma_ratio, test_kick_realtime_cadence ⏭️ Skipped : test_dsp_budget_saturation_signal ⚠️ xfail : test_dsp_budget_saturation_signal
✅ NDB — 19/19
Tous les tests passent dans cette couche.
🛑 ARM-feedback — 0/2
⏭️ Skipped : test_efficacy_arm_reads_d_fb_det_1, test_efficacy_arm_reads_a_cd ⚠️ xfail : test_efficacy_arm_reads_d_fb_det_1, test_efficacy_arm_reads_a_cd
🛑 L3-MM — 0/5
⏭️ Skipped : test_rach_emitted, test_immediate_assignment_decoded, test_rr_sdcch_established, test_location_updating_request_sent, test_location_updating_accept_received ⚠️ xfail : test_rach_emitted, test_immediate_assignment_decoded, test_rr_sdcch_established, test_location_updating_request_sent, test_location_updating_accept_received
✅ Mgmt — 3/3
Tous les tests passent dans cette couche.
✅ Summary — 1/1
Tous les tests passent dans cette couche.
🟡 Drift — 6/10
❌ Échecs : test_qemu_insn_rate_cv_below_0_4, test_bridge_qfn_tracks_qemu_fn, test_bridge_qfn_advances_steadily, test_log_start_within_10s
Diagramme détaillé (catégorie → couche → test)
flowchart TB
classDef pass fill:#bef5b1,stroke:#1f7a1f,color:#0a3d0a;
classDef partial fill:#fde79c,stroke:#b07a00,color:#3a2c00;
classDef fail fill:#fbb4b4,stroke:#a31a1a,color:#5a0000;
classDef skip fill:#e0e0e0,stroke:#6a6a6a,color:#333;
classDef xfail fill:#fde79c,stroke:#b07a00,color:#3a2c00;
subgraph SG_C_Injection [Injection 19/21]
direction TB
C_Injection_L_ARM_feedback[ARM-feedback 0/2]
C_Injection_L_ARM_feedback --> T_001_test_efficacy_arm_reads_d_fb_det_1[test_efficacy_arm_reads_d_fb_det_1 inject_efficacy 3.07s]
C_Injection_L_ARM_feedback --> T_002_test_efficacy_arm_reads_a_cd[test_efficacy_arm_reads_a_cd inject_efficacy 2.80s]
C_Injection_L_NDB[NDB 19/19]
C_Injection_L_ARM_feedback ~~~ C_Injection_L_NDB
C_Injection_L_NDB --> T_003_pass_grp_NDB[PASS 19 5.4s]
end
subgraph SG_C_Milestone [Milestone 6/21]
direction TB
C_Milestone_L_DSP[DSP 4/10]
C_Milestone_L_DSP --> T_004_pass_grp_DSP[PASS 4 30.6s]
C_Milestone_L_DSP --> T_005_test_fb0_att_nonzero[test_fb0_att_nonzero milestone_fb_det 0.00s]
C_Milestone_L_DSP --> T_006_test_synth_zero_path_active[test_synth_zero_path_active milestone_fb_det 0.08s]
C_Milestone_L_DSP --> T_007_test_c54x_interrupt_ex_called_nonzero[test_c54x_interrupt_ex_called_nonzero milestone_irq 0.00s]
C_Milestone_L_DSP --> T_008_test_isr_entered_implies_rete[test_isr_entered_implies_rete milestone_irq 0.00s]
C_Milestone_L_DSP --> T_009_test_no_pending_irq_gated[test_no_pending_irq_gated milestone_irq 0.00s]
C_Milestone_L_DSP --> T_010_test_rxdoneflag_no_longer_blocks[test_rxdoneflag_no_longer_blocks milestone_dsp_decoder 0.00s]
C_Milestone_L_L1_ctrl[L1-ctrl 0/2]
C_Milestone_L_DSP ~~~ C_Milestone_L_L1_ctrl
C_Milestone_L_L1_ctrl --> T_011_test_l1ctl_data_ind_received[test_l1ctl_data_ind_received milestone_l1ctl 0.20s]
C_Milestone_L_L1_ctrl --> T_012_test_neigh_pm_req_response_unchanged[test_neigh_pm_req_response_unchanged milestone_l1ctl 0.00s]
C_Milestone_L_L1_data[L1-data 2/4]
C_Milestone_L_L1_ctrl ~~~ C_Milestone_L_L1_data
C_Milestone_L_L1_data --> T_013_pass_grp_L1_data[PASS 2 0.2s]
C_Milestone_L_L1_data --> T_014_test_ar3_init_source_identified[test_ar3_init_source_identified milestone_bsp_dma 0.01s]
C_Milestone_L_L1_data --> T_015_test_ar4_init_source_identified[test_ar4_init_source_identified milestone_bsp_dma 0.01s]
C_Milestone_L_L3_MM[L3-MM 0/5]
C_Milestone_L_L1_data ~~~ C_Milestone_L_L3_MM
C_Milestone_L_L3_MM --> T_016_test_rach_emitted[test_rach_emitted milestone_mm_lu 0.00s]
C_Milestone_L_L3_MM --> T_017_test_immediate_assignment_decoded[test_immediate_assignment_decoded milestone_mm_lu 0.00s]
C_Milestone_L_L3_MM --> T_018_test_rr_sdcch_established[test_rr_sdcch_established milestone_mm_lu 0.00s]
C_Milestone_L_L3_MM --> T_019_test_location_updating_request_sent[test_location_updating_request_sent milestone_mm_lu 0.00s]
C_Milestone_L_L3_MM --> T_020_test_location_updating_accept_received[test_location_updating_accept_received milestone_mm_lu 0.00s]
end
SG_C_Injection ~~~ SG_C_Milestone
subgraph SG_C_Runtime [Runtime 18/28]
direction TB
C_Runtime_L_DSP[DSP 6/10]
C_Runtime_L_DSP --> T_021_pass_grp_DSP[PASS 6 0.5s]
C_Runtime_L_DSP --> T_022_test_d_fb_det_pattern_unchanged[test_d_fb_det_pattern_unchanged runtime_dsp 0.08s]
C_Runtime_L_DSP --> T_023_test_interrupt_ex_called_counter_exposed[test_interrupt_ex_called_counter_expos runtime_irq 0.07s]
C_Runtime_L_DSP --> T_024_test_isr_entered_matches_rete[test_isr_entered_matches_rete runtime_irq 0.05s]
C_Runtime_L_DSP --> T_025_test_no_pending_irq_gating[test_no_pending_irq_gating runtime_irq 0.06s]
C_Runtime_L_Infra[Infra 5/5]
C_Runtime_L_DSP ~~~ C_Runtime_L_Infra
C_Runtime_L_Infra --> T_026_pass_grp_Infra[PASS 5 13.3s]
C_Runtime_L_L1_ctrl[L1-ctrl 1/6]
C_Runtime_L_Infra ~~~ C_Runtime_L_L1_ctrl
C_Runtime_L_L1_ctrl --> T_027_pass_grp_L1_ctrl[PASS 1 0.2s]
C_Runtime_L_L1_ctrl --> T_028_test_l1ctl_data_ind_received[test_l1ctl_data_ind_received runtime_l1ctl 0.19s]
C_Runtime_L_L1_ctrl --> T_029_test_a_cd_writes_nonzero[test_a_cd_writes_nonzero runtime_l1ctl 0.10s]
C_Runtime_L_L1_ctrl --> T_030_test_a_cd_write_pc_includes_ccch_demod[test_a_cd_write_pc_includes_ccch_demod runtime_l1ctl 0.20s]
C_Runtime_L_L1_ctrl --> T_031_test_l1ctl_data_ind_rate_vs_alc[test_l1ctl_data_ind_rate_vs_alc runtime_l1ctl 0.17s]
C_Runtime_L_L1_ctrl --> T_032_test_rach_attempted[test_rach_attempted runtime_l1ctl 0.00s]
C_Runtime_L_L1_data[L1-data 2/3]
C_Runtime_L_L1_ctrl ~~~ C_Runtime_L_L1_data
C_Runtime_L_L1_data --> T_033_pass_grp_L1_data[PASS 2 0.1s]
C_Runtime_L_L1_data --> T_034_test_bridge_fn_drift_under_threshold[test_bridge_fn_drift_under_threshold runtime_bridge 0.00s]
C_Runtime_L_Mgmt[Mgmt 3/3]
C_Runtime_L_L1_data ~~~ C_Runtime_L_Mgmt
C_Runtime_L_Mgmt --> T_035_pass_grp_Mgmt[PASS 3 4.8s]
C_Runtime_L_Summary[Summary 1/1]
C_Runtime_L_Mgmt ~~~ C_Runtime_L_Summary
C_Runtime_L_Summary --> T_036_pass_grp_Summary[PASS 1 30.6s]
end
SG_C_Milestone ~~~ SG_C_Runtime
subgraph SG_C_Timing [Timing 11/19]
direction TB
C_Timing_L_Drift[Drift 6/10]
C_Timing_L_Drift --> T_037_pass_grp_Drift[PASS 6 0.4s]
C_Timing_L_Drift --> T_038_test_qemu_insn_rate_cv_below_0_4[test_qemu_insn_rate_cv_below_0_4 drift 0.07s]
C_Timing_L_Drift --> T_039_test_bridge_qfn_tracks_qemu_fn[test_bridge_qfn_tracks_qemu_fn drift 0.14s]
C_Timing_L_Drift --> T_040_test_bridge_qfn_advances_steadily[test_bridge_qfn_advances_steadily drift 0.09s]
C_Timing_L_Drift --> T_041_test_log_start_within_10s[test_log_start_within_10s drift 0.21s]
C_Timing_L_Timers[Timers 5/9]
C_Timing_L_Drift ~~~ C_Timing_L_Timers
C_Timing_L_Timers --> T_042_pass_grp_Timers[PASS 5 0.1s]
C_Timing_L_Timers --> T_043_test_dsp_budget_saturation_signal[test_dsp_budget_saturation_signal timer_invariant 0.00s]
C_Timing_L_Timers --> T_044_test_tdma_period_virtual_close_to_target[test_tdma_period_virtual_close_to_targ timer_invariant 0.00s]
C_Timing_L_Timers --> T_045_test_frame_irq_per_tdma_ratio[test_frame_irq_per_tdma_ratio timer_invariant 0.00s]
C_Timing_L_Timers --> T_046_test_kick_realtime_cadence[test_kick_realtime_cadence timer_invariant 0.00s]
end
SG_C_Runtime ~~~ SG_C_Timing
class C_Injection_L_ARM_feedback fail;
class T_001_test_efficacy_arm_reads_d_fb_det_1 xfail;
class T_002_test_efficacy_arm_reads_a_cd xfail;
class C_Injection_L_NDB pass;
class T_003_pass_grp_NDB pass;
class C_Milestone_L_DSP partial;
class T_004_pass_grp_DSP pass;
class T_005_test_fb0_att_nonzero xfail;
class T_006_test_synth_zero_path_active skip;
class T_007_test_c54x_interrupt_ex_called_nonzero xfail;
class T_008_test_isr_entered_implies_rete xfail;
class T_009_test_no_pending_irq_gated xfail;
class T_010_test_rxdoneflag_no_longer_blocks xfail;
class C_Milestone_L_L1_ctrl fail;
class T_011_test_l1ctl_data_ind_received fail;
class T_012_test_neigh_pm_req_response_unchanged xfail;
class C_Milestone_L_L1_data partial;
class T_013_pass_grp_L1_data pass;
class T_014_test_ar3_init_source_identified skip;
class T_015_test_ar4_init_source_identified skip;
class C_Milestone_L_L3_MM fail;
class T_016_test_rach_emitted xfail;
class T_017_test_immediate_assignment_decoded xfail;
class T_018_test_rr_sdcch_established xfail;
class T_019_test_location_updating_request_sent xfail;
class T_020_test_location_updating_accept_received xfail;
class C_Runtime_L_DSP partial;
class T_021_pass_grp_DSP pass;
class T_022_test_d_fb_det_pattern_unchanged xfail;
class T_023_test_interrupt_ex_called_counter_exposed xfail;
class T_024_test_isr_entered_matches_rete xfail;
class T_025_test_no_pending_irq_gating xfail;
class C_Runtime_L_Infra pass;
class T_026_pass_grp_Infra pass;
class C_Runtime_L_L1_ctrl partial;
class T_027_pass_grp_L1_ctrl pass;
class T_028_test_l1ctl_data_ind_received fail;
class T_029_test_a_cd_writes_nonzero fail;
class T_030_test_a_cd_write_pc_includes_ccch_demod xfail;
class T_031_test_l1ctl_data_ind_rate_vs_alc fail;
class T_032_test_rach_attempted xfail;
class C_Runtime_L_L1_data partial;
class T_033_pass_grp_L1_data pass;
class T_034_test_bridge_fn_drift_under_threshold xfail;
class C_Runtime_L_Mgmt pass;
class T_035_pass_grp_Mgmt pass;
class C_Runtime_L_Summary pass;
class T_036_pass_grp_Summary pass;
class C_Timing_L_Drift partial;
class T_037_pass_grp_Drift pass;
class T_038_test_qemu_insn_rate_cv_below_0_4 fail;
class T_039_test_bridge_qfn_tracks_qemu_fn fail;
class T_040_test_bridge_qfn_advances_steadily fail;
class T_041_test_log_start_within_10s fail;
class C_Timing_L_Timers partial;
class T_042_pass_grp_Timers pass;
class T_043_test_dsp_budget_saturation_signal xfail;
class T_044_test_tdma_period_virtual_close_to_target fail;
class T_045_test_frame_irq_per_tdma_ratio fail;
class T_046_test_kick_realtime_cadence fail;
Skipped / xfailed
24 skipped
test_ar3_init_source_identified— milestone_bsp_dmatest_ar4_init_source_identified— milestone_bsp_dmatest_fb0_att_nonzero— milestone_fb_dettest_synth_zero_path_active— milestone_fb_dettest_c54x_interrupt_ex_called_nonzero— milestone_irqtest_isr_entered_implies_rete— milestone_irqtest_no_pending_irq_gated— milestone_irqtest_neigh_pm_req_response_unchanged— milestone_l1ctltest_rach_emitted— milestone_mm_lutest_immediate_assignment_decoded— milestone_mm_lutest_rr_sdcch_established— milestone_mm_lutest_location_updating_request_sent— milestone_mm_lutest_location_updating_accept_received— milestone_mm_lutest_rxdoneflag_no_longer_blocks— milestone_dsp_decodertest_efficacy_arm_reads_d_fb_det_1— inject_efficacy,inject_framestest_efficacy_arm_reads_a_cd— inject_efficacy,inject_framestest_d_fb_det_pattern_unchanged— runtime_dsptest_bridge_fn_drift_under_threshold— runtime_bridgetest_a_cd_write_pc_includes_ccch_demod— runtime_l1ctltest_rach_attempted— runtime_l1ctltest_interrupt_ex_called_counter_exposed— runtime_irqtest_isr_entered_matches_rete— runtime_irqtest_no_pending_irq_gating— runtime_irqtest_dsp_budget_saturation_signal— timer_invariant
21 xfailed
test_fb0_att_nonzero— milestone_fb_dettest_c54x_interrupt_ex_called_nonzero— milestone_irqtest_isr_entered_implies_rete— milestone_irqtest_no_pending_irq_gated— milestone_irqtest_neigh_pm_req_response_unchanged— milestone_l1ctltest_rach_emitted— milestone_mm_lutest_immediate_assignment_decoded— milestone_mm_lutest_rr_sdcch_established— milestone_mm_lutest_location_updating_request_sent— milestone_mm_lutest_location_updating_accept_received— milestone_mm_lutest_rxdoneflag_no_longer_blocks— milestone_dsp_decodertest_efficacy_arm_reads_d_fb_det_1— inject_efficacy,inject_framestest_efficacy_arm_reads_a_cd— inject_efficacy,inject_framestest_d_fb_det_pattern_unchanged— runtime_dsptest_bridge_fn_drift_under_threshold— runtime_bridgetest_a_cd_write_pc_includes_ccch_demod— runtime_l1ctltest_rach_attempted— runtime_l1ctltest_interrupt_ex_called_counter_exposed— runtime_irqtest_isr_entered_matches_rete— runtime_irqtest_no_pending_irq_gating— runtime_irqtest_dsp_budget_saturation_signal— timer_invariant
Catalogue des tests
Liste exhaustive des tests exécutés ce run, groupés par marker pytest. Source : nodeids pytest + outcome. Pour chaque test, le statut, la durée et le fichier source.
drift — 6/10
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ❌ failed | test_bridge_qfn_advances_steadily |
0.09s | test_layer_drift.py |
| ❌ failed | test_bridge_qfn_tracks_qemu_fn |
0.14s | test_layer_drift.py |
| ❌ failed | test_log_start_within_10s |
0.21s | test_layer_drift.py |
| ❌ failed | test_qemu_insn_rate_cv_below_0_4 |
0.07s | test_layer_drift.py |
| ✅ passed | test_log_still_growing[bridge-/tmp/bridge.log-10] |
0.07s | test_layer_drift.py |
| ✅ passed | test_log_still_growing[osmocon-/tmp/osmocon.log-1] |
0.06s | test_layer_drift.py |
| ✅ passed | test_log_still_growing[qemu-/root/qemu.log-1000] |
0.06s | test_layer_drift.py |
| ✅ passed | test_no_long_gap[bridge-/tmp/bridge.log-10.0] |
0.07s | test_layer_drift.py |
| ✅ passed | test_no_long_gap[qemu-/root/qemu.log-5.0] |
0.06s | test_layer_drift.py |
| ✅ passed | test_qemu_insn_rate_p1_above_1m |
0.07s | test_layer_drift.py |
inject_efficacy — 0/2
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ⚠️ xfail | test_efficacy_arm_reads_a_cd |
2.80s | test_inject_frames.py |
| ⚠️ xfail | test_efficacy_arm_reads_d_fb_det_1 |
3.07s | test_inject_frames.py |
inject_frames — 19/21
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_clear_ndb |
0.33s | test_inject_frames.py |
| ✅ passed | test_inject_a_cd_invalid_length |
0.00s | test_inject_frames.py |
| ✅ passed | test_inject_a_cd_pattern_23B |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_a_cd_pattern_30B |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_d_burst[0] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_burst[1] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[24-0] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[28-1] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[5-0] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[6-1] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_fbsb_fb_found |
0.71s | test_inject_frames.py |
| ✅ passed | test_inject_fbsb_sb_found |
0.58s | test_inject_frames.py |
| ✅ passed | test_inject_si[1] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[2] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[3] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[4] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[5] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[6] |
0.37s | test_inject_frames.py |
| ✅ passed | test_probe_ndb |
0.29s | test_inject_frames.py |
| ⚠️ xfail | test_efficacy_arm_reads_a_cd |
2.80s | test_inject_frames.py |
| ⚠️ xfail | test_efficacy_arm_reads_d_fb_det_1 |
3.07s | test_inject_frames.py |
milestone_bsp_dma — 2/4
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_bsp_dma_target_matches_correlator_read_zone |
0.09s | test_calypso_milestones.py |
| ✅ passed | test_no_d_fb_det_wr_site_anomaly |
0.07s | test_calypso_milestones.py |
| ⏭️ skipped | test_ar3_init_source_identified |
0.01s | test_calypso_milestones.py |
| ⏭️ skipped | test_ar4_init_source_identified |
0.01s | test_calypso_milestones.py |
milestone_dsp_decoder — 4/5
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_dsp_throughput_5x |
0.08s | test_calypso_milestones.py |
| ✅ passed | test_intm_dwell_no_regression |
30.47s | test_calypso_milestones.py |
| ✅ passed | test_popm_decoder_active |
0.00s | test_calypso_milestones.py |
| ✅ passed | test_tier_a_decoder_fixes_present |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_rxdoneflag_no_longer_blocks |
0.00s | test_calypso_milestones.py |
milestone_fb_det — 0/2
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ⚠️ xfail | test_fb0_att_nonzero |
0.00s | test_calypso_milestones.py |
| ⏭️ skipped | test_synth_zero_path_active |
0.08s | test_calypso_milestones.py |
milestone_irq — 0/3
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ⚠️ xfail | test_c54x_interrupt_ex_called_nonzero |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_isr_entered_implies_rete |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_no_pending_irq_gated |
0.00s | test_calypso_milestones.py |
milestone_l1ctl — 0/2
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ❌ failed | test_l1ctl_data_ind_received |
0.20s | test_calypso_milestones.py |
| ⚠️ xfail | test_neigh_pm_req_response_unchanged |
0.00s | test_calypso_milestones.py |
milestone_mm_lu — 0/5
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ⚠️ xfail | test_immediate_assignment_decoded |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_location_updating_accept_received |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_location_updating_request_sent |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_rach_emitted |
0.00s | test_calypso_milestones.py |
| ⚠️ xfail | test_rr_sdcch_established |
0.00s | test_calypso_milestones.py |
parametrize — 17/17
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_inject_d_burst[0] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_burst[1] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[24-0] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[28-1] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[5-0] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_d_task[6-1] |
0.08s | test_inject_frames.py |
| ✅ passed | test_inject_si[1] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[2] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[3] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[4] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[5] |
0.37s | test_inject_frames.py |
| ✅ passed | test_inject_si[6] |
0.37s | test_inject_frames.py |
| ✅ passed | test_log_still_growing[bridge-/tmp/bridge.log-10] |
0.07s | test_layer_drift.py |
| ✅ passed | test_log_still_growing[osmocon-/tmp/osmocon.log-1] |
0.06s | test_layer_drift.py |
| ✅ passed | test_log_still_growing[qemu-/root/qemu.log-1000] |
0.06s | test_layer_drift.py |
| ✅ passed | test_no_long_gap[bridge-/tmp/bridge.log-10.0] |
0.07s | test_layer_drift.py |
| ✅ passed | test_no_long_gap[qemu-/root/qemu.log-5.0] |
0.06s | test_layer_drift.py |
runtime_bridge — 2/3
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_bridge_dl_lookahead_respected |
0.05s | test_run_observability.py |
| ✅ passed | test_bridge_log_shows_traffic |
0.05s | test_run_observability.py |
| ⚠️ xfail | test_bridge_fn_drift_under_threshold |
0.00s | test_run_observability.py |
runtime_dsp — 6/7
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_bsp_daram_write_distribution |
0.08s | test_run_observability.py |
| ✅ passed | test_d_fb_det_data_no_longer_zero |
0.08s | test_run_observability.py |
| ✅ passed | test_dsp_throughput_above_threshold |
0.08s | test_run_observability.py |
| ✅ passed | test_intm_reaches_zero |
0.08s | test_run_observability.py |
| ✅ passed | test_no_enter_7740_dwell |
0.10s | test_run_observability.py |
| ✅ passed | test_no_wait_a21a_on_window |
0.07s | test_run_observability.py |
| ⚠️ xfail | test_d_fb_det_pattern_unchanged |
0.08s | test_run_observability.py |
runtime_health — 5/5
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_all_expected_processes_present |
0.05s | test_run_observability.py |
| ✅ passed | test_mobile_pcap_growing |
10.01s | test_run_observability.py |
| ✅ passed | test_no_zombie_or_defunct |
0.03s | test_run_observability.py |
| ✅ passed | test_qemu_log_is_fresh |
3.10s | test_run_observability.py |
| ✅ passed | test_volumes_mounted |
0.09s | test_run_observability.py |
runtime_irq — 0/3
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ⚠️ xfail | test_interrupt_ex_called_counter_exposed |
0.07s | test_run_observability.py |
| ⚠️ xfail | test_isr_entered_matches_rete |
0.05s | test_run_observability.py |
| ⚠️ xfail | test_no_pending_irq_gating |
0.06s | test_run_observability.py |
runtime_l1ctl — 1/6
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ❌ failed | test_a_cd_writes_nonzero |
0.10s | test_run_observability.py |
| ❌ failed | test_l1ctl_data_ind_rate_vs_alc |
0.17s | test_run_observability.py |
| ❌ failed | test_l1ctl_data_ind_received |
0.19s | test_run_observability.py |
| ✅ passed | test_neigh_pm_req_loop_alive |
0.23s | test_run_observability.py |
| ⚠️ xfail | test_a_cd_write_pc_includes_ccch_demod |
0.20s | test_run_observability.py |
| ⚠️ xfail | test_rach_attempted |
0.00s | test_run_observability.py |
runtime_summary — 1/1
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_run_summary_snapshot |
30.58s | test_run_observability.py |
runtime_vty — 3/3
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ✅ passed | test_mobile_imsi_loaded |
1.60s | test_run_observability.py |
| ✅ passed | test_mobile_mm_state_is_null_or_idle |
1.61s | test_run_observability.py |
| ✅ passed | test_mobile_vty_reachable |
1.59s | test_run_observability.py |
timer_invariant — 5/9
| Status | Test | Durée | Fichier |
|---|---|---|---|
| ❌ failed | test_frame_irq_per_tdma_ratio |
0.00s | test_timer_invariants.py |
| ❌ failed | test_kick_realtime_cadence |
0.00s | test_timer_invariants.py |
| ❌ failed | test_tdma_period_virtual_close_to_target |
0.00s | test_timer_invariants.py |
| ✅ passed | test_dsp_n_exec_within_budget |
0.00s | test_timer_invariants.py |
| ✅ passed | test_log_timeline_csv_no_dead_bucket |
0.05s | test_timer_invariants.py |
| ✅ passed | test_log_timeline_csv_produced |
0.04s | test_timer_invariants.py |
| ✅ passed | test_log_timeline_csv_steady_qemu_rate |
0.03s | test_timer_invariants.py |
| ✅ passed | test_tdma_log_present |
0.00s | test_timer_invariants.py |
| ⚠️ xfail | test_dsp_budget_saturation_signal |
0.00s | test_timer_invariants.py |
Cadence des logs et timers dans le temps
Compte des événements par bucket 10s wall, généré par log_timeline.py sur les logs préfixés <epoch_sec> +<rel_sec>s par run.sh. Source : log_timeline.csv dans ce dossier. Le plot est produit côté RStudio/Quarto via le chunk R ci-dessous (no-op en markdown GitHub — ouvrir le .qmd dans RStudio ou lancer quarto render pour le rendu).
Table brute par bucket 10s — cliquer pour déplier
Wall window : 1629.4s buckets=163 bucket=10.0s
CSV written: /tmp/log_timeline.csv
t_rel | qemu | bridge | osmocon | mobile | tdma | frame_ir | kick | fb_det_h | stack_in
-------------------------------------------------------------------------------------------------------------
0.0 | 16757 | 153 | 1082 | 3 | 1 | 0 | 35 | 2 | 0
10.0 | 5264 | 151 | 865 | 2 | 0 | 0 | 4 | 4 | 0
20.0 | 4663 | 151 | 809 | 2 | 1 | 0 | 4 | 4 | 0
30.0 | 4109 | 144 | 695 | 2 | 1 | 1 | 6 | 4 | 0
40.0 | 421 | 144 | 122 | 1 | 0 | 0 | 10 | 2 | 0
50.0 | 5048 | 152 | 891 | 2 | 1 | 0 | 5 | 4 | 0
60.0 | 5305 | 157 | 981 | 2 | 1 | 0 | 5 | 4 | 0
70.0 | 5493 | 147 | 959 | 2 | 1 | 0 | 5 | 4 | 0
80.0 | 5578 | 153 | 1029 | 3 | 1 | 0 | 5 | 6 | 0
90.0 | 5649 | 148 | 1017 | 2 | 1 | 0 | 5 | 4 | 0
100.0 | 5638 | 146 | 963 | 2 | 1 | 0 | 5 | 4 | 0
110.0 | 5831 | 160 | 1053 | 3 | 1 | 1 | 6 | 6 | 0
120.0 | 10132 | 147 | 1003 | 2 | 1 | 0 | 5 | 4 | 0
130.0 | 5825 | 159 | 1075 | 2 | 1 | 0 | 5 | 4 | 0
140.0 | 5627 | 149 | 980 | 2 | 1 | 0 | 5 | 4 | 0
150.0 | 5676 | 158 | 1097 | 3 | 1 | 0 | 5 | 6 | 0
160.0 | 5458 | 150 | 982 | 2 | 1 | 0 | 5 | 4 | 0
170.0 | 5248 | 152 | 911 | 2 | 1 | 0 | 5 | 4 | 0
180.0 | 4084 | 158 | 714 | 2 | 1 | 0 | 6 | 4 | 0
190.0 | 525 | 161 | 149 | 1 | 0 | 1 | 9 | 2 | 0
200.0 | 5110 | 143 | 924 | 2 | 1 | 0 | 5 | 4 | 0
210.0 | 5582 | 155 | 1034 | 2 | 1 | 0 | 5 | 4 | 0
220.0 | 5436 | 151 | 1063 | 3 | 1 | 0 | 5 | 6 | 0
230.0 | 5975 | 150 | 1091 | 2 | 1 | 0 | 6 | 4 | 0
240.0 | 8488 | 150 | 1090 | 2 | 1 | 0 | 5 | 4 | 0
250.0 | 5800 | 154 | 1119 | 3 | 1 | 0 | 5 | 6 | 0
260.0 | 5553 | 143 | 1061 | 2 | 1 | 0 | 5 | 4 | 0
270.0 | 5177 | 146 | 888 | 2 | 1 | 1 | 5 | 4 | 0
280.0 | 5623 | 151 | 865 | 2 | 1 | 0 | 5 | 4 | 0
290.0 | 5681 | 151 | 964 | 3 | 1 | 0 | 5 | 6 | 0
300.0 | 5638 | 150 | 882 | 2 | 1 | 0 | 5 | 4 | 0
310.0 | 5857 | 151 | 977 | 2 | 1 | 0 | 5 | 4 | 0
320.0 | 5452 | 154 | 948 | 2 | 1 | 0 | 5 | 4 | 0
330.0 | 4900 | 153 | 891 | 2 | 1 | 0 | 5 | 4 | 0
340.0 | 5414 | 149 | 937 | 3 | 1 | 1 | 5 | 6 | 0
350.0 | 7427 | 152 | 1010 | 2 | 1 | 0 | 5 | 4 | 0
360.0 | 7121 | 151 | 1013 | 2 | 1 | 0 | 5 | 4 | 0
370.0 | 5583 | 150 | 1017 | 2 | 1 | 0 | 5 | 4 | 0
380.0 | 5612 | 155 | 1022 | 3 | 1 | 0 | 5 | 6 | 0
390.0 | 5341 | 150 | 960 | 2 | 1 | 0 | 5 | 4 | 0
400.0 | 5302 | 153 | 956 | 2 | 1 | 1 | 5 | 4 | 0
410.0 | 5006 | 152 | 881 | 2 | 1 | 0 | 4 | 6 | 0
420.0 | 5502 | 146 | 983 | 3 | 1 | 0 | 5 | 4 | 0
430.0 | 5297 | 157 | 995 | 2 | 1 | 0 | 5 | 4 | 0
440.0 | 5095 | 144 | 870 | 2 | 1 | 1 | 5 | 4 | 0
450.0 | 4828 | 147 | 845 | 3 | 1 | 0 | 4 | 6 | 0
460.0 | 4515 | 145 | 828 | 2 | 0 | 0 | 4 | 4 | 0
470.0 | 9174 | 150 | 948 | 2 | 1 | 1 | 5 | 4 | 0
480.0 | 5390 | 148 | 978 | 2 | 1 | 0 | 4 | 4 | 0
490.0 | 5537 | 143 | 915 | 3 | 1 | 0 | 5 | 6 | 0
500.0 | 4694 | 150 | 893 | 2 | 1 | 1 | 5 | 4 | 0
510.0 | 4201 | 150 | 789 | 2 | 1 | 0 | 3 | 4 | 0
520.0 | 4094 | 147 | 798 | 3 | 1 | 1 | 4 | 6 | 0
530.0 | 5062 | 156 | 864 | 2 | 1 | 0 | 5 | 4 | 0
540.0 | 4786 | 146 | 852 | 2 | 0 | 1 | 4 | 4 | 0
550.0 | 4647 | 155 | 785 | 2 | 1 | 0 | 4 | 4 | 0
560.0 | 4093 | 147 | 799 | 3 | 1 | 1 | 4 | 6 | 0
570.0 | 4541 | 148 | 887 | 2 | 1 | 0 | 4 | 4 | 0
580.0 | 4691 | 155 | 794 | 2 | 1 | 1 | 4 | 4 | 0
590.0 | 5491 | 151 | 905 | 2 | 1 | 0 | 5 | 4 | 0
600.0 | 9272 | 156 | 1051 | 3 | 1 | 0 | 5 | 6 | 0
610.0 | 5654 | 151 | 1014 | 2 | 1 | 0 | 5 | 4 | 0
620.0 | 4516 | 153 | 808 | 2 | 0 | 1 | 4 | 4 | 0
630.0 | 4390 | 149 | 821 | 2 | 1 | 0 | 4 | 6 | 0
640.0 | 4719 | 155 | 843 | 3 | 1 | 1 | 4 | 4 | 0
650.0 | 5131 | 151 | 873 | 2 | 1 | 0 | 5 | 4 | 0
660.0 | 5595 | 152 | 1012 | 2 | 1 | 0 | 5 | 4 | 0
670.0 | 5623 | 148 | 1043 | 2 | 1 | 0 | 5 | 6 | 0
680.0 | 5425 | 149 | 920 | 3 | 1 | 0 | 5 | 4 | 0
690.0 | 5397 | 149 | 961 | 2 | 1 | 1 | 5 | 4 | 0
700.0 | 5572 | 151 | 987 | 2 | 1 | 0 | 5 | 4 | 0
710.0 | 5789 | 150 | 1085 | 2 | 1 | 0 | 5 | 4 | 0
720.0 | 8093 | 144 | 1084 | 3 | 1 | 0 | 6 | 6 | 0
730.0 | 5892 | 146 | 1113 | 2 | 1 | 0 | 5 | 4 | 0
740.0 | 5818 | 148 | 1060 | 2 | 1 | 0 | 5 | 4 | 0
750.0 | 5685 | 156 | 1086 | 3 | 1 | 0 | 5 | 6 | 0
760.0 | 5684 | 150 | 1036 | 2 | 1 | 0 | 5 | 4 | 0
770.0 | 5918 | 148 | 1071 | 2 | 1 | 0 | 6 | 4 | 0
780.0 | 5614 | 149 | 1058 | 2 | 1 | 0 | 5 | 4 | 0
790.0 | 5796 | 149 | 1008 | 3 | 1 | 0 | 5 | 6 | 0
800.0 | 5586 | 150 | 993 | 2 | 1 | 0 | 5 | 4 | 0
810.0 | 5439 | 155 | 991 | 2 | 1 | 1 | 5 | 4 | 0
820.0 | 5517 | 150 | 953 | 2 | 1 | 0 | 5 | 4 | 0
830.0 | 10625 | 154 | 1076 | 3 | 1 | 0 | 5 | 6 | 0
840.0 | 5729 | 152 | 1051 | 2 | 1 | 0 | 5 | 4 | 0
850.0 | 5451 | 155 | 1047 | 2 | 1 | 0 | 5 | 4 | 0
860.0 | 5338 | 149 | 971 | 2 | 1 | 0 | 5 | 4 | 0
870.0 | 5732 | 158 | 1041 | 3 | 1 | 0 | 5 | 6 | 0
880.0 | 5417 | 149 | 1051 | 2 | 1 | 1 | 5 | 4 | 0
890.0 | 5510 | 153 | 985 | 2 | 1 | 0 | 5 | 4 | 0
900.0 | 5502 | 155 | 1003 | 2 | 1 | 0 | 5 | 4 | 0
910.0 | 1375 | 141 | 245 | 1 | 1 | 0 | 9 | 2 | 0
920.0 | 2527 | 148 | 420 | 2 | 0 | 0 | 7 | 4 | 0
930.0 | 5802 | 144 | 1132 | 2 | 1 | 0 | 5 | 4 | 0
940.0 | 5302 | 154 | 966 | 2 | 1 | 0 | 5 | 4 | 0
950.0 | 10038 | 150 | 1072 | 3 | 1 | 0 | 5 | 6 | 0
960.0 | 5882 | 154 | 1193 | 2 | 1 | 0 | 6 | 4 | 0
970.0 | 5515 | 152 | 972 | 2 | 1 | 1 | 5 | 4 | 0
980.0 | 5736 | 152 | 1010 | 2 | 1 | 0 | 5 | 5 | 0
990.0 | 5270 | 149 | 1009 | 3 | 1 | 0 | 5 | 5 | 0
1000.0 | 5709 | 151 | 1043 | 2 | 1 | 0 | 5 | 4 | 0
1010.0 | 5729 | 152 | 1049 | 2 | 1 | 0 | 5 | 4 | 0
1020.0 | 5744 | 150 | 1032 | 3 | 1 | 0 | 5 | 6 | 0
1030.0 | 5355 | 154 | 993 | 2 | 1 | 0 | 5 | 4 | 0
1040.0 | 5581 | 149 | 988 | 2 | 1 | 0 | 5 | 4 | 0
1050.0 | 5821 | 150 | 999 | 2 | 1 | 1 | 5 | 4 | 0
1060.0 | 8347 | 151 | 1117 | 3 | 1 | 0 | 6 | 6 | 0
1070.0 | 5878 | 150 | 1115 | 2 | 1 | 0 | 5 | 4 | 0
1080.0 | 5667 | 150 | 1046 | 2 | 2 | 0 | 5 | 4 | 0
1090.0 | 5697 | 151 | 1057 | 3 | 1 | 0 | 5 | 6 | 0
1100.0 | 5808 | 149 | 1115 | 2 | 1 | 0 | 5 | 4 | 0
1110.0 | 5760 | 147 | 1061 | 2 | 1 | 0 | 6 | 4 | 0
1120.0 | 5687 | 150 | 1070 | 2 | 1 | 0 | 5 | 4 | 0
1130.0 | 5719 | 153 | 1132 | 3 | 1 | 0 | 5 | 6 | 0
1140.0 | 5560 | 149 | 1018 | 2 | 1 | 0 | 5 | 4 | 0
1150.0 | 2829 | 144 | 491 | 1 | 0 | 0 | 7 | 2 | 0
1160.0 | 789 | 148 | 138 | 1 | 0 | 1 | 9 | 2 | 0
1170.0 | 5256 | 150 | 895 | 2 | 1 | 0 | 4 | 4 | 0
1180.0 | 5150 | 154 | 925 | 3 | 1 | 0 | 5 | 6 | 0
1190.0 | 8256 | 150 | 1030 | 2 | 1 | 0 | 5 | 4 | 0
1200.0 | 5595 | 152 | 1001 | 2 | 1 | 1 | 5 | 4 | 0
1210.0 | 5281 | 148 | 945 | 2 | 1 | 0 | 5 | 6 | 0
1220.0 | 4710 | 150 | 836 | 3 | 1 | 0 | 4 | 4 | 0
1230.0 | 4703 | 150 | 824 | 2 | 1 | 1 | 4 | 4 | 0
1240.0 | 5679 | 148 | 978 | 2 | 1 | 0 | 5 | 4 | 0
1250.0 | 4284 | 150 | 874 | 3 | 1 | 0 | 4 | 6 | 0
1260.0 | 3988 | 149 | 780 | 2 | 0 | 1 | 4 | 4 | 0
1270.0 | 4027 | 151 | 786 | 2 | 1 | 1 | 3 | 4 | 0
1280.0 | 4087 | 150 | 841 | 2 | 1 | 0 | 4 | 6 | 0
1290.0 | 3926 | 152 | 768 | 3 | 0 | 1 | 3 | 4 | 0
1300.0 | 3943 | 150 | 771 | 2 | 1 | 1 | 4 | 4 | 0
1310.0 | 3931 | 149 | 753 | 2 | 1 | 0 | 3 | 4 | 0
1320.0 | 9898 | 148 | 842 | 3 | 1 | 1 | 4 | 6 | 0
1330.0 | 4672 | 156 | 786 | 2 | 0 | 0 | 4 | 4 | 0
1340.0 | 4261 | 148 | 767 | 2 | 1 | 1 | 4 | 4 | 0
1350.0 | 3953 | 150 | 850 | 3 | 1 | 1 | 4 | 6 | 0
1360.0 | 4249 | 147 | 782 | 2 | 1 | 0 | 4 | 4 | 0
1370.0 | 5501 | 154 | 955 | 2 | 1 | 0 | 5 | 4 | 0
1380.0 | 5632 | 148 | 1035 | 2 | 1 | 0 | 5 | 4 | 0
1390.0 | 5819 | 150 | 974 | 2 | 1 | 1 | 5 | 6 | 0
1400.0 | 5763 | 154 | 1032 | 3 | 1 | 0 | 5 | 4 | 0
1410.0 | 5654 | 152 | 1014 | 2 | 1 | 0 | 5 | 4 | 0
1420.0 | 5746 | 148 | 1048 | 2 | 1 | 0 | 6 | 4 | 0
1430.0 | 5688 | 151 | 1008 | 2 | 1 | 0 | 5 | 6 | 0
1440.0 | 9735 | 150 | 1007 | 3 | 1 | 0 | 4 | 4 | 0
1450.0 | 5891 | 148 | 1193 | 2 | 1 | 0 | 6 | 4 | 0
1460.0 | 5692 | 153 | 1010 | 2 | 1 | 0 | 5 | 4 | 0
1470.0 | 5780 | 151 | 1067 | 3 | 1 | 0 | 5 | 6 | 0
1480.0 | 5759 | 156 | 1016 | 2 | 1 | 0 | 5 | 4 | 0
1490.0 | 5735 | 154 | 1085 | 2 | 1 | 0 | 6 | 4 | 0
1500.0 | 5680 | 156 | 1004 | 2 | 1 | 1 | 5 | 4 | 0
1510.0 | 5824 | 150 | 1009 | 3 | 1 | 0 | 5 | 6 | 0
1520.0 | 5552 | 154 | 1074 | 2 | 1 | 0 | 5 | 4 | 0
1530.0 | 5469 | 152 | 980 | 2 | 1 | 0 | 5 | 4 | 0
1540.0 | 5158 | 146 | 890 | 2 | 1 | 0 | 5 | 4 | 0
1550.0 | 7996 | 155 | 972 | 3 | 1 | 0 | 4 | 6 | 0
1560.0 | 1360 | 160 | 310 | 0 | 0 | 1 | 9 | 0 | 0
1570.0 | 2504 | 143 | 473 | 2 | 1 | 0 | 7 | 4 | 0
1580.0 | 5850 | 150 | 1088 | 2 | 1 | 0 | 6 | 4 | 0
1590.0 | 5538 | 145 | 1046 | 2 | 1 | 0 | 5 | 4 | 0
1600.0 | 5720 | 149 | 1023 | 3 | 1 | 0 | 5 | 6 | 0
1610.0 | 5389 | 149 | 905 | 2 | 1 | 0 | 5 | 4 | 0
1620.0 | 4766 | 138 | 874 | 2 | 1 | 0 | 4 | 4 | 0
(plotting handled by RStudio/Quarto from /tmp/log_timeline.csv)
Résultats bruts pytest
Cliquer pour déplier — sortie verbatim type pytest -v
PASSED test_calypso_milestones.py::test_popm_decoder_active (0.001s)
PASSED test_calypso_milestones.py::test_tier_a_decoder_fixes_present (0.002s)
PASSED test_calypso_milestones.py::test_intm_dwell_no_regression (30.468s)
PASSED test_calypso_milestones.py::test_dsp_throughput_5x (0.083s)
SKIPPED test_calypso_milestones.py::test_ar3_init_source_identified (0.006s)
SKIPPED test_calypso_milestones.py::test_ar4_init_source_identified (0.005s)
PASSED test_calypso_milestones.py::test_bsp_dma_target_matches_correlator_read_zone (0.092s)
PASSED test_calypso_milestones.py::test_no_d_fb_det_wr_site_anomaly (0.068s)
XFAIL test_calypso_milestones.py::test_fb0_att_nonzero (0.000s)
SKIPPED test_calypso_milestones.py::test_synth_zero_path_active (0.084s)
XFAIL test_calypso_milestones.py::test_c54x_interrupt_ex_called_nonzero (0.000s)
XFAIL test_calypso_milestones.py::test_isr_entered_implies_rete (0.000s)
XFAIL test_calypso_milestones.py::test_no_pending_irq_gated (0.000s)
FAILED test_calypso_milestones.py::test_l1ctl_data_ind_received (0.204s)
XFAIL test_calypso_milestones.py::test_neigh_pm_req_response_unchanged (0.000s)
XFAIL test_calypso_milestones.py::test_rach_emitted (0.000s)
XFAIL test_calypso_milestones.py::test_immediate_assignment_decoded (0.000s)
XFAIL test_calypso_milestones.py::test_rr_sdcch_established (0.000s)
XFAIL test_calypso_milestones.py::test_location_updating_request_sent (0.000s)
XFAIL test_calypso_milestones.py::test_location_updating_accept_received (0.000s)
XFAIL test_calypso_milestones.py::test_rxdoneflag_no_longer_blocks (0.000s)
PASSED test_inject_frames.py::test_probe_ndb (0.288s)
PASSED test_inject_frames.py::test_clear_ndb (0.328s)
PASSED test_inject_frames.py::test_inject_fbsb_fb_found (0.713s)
PASSED test_inject_frames.py::test_inject_fbsb_sb_found (0.579s)
PASSED test_inject_frames.py::test_inject_si[1] (0.369s)
PASSED test_inject_frames.py::test_inject_si[2] (0.372s)
PASSED test_inject_frames.py::test_inject_si[3] (0.372s)
PASSED test_inject_frames.py::test_inject_si[4] (0.373s)
PASSED test_inject_frames.py::test_inject_si[5] (0.369s)
PASSED test_inject_frames.py::test_inject_si[6] (0.370s)
PASSED test_inject_frames.py::test_inject_a_cd_pattern_23B (0.368s)
PASSED test_inject_frames.py::test_inject_a_cd_pattern_30B (0.370s)
PASSED test_inject_frames.py::test_inject_a_cd_invalid_length (0.000s)
PASSED test_inject_frames.py::test_inject_d_task[5-0] (0.082s)
PASSED test_inject_frames.py::test_inject_d_task[6-1] (0.082s)
PASSED test_inject_frames.py::test_inject_d_task[24-0] (0.081s)
PASSED test_inject_frames.py::test_inject_d_task[28-1] (0.081s)
PASSED test_inject_frames.py::test_inject_d_burst[0] (0.082s)
PASSED test_inject_frames.py::test_inject_d_burst[1] (0.082s)
XFAIL test_inject_frames.py::test_efficacy_arm_reads_d_fb_det_1 (3.073s)
XFAIL test_inject_frames.py::test_efficacy_arm_reads_a_cd (2.804s)
FAILED test_layer_drift.py::test_qemu_insn_rate_cv_below_0_4 (0.070s)
PASSED test_layer_drift.py::test_qemu_insn_rate_p1_above_1m (0.075s)
FAILED test_layer_drift.py::test_bridge_qfn_tracks_qemu_fn (0.142s)
FAILED test_layer_drift.py::test_bridge_qfn_advances_steadily (0.086s)
PASSED test_layer_drift.py::test_log_still_growing[qemu-/root/qemu.log-1000] (0.061s)
PASSED test_layer_drift.py::test_log_still_growing[bridge-/tmp/bridge.log-10] (0.070s)
PASSED test_layer_drift.py::test_log_still_growing[osmocon-/tmp/osmocon.log-1] (0.055s)
FAILED test_layer_drift.py::test_log_start_within_10s (0.207s)
PASSED test_layer_drift.py::test_no_long_gap[qemu-/root/qemu.log-5.0] (0.062s)
PASSED test_layer_drift.py::test_no_long_gap[bridge-/tmp/bridge.log-10.0] (0.074s)
PASSED test_run_observability.py::test_all_expected_processes_present (0.048s)
PASSED test_run_observability.py::test_no_zombie_or_defunct (0.032s)
PASSED test_run_observability.py::test_qemu_log_is_fresh (3.099s)
PASSED test_run_observability.py::test_mobile_pcap_growing (10.008s)
PASSED test_run_observability.py::test_volumes_mounted (0.095s)
PASSED test_run_observability.py::test_no_wait_a21a_on_window (0.074s)
PASSED test_run_observability.py::test_no_enter_7740_dwell (0.100s)
PASSED test_run_observability.py::test_intm_reaches_zero (0.079s)
PASSED test_run_observability.py::test_dsp_throughput_above_threshold (0.082s)
XFAIL test_run_observability.py::test_d_fb_det_pattern_unchanged (0.078s)
PASSED test_run_observability.py::test_bsp_daram_write_distribution (0.081s)
PASSED test_run_observability.py::test_d_fb_det_data_no_longer_zero (0.079s)
PASSED test_run_observability.py::test_bridge_log_shows_traffic (0.048s)
XFAIL test_run_observability.py::test_bridge_fn_drift_under_threshold (0.000s)
PASSED test_run_observability.py::test_bridge_dl_lookahead_respected (0.053s)
PASSED test_run_observability.py::test_neigh_pm_req_loop_alive (0.231s)
FAILED test_run_observability.py::test_l1ctl_data_ind_received (0.187s)
FAILED test_run_observability.py::test_a_cd_writes_nonzero (0.100s)
XFAIL test_run_observability.py::test_a_cd_write_pc_includes_ccch_demod (0.200s)
FAILED test_run_observability.py::test_l1ctl_data_ind_rate_vs_alc (0.173s)
XFAIL test_run_observability.py::test_rach_attempted (0.000s)
PASSED test_run_observability.py::test_mobile_vty_reachable (1.589s)
PASSED test_run_observability.py::test_mobile_imsi_loaded (1.604s)
PASSED test_run_observability.py::test_mobile_mm_state_is_null_or_idle (1.607s)
XFAIL test_run_observability.py::test_interrupt_ex_called_counter_exposed (0.065s)
XFAIL test_run_observability.py::test_isr_entered_matches_rete (0.049s)
XFAIL test_run_observability.py::test_no_pending_irq_gating (0.056s)
PASSED test_run_observability.py::test_run_summary_snapshot (30.582s)
PASSED test_timer_invariants.py::test_tdma_log_present (0.000s)
PASSED test_timer_invariants.py::test_dsp_n_exec_within_budget (0.000s)
XFAIL test_timer_invariants.py::test_dsp_budget_saturation_signal (0.000s)
FAILED test_timer_invariants.py::test_tdma_period_virtual_close_to_target (0.000s)
FAILED test_timer_invariants.py::test_frame_irq_per_tdma_ratio (0.000s)
FAILED test_timer_invariants.py::test_kick_realtime_cadence (0.000s)
PASSED test_timer_invariants.py::test_log_timeline_csv_produced (0.044s)
PASSED test_timer_invariants.py::test_log_timeline_csv_no_dead_bucket (0.051s)
PASSED test_timer_invariants.py::test_log_timeline_csv_steady_qemu_rate (0.032s)
============================================================
54 passed, 11 failed, 3 skipped, 21 xfailed in 93.68s
Reproduction
cd /home/nirvana/qemu-calypso/tests
/tmp/calypso-venv/bin/pytest -v --tb=short
# Filtrer par marker :
/tmp/calypso-venv/bin/pytest -v -m inject_frames
/tmp/calypso-venv/bin/pytest -v -m 'not inject_efficacy'Le diagramme et ce rapport sont régénérés à chaque run et écrits dans /tmp/test_results_20260516_035833/test_results.{mmd,md} (override via CALYPSO_TEST_OUT).
Run finished at 2026-05-16T03:58:35.