Skip to content

audit(ci): triage 13 test failures unmasked by segfault fix (#266) #271

Description

@Wolfvin

Mengapa

Sebelum PR #266 (pin tree-sitter<0.26), setiap run CI segfault di test_large_file_parsing.py dan mengabort SELURUH suite (exit 139) sebelum test lain jalan — jadi CI tidak pernah benar-benar hijau di full suite. Setelah #266, suite jalan tuntas (CI run 29249756715: 16 failed, 2515 passed). 3 sudah diperbaiki di PR #270 (sarif SyntaxError + _auto_setup regresi). Sisa 13 failure ini pre-existing (mayoritas repro di Windows DAN Linux — bukan env-only) dan perlu triase + fix.

Bukti: CI run 29249756715 job "Test Suite" — 13 nama di bawah persis dari log itu.

13 Failure (grup per area)

A. Formatter/output layer drift (kemungkinan dari #195 umbrella refactor)

  • test_formatters_phase2::test_help_lists_new_formats--format choices di argparse cuma {json,markdown,ai,sarif,compact,graphml} (6), tapi CodeLens klaim 11 formatter (text/junit-xml/emacs/vim/gitlab-sast hilang dari choices).
  • test_confidence::test_dead_code_json_output_has_schema_version — KeyError schema_version
  • test_confidence::test_secrets_json_output_has_schema_version — KeyError schema_version
  • test_confidence::test_json_format_has_schema_version — KeyError schema_version

B. Search pagination (compact)

  • test_compact_format::test_search_offset_advances — KeyError matches
  • test_compact_format::test_search_pagination — KeyError status

C. scan performance / timeout

  • test_cli::test_scan_with_format_long_does_not_crash — TimeoutExpired 60s (scan . --format json men-scan dir scripts/ nyata; >120s lokal fresh)
  • test_cli::test_scan_with_format_short_does_not_crash — TimeoutExpired 60s (-f json)
    → Dua angle: (1) test cuma perlu cek argparse, harusnya scan fixture kecil bukan .; (2) scan penuh scripts/ >120s = kandidat perf regresi terpisah.

D. diff-scope / misc

  • test_diff_scope::test_diff_base_before_subcommand-1 not greater than -1
  • test_diff_scope::test_valid_ref_produces_diff_scope_in_output — No JSON in output
  • test_cli::TestCheckCommandArgs::test_check_full_cli_invocation_with_positionalcheck <ws> --format json output kosong (bukan JSON)
  • test_codelensignore::test_actual_target_dir_is_ignored — assert False is True
  • test_hybrid_engine::test_deep_unsupported_command_sets_hint — path bug scripts/scripts/codelens.py (test path construction)

Konteks

Failure ini bukan regresi baru — mayoritas repro di Windows DAN Linux, tapi selalu tertutupi karena segfault test_large_file_parsing.py mengabort pytest (exit 139) sebelum test lain jalan. Setelah PR #266 (pin tree-sitter<0.26) menghilangkan segfault, suite jalan tuntas dan 13 failure ini muncul — pertama kalinya full-suite Linux bisa dilihat. Grup A (formatter choices + schema_version) kemungkinan drift dari #195 umbrella refactor.

Tujuan

CI Test Suite job hijau di Linux — atau tiap failure sisa didokumentasikan eksplisit sebagai env-only dengan bukti. Tiap dari 13 diklasifikasi (longstanding vs regresi + commit penyebab); yang genuine (output-contract drift) diperbaiki.

Constraint

  • JANGAN skip test buta untuk "menghijaukan" CI — grup A/B indikasi bug produk nyata (output shape drift). Skip = menyembunyikan bug.
  • JANGAN longgarkan assertion tanpa root-cause; klasifikasi vs baseline dulu.
  • Boleh dipecah jadi sub-issue per-area kalau satu PR terlalu besar; tiap sub-issue tetap 5 blok.

Metodologi triase (WAJIB per item)

Untuk tiap failure: clone bersih di commit pra-#195 (c722f4a atau lebih lama), jalankan test spesifik. Kalau gagal di baseline juga → longstanding (fix product/test). Kalau lolos di baseline → regresi dari refactor tertentu (bisect). JANGAN skip test buta — grup A/B/C indikasi bug produk nyata (output shape drift), bukan cuma test-debt.

Definition of Done

  • Tiap 13 failure diklasifikasi: longstanding vs regresi (dengan commit penyebab)
  • Grup A (formatter choices + schema_version) diperbaiki atau di-sub-issue — ini output contract yang consumer andalkan
  • Grup C: test argparse dibuat pakai fixture kecil (cepat); perf scan dievaluasi terpisah kalau terbukti regresi
  • CI Test Suite job hijau di Linux (0 failed), atau failure sisa didokumentasikan eksplisit sebagai env-only dengan bukti

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions