sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

test-syntax.sh (2214B)


      1 # source script for ble.sh interactive sessions -*- mode: sh; mode: sh-bash -*-
      2 
      3 ble-import lib/core-syntax
      4 ble-import lib/core-test
      5 
      6 ble/test/start-section 'ble/syntax' 22
      7 
      8 (
      9   func=ble/syntax:bash/simple-word/evaluate-last-brace-expansion
     10   collect='ret=$simple_ibrace/$ret'
     11   ble/test "$func 'a{b,c}x'    ; $collect" ret='6:2/acx'
     12   ble/test "$func 'a{b,{c,d}x' ; $collect" ret='9:2/adx'
     13   ble/test "$func 'a{b,{c,d}}x'; $collect" ret='10:2/adx'
     14   ble/test "$func 'a{{c,dx'    ; $collect" ret='5:1/adx'
     15   ble/test "$func 'a{b{c,dx'   ; $collect" ret='6:2/abdx'
     16   ble/test "$func 'a{b,c}{d}x' ; $collect" ret='7:2/acd}x'
     17 )
     18 
     19 (
     20   func=ble/syntax:bash/simple-word/reconstruct-incomplete-word
     21   collect='ret=$?:$simple_flags:[$simple_ibrace]:$ret'
     22   ble/test "$func 'hello-word'           ; $collect" ret='0::[0:0]:hello-word'
     23   ble/test "$func 'hello word'           ; $collect" ret='1::[0:0]:hello'
     24   ble/test "$func 'hello-word\"a'        ; $collect" ret='0:D:[0:0]:hello-word"a"'
     25   ble/test "$func 'a{b,c}x'              ; $collect" ret='0::[6:2]:acx'
     26   ble/test "$func 'a{b,{c,d}x'           ; $collect" ret='0::[9:2]:adx'
     27   ble/test "$func 'a{b,{c,d}}x'          ; $collect" ret='0::[10:2]:adx'
     28   ble/test "$func 'a{{c,dx'              ; $collect" ret='0::[5:1]:adx'
     29   ble/test "$func 'a{b{c,dx'             ; $collect" ret='0::[6:2]:abdx'
     30   ble/test "$func 'a{b,c}{d}x'           ; $collect" ret='0::[7:2]:acd}x'
     31   ble/test "$func 'a{b,c}x\"hello, world'; $collect" ret='0:D:[6:2]:acx"hello, world"'
     32   ble/test "$func 'a{b,{c,d}x'\''a'      ; $collect" ret='0:S:[9:2]:adx'\''a'\'
     33   ble/test "$func 'a{b,{c,d}}x\$'\''\e[m'; $collect" ret='0:E:[10:2]:adx$'\''\e[m'\'
     34   ble/test "$func 'a{{c,dx\$\"aa'        ; $collect" ret='0:I:[5:1]:adx$"aa"'
     35 )
     36 
     37 (
     38   func=ble/syntax:bash/simple-word/evaluate-path-spec
     39   collect='ret="${spec[*]} >>> ${path[*]}"'
     40   ble/test "$func '~/a/b/c'            ; $collect" ret="~ ~/a ~/a/b ~/a/b/c >>> $HOME $HOME/a $HOME/a/b $HOME/a/b/c"
     41   ble/test "$func '~/a/b/c' / after-sep; $collect" ret="~/ ~/a/ ~/a/b/ ~/a/b/c >>> $HOME/ $HOME/a/ $HOME/a/b/ $HOME/a/b/c"
     42   ble/test "$func '/x/y/z' / after-sep ; $collect" ret="/ /x/ /x/y/ /x/y/z >>> / /x/ /x/y/ /x/y/z"
     43 )
     44 
     45 ble/test/end-section