Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
comparison tests/farray-alist.t @ 723:a97ec3f07bdb
farray.sh: REFACTOR: More flexible metadata retrieval.
Using an array or alist variable name or token value (with prefix) is now
supported in every function.
This is possible because the value prefixes contain questin marks (?) which
are not allowed in shell variable names.
This again is a major precondition for recursive data structures
(arrays/alists in arrays/alists).
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Sat, 05 Oct 2024 21:55:55 +0200 |
| parents | b2757e72b517 |
| children | 3adb26525b19 |
comparison
equal
deleted
inserted
replaced
| 722:9c860f2abbdc | 723:a97ec3f07bdb |
|---|---|
| 162 > done | 162 > done |
| 163 KEY: `K1', VAL: `V1' | 163 KEY: `K1', VAL: `V1' |
| 164 KEY: `K2', VAL: `V2 2' | 164 KEY: `K2', VAL: `V2 2' |
| 165 KEY: `K3', VAL: `" 111222333" \'444555 ' | 165 KEY: `K3', VAL: `" 111222333" \'444555 ' |
| 166 | 166 |
| 167 ITERATE (for each) | 167 ITERATE (for each, by name) |
| 168 | 168 |
| 169 $ falist_for_each LIST $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # ` | 169 $ falist_for_each LIST $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # ` |
| 170 EACH: LIST key `K1', value `V1' at idx 1 | 170 EACH: LIST key `K1', value `V1' at idx 1 |
| 171 EACH: LIST key `K2', value `V2 2' at idx 2 | 171 EACH: LIST key `K2', value `V2 2' at idx 2 |
| 172 EACH: LIST key `K3', value `" 111222333" \'444555 ' at idx 3 | 172 EACH: LIST key `K3', value `" 111222333" \'444555 ' at idx 3 |
| 173 | |
| 174 ITERATE (for each, by value) | |
| 175 | |
| 176 $ falist_for_each "$LIST" $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # ` | |
| 177 EACH: _farr_KV\?\?_[a-f0-9]+ key `K1', value `V1' at idx 1 (re) | |
| 178 EACH: _farr_KV\?\?_[a-f0-9]+ key `K2', value `V2 2' at idx 2 (re) | |
| 179 EACH: _farr_KV\?\?_[a-f0-9]+ key `K3', value `" 111222333" \\'444555 ' at idx 3 (re) | |
| 173 | 180 |
| 174 $ falist_clear LIST | 181 $ falist_clear LIST |
| 175 $ falist_destroy LIST | 182 $ falist_destroy LIST |
| 176 $ falist_destroy LIST | 183 $ falist_destroy LIST |
| 177 ERROR: object `LIST' not created properly: token empty | 184 ERROR: object `LIST' not created properly: token empty |
| 414 DEBUG: alist `LIST' has length 1 | 421 DEBUG: alist `LIST' has length 1 |
| 415 DEBUG: `k1' -> `v2' | 422 DEBUG: `k1' -> `v2' |
| 416 $ _farr_destroy_object "$LIST" | 423 $ _farr_destroy_object "$LIST" |
| 417 $ check_no_alist_artifacts | 424 $ check_no_alist_artifacts |
| 418 $ (_farr_destroy_object "$LIST") | 425 $ (_farr_destroy_object "$LIST") |
| 419 ERROR: falist with token value `_farr_KV\*_([a-f0-9]+)' not created properly: no object for token `\1' (re) | 426 ERROR: falist `_farr_KV\?\?_([a-f0-9]+)' not created properly: no object for token `\1' (re) |
| 420 [1] | 427 [70] |
| 421 $ LIST='' | 428 $ LIST='' |
| 422 $ _farr_destroy_object "$LIST" | 429 $ _farr_destroy_object "$LIST" |
| 423 $ check_no_alist_artifacts | 430 $ check_no_alist_artifacts |
