Skip to content

Commit

Permalink
decode: fix test failure by cached @esc
Browse files Browse the repository at this point in the history
* test: add test for bash-3.0 array bugs
* histdb: suppress outputs from "PRAGMA quick_check;"
  • Loading branch information
akinomyoga committed Feb 9, 2024
1 parent 0b18f3c commit 6154d71
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 4 deletions.
2 changes: 1 addition & 1 deletion contrib
Submodule contrib updated 1 files
+1 −1 histdb.bash
3 changes: 3 additions & 0 deletions docs/ChangeLog.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
- highlight: fix inconsistent tab width in plain layer (reported by dgudim) `#D2132` f9072c40
- decode: consume incomplete keyseq in macros `#D2137` 27e6309e
- keymap/vi: fix conflicting binding to <kbd>C-RET</kbd> in `vi_imap` `#D2146` xxxxxxxx
- decode: force updating cache for <kbd>@ESC</kbd> `#D2148` xxxxxxxx

## Compatibility

Expand Down Expand Up @@ -106,6 +107,7 @@
- contrib/fzf-git: fix unsupported command modes (reported by dgudim) `#D2083` ba2b8865
- contrib/bash-preexec: support the latest version of `bash-preexec` (reported by mcarans) `#D2128` 50af4d9c
- contrib/config/execmark: output error status through `ble/canvas/trace` `#D2136` 64cdcd01
- histdb: suppress outputs from `PRAGMA quick_check;` `#D2147` xxxxxxxx

## Documentation

Expand All @@ -125,6 +127,7 @@
- test(bash,util): fix tests in interactive session `#D2123` 06ad3a6c
- test(vi): fix broken states after test `#D2123` 06ad3a6c
- test(bash): fix test cases for history expansion `#D2131` 838b4652
- test(bash): add tests for bash array bugs `#D2149` xxxxxxxx

## Internal changes

Expand Down
1 change: 1 addition & 0 deletions lib/init-cmap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
# 2020-04-29 cmap キャッシュ生成バグ修正に伴う更新 (2)
# 2021-07-12 __detach__ 追加
# 2024-01-21 _ble_decode_csimap_dict 追加に伴う更新
# 2024-02-07 @ESC, @NUL コード変更に伴う更新

function ble/init:cmap/bind-single-csi {
ble-bind -k "ESC [ $1" "$2"
Expand Down
46 changes: 44 additions & 2 deletions lib/test-bash.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

ble-import lib/core-test

ble/test/start-section 'bash' 49
ble/test/start-section 'bash' 61

# case $word を quote する必要がある条件は?

Expand Down Expand Up @@ -298,6 +298,48 @@ ble/test/start-section 'bash' 49
ble/test ret='1 2 3'
fi

# BUG bash-3.0
# IFS がデフォルト以外の時 declare -a arr2=("${arr1[@]}") (disbale=#D0525)
# も正しく動かない。
a=(1 2 3)
IFS=x
declare -a a1=("${a[@]}") # disable=#D0525
a2=("${a[@]}") # disable=#D0525
IFS=$' \t\n'
if ((_ble_bash<30100)); then
ble/test code:'ret=$a1' ret=1x2x3
ble/test code:'ret=$a2' ret=1
else
ble/test code:'ret=$a1' ret=1
ble/test code:'ret=$a2' ret=1
fi

# BUG bash-3.0
# IFS がデフォルト以外の時 declare -a arr2=($v) による split は動かない。代
# わりに空白で分割される。
IFS=x
v=1x2x3
declare -a a1=($v)
a2=($v)
if ((_ble_bash<30100)); then
ble/test code:'ret=$a1' ret=1x2x3
ble/test code:'ret=$a2' ret=1
else
ble/test code:'ret=$a1' ret=1
ble/test code:'ret=$a2' ret=1
fi
v='1 2 3'
declare -a a1=($v)
a2=($v)
if ((_ble_bash<30100)); then
ble/test code:'ret=$a1' ret=1
ble/test code:'ret=$a2' ret='1 2 3'
else
ble/test code:'ret=$a1' ret='1 2 3'
ble/test code:'ret=$a2' ret='1 2 3'
fi
IFS=$' \t\n'

# BUG bash-3.0 [Ref #D1570]
# * "${var[@]/xxx/yyy}" (#D1570) はスカラー変数に対して空の結果を生む。
# ${var[@]//xxx/yyy}, ${var[@]/%/yyy}, ${var[@]/#/yyy} (#D1570) について
Expand Down Expand Up @@ -378,7 +420,7 @@ ble/test/start-section 'bash' 49
# Quirks
(
# (#D2123) In all the Bash versions 1.14..5.3, expand_aliases inside
# "compond-command &" are disabled in interactive sessions.
# "compound-command &" are disabled in interactive sessions.
shopt -s expand_aliases
alias e='ble/util/print hello'
ble/test 'eval "e"' stdout=hello
Expand Down
2 changes: 1 addition & 1 deletion lib/test-keymap.vi.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ function ble/keymap:vi_test/check {
local str_expect=$fin
local str_result=$_ble_edit_str

ble/test --display-code="$title" ret="$ind_expect" stdout="$str_expect[EOF]" \
ble/test --depth=1 --display-code="$title" ret="$ind_expect" stdout="$str_expect[EOF]" \
code:'ret=$ind_result; ble/util/put "$str_result[EOF]"'
local ext=$?

Expand Down
24 changes: 24 additions & 0 deletions note.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7075,6 +7075,30 @@ bash_tips
Done (実装ログ)
-------------------------------------------------------------------------------

2024-02-09

* test: add tests for bash array bugs [#D2149]

何かの修正の時に関係あるかもしれないと思ってテストを追加したが結局関係なかっ
た。後でもっと拡張して追加しようと思っていたが忙しいので、keymap.vi に対す
る修正があった今もうまとめて入れてしまう事にする。

* decode: fix test failure by cached @ESC [#D2148]

テストが失敗する様になった。何処にも昔の @ESC はない様に見えるのに昔の @ESC
が現れる。と思ったらキャッシュが残っていた。init-cmap.sh を更新するのを忘れ
ていた。また、keymap.vi のテストが失敗した時の行番号などの表示がヘルパー関
数の物になっていたのを直した。

* histdb: ok ok という謎のメッセージが時々出る [#D2147]

と思っていたが、これはどうやら histdb のバックアップを生成する時に表示され
ている様だ。ok ok という表示が出た直後に ~/.local/state/blesh の中を見たら
history のバックアップファイルが作られたばかりだった。

PRAGMA quick_check を実行した時に表示される。標準出力に出している様だ。標準
出力を潰す事にする。

2024-02-08

* keymap/vi: vi_imap C-RET が書き換わっている (reported by 10b14224cc) [#D2146]
Expand Down

0 comments on commit 6154d71

Please sign in to comment.