Commits

ba8e9bc31845038d752f2e1d898ba7b4e67fa4bc
Switch branches/tags
All users
All time
April 2026
Su Mo Tu We Th Fr Sa
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2
3 4 5 6 7 8 9

Commits on April 5, 2026

  1. extract fortsh-specific builtin tests
    test_abbr, test_defun, test_config, test_memory, test_perf, test_help
    These test builtins unique to fortsh (abbreviations, function syntax,
    memory pool stats, performance counters).
    
    Source: fortsh/tests/builtins/
    espadonne committed
  2. extract extended builtin tests (bash/zsh features)
    test_complete_compgen.sh, test_coproc.sh, test_let.sh — bash extensions
    not part of POSIX but supported by bash, zsh, ksh, fortsh.
    
    Source: fortsh/tests/builtins/
    espadonne committed
  3. extract portable builtin tests
    32 shell-agnostic builtin test scripts using compare_output against
    BASH_REF. Covers alias, arithmetic, arrays, cd/pwd, declare, echo,
    eval, exec, export/unset, fc, flow control, getopts, hash, history,
    jobs/fg/bg, kill/wait, local, printf, pushd/popd, read, readonly,
    set/shopt, shift, source, stress, test, times, trap, type/command,
    ulimit, umask, variable ops.
    
    Source: fortsh/tests/builtins/
    espadonne committed
  4. extract POSIX compliance shell scripts
    17 posix_compliance_*.sh + 8 posix_gaps_*.sh + run_posix_tests.sh
    ~19,450 lines, ~3800 test assertions.
    
    Verbatim copies. FORTSH_BIN references will be replaced in Phase 4.
    
    Source: fortsh/tests/posix_*.sh, fortsh/tests/run_posix_tests.sh
    espadonne committed
  5. extract interactive specs: prompt, stress, auto-generated POSIX
    prompt_display.yaml -> suites/interactive/posix/
    stress.yaml -> suites/interactive/stress/
    7 posix_*_auto.yaml files -> suites/interactive/posix/
    
    Verbatim copies. 4254 lines, ~692 test cases.
    
    Source: fortsh/tests/interactive/test_specs/
    espadonne committed
  6. extract interactive specs: completion, signals, vi_mode
    completion.yaml -> suites/interactive/completion/
    signals_jobs.yaml -> suites/interactive/signals/
    vi_mode.yaml -> suites/interactive/editing/
    
    Verbatim copies. 1360 lines, ~102 test cases.
    
    Source: fortsh/tests/interactive/test_specs/
    espadonne committed
  7. extract core interactive YAML specs
    posix.yaml -> suites/interactive/posix/posix_core.yaml
    line_editing.yaml -> suites/interactive/editing/
    history.yaml -> suites/interactive/history/
    
    Verbatim copies. 1690 lines, ~220 test cases.
    
    Source: fortsh/tests/interactive/test_specs/
    espadonne committed
  8. extract shared test harness for shell script tests
    Rename FORTSH_BIN -> SHELL_BIN (now required, no default path).
    Keep BASH_REF as-is — semantically correct as reference shell.
    Rename temp file prefix fortsh_timeout -> bensch_timeout.
    
    Source: fortsh/tests/builtins/test_harness.sh
    espadonne committed
  9. extract pytest configuration
    Rename fixtures: fortsh -> shell, fortsh_path -> shell_path,
    fortsh_with_rc -> shell_with_rc, fortsh_factory -> shell_factory
    
    Source: fortsh/tests/interactive/conftest.py
    espadonne committed
  10. extract python dependencies
    pexpect, PyYAML, pytest, pytest-html, colorama — all shell-agnostic.
    
    Source: fortsh/tests/interactive/requirements.txt
    espadonne committed
  11. extract utility modules
    keys.py — 60+ VT100/xterm key definitions (100% shell-agnostic)
    matchers.py — output matching library (exact, regex, contains, etc.)
    
    Verbatim copies, no changes needed.
    
    Source: fortsh/tests/interactive/utils/
    espadonne committed
  12. extract test runner from fortsh
    Verbatim copy of run_tests.py with identifier renames:
      FortshPTY -> ShellPTY, fortsh_path -> shell_path
      --fortsh -> --shell, find_fortsh_binary -> find_shell_binary
      Local variable fortsh -> shell throughout
    
    Removed hardcoded fortsh binary search paths — bensch requires
    explicit --shell argument.
    
    Source: fortsh/tests/interactive/run_tests.py
    espadonne committed
  13. extract PTY engine from fortsh
    Verbatim copy of fortsh_pty.py with identifier renames:
      FortshPTY -> ShellPTY
      FortshTestSession -> ShellTestSession
      fortsh_path -> shell_path
      ___FORTSH_CMD_END___ -> ___BENSCH_CMD_END___
    
    Shell-specific env vars (FORTSH_MINIMAL_ECHO, FORTSH_TEST_MODE,
    FORTSH_RC_FILE) retained — will be profile-driven in Phase 4.
    
    Source: fortsh/tests/interactive/fortsh_pty.py
    espadonne committed