annotate tests/farray-alist.t @ 730:8f1583faf9ea

farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 07 Oct 2024 12:57:29 +0200
parents 05a325c7d5c5
children 772e4999562b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
1 Basic tests of farray.sh's falist_XXX functions
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
3 Shell is /bin/sh.
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
4
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
5
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
6 Setup
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
7 =====
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
8
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
9 $ set -u
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
10 $ . "${TESTDIR}/testsetup.sh"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
11 $ _p_datadir="${TESTDIR}/../share/local-bsdtools"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
12 $ . "${_p_datadir}/farray.sh"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
13
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
14
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
15 Basic Creation and Destruction
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
16 ==============================
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
17
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
18 Create an empty alist
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
19
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
20 $ falist_create LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
21 $ falist_length _i LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
22 $ echo "$_i"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
23 0
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
24 $ test "${_i}" -eq 0
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
25 $ falist_print_length LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
26 0 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
27
651
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
28 $ falist_istrue LIST
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
29 [1]
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
30 $ falist_debug LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
31 DEBUG: alist `LIST' has length 0
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
32
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
33 $ falist_release LIST
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
34 $ ( falist_release LIST )
716
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
35 ERROR: object `LIST' not created properly: token empty
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
36 [1]
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
37
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
38 $ check_no_alist_artifacts
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
39
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
40
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
41 Clear
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
42 =====
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
43
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
44 $ falist_create LIST
651
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
45 $ falist_istrue LIST
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
46 [1]
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
47 $ falist_set LIST K1 V1
651
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
48 $ falist_istrue LIST
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
49 $ falist_set LIST K2 V2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
50 $ falist_debug LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
51 DEBUG: alist `LIST' has length 2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
52 DEBUG: `K1' -> `V1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
53 DEBUG: `K2' -> `V2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
54 $ falist_length _i LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
55 $ echo "$_i"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
56 2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
57 $ falist_print_length LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
58 2 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
59
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
60 $ falist_clear LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
61 $ falist_length _i LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
62 $ echo "$_i"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
63 0
651
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
64 $ falist_istrue LIST
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
65 [1]
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
66 $ falist_print_length LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
67 0 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
68
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
69 $ falist_release LIST
651
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
70 $ falist_istrue LIST
716
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
71 ERROR: object `LIST' not created properly: token empty
651
57ee25cec0dd farray.sh: farray_istrue() and falist_istrue(): truth tests for arrays and alists.
Franz Glasner <fzglas.hg@dom66.de>
parents: 615
diff changeset
72 [1]
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
73 $ check_no_alist_artifacts
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
74
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
75
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
76 Get / Set / Contains
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
77 ====================
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
78
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
79 $ falist_create LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
80 $ falist_set LIST K1 V1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
81 $ falist_set LIST K2 V2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
82 $ falist_debug LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
83 DEBUG: alist `LIST' has length 2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
84 DEBUG: `K1' -> `V1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
85 DEBUG: `K2' -> `V2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
86 $ falist_length _i LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
87 $ echo "$_i"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
88 2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
89 $ falist_print_length LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
90 2 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
91
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
92 $ falist_set LIST K2 "V2 2"
718
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
93 $ falist_set_unique LIST K2 "V2 duplicate"
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
94 [1]
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
95 $ falist_set LIST K3 $'" 111222333" \\\'444555 ' # '
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
96 $ falist_debug LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
97 DEBUG: alist `LIST' has length 3
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
98 DEBUG: `K1' -> `V1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
99 DEBUG: `K2' -> `V2 2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
100 DEBUG: `K3' -> `" 111222333" \'444555 '
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
101 $ falist_length _i LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
102 $ echo "$_i"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
103 3
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
104 $ falist_print_length LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
105 3 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
106
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
107 $ falist_contains LIST K1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
108 $ falist_contains LIST K
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
109 [1]
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
110 $ falist_get _var LIST K2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
111 $ echo "$_var"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
112 V2 2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
113 $ falist_tryget _var LIST K1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
114 $ echo "$_var"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
115 V1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
116 $ falist_tryget _i LIST K
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
117 [1]
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
118 $ _var="$(falist_print_length NON_EXISTING_LIST)"
716
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
119 ERROR: object `NON_EXISTING_LIST' not created properly: token empty
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
120 $ echo "${_var}"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
121 -1
718
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
122 $ falist_set_unique LIST K4 "V4"
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
123 $ falist_debug LIST
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
124 DEBUG: alist `LIST' has length 4
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
125 DEBUG: `K1' -> `V1'
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
126 DEBUG: `K2' -> `V2 2'
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
127 DEBUG: `K3' -> `" 111222333" \'444555 '
2502e077d5e9 farray.sh: Implement "falist_set_unique()" that does not overwrite existing key-value pairs
Franz Glasner <fzglas.hg@dom66.de>
parents: 717
diff changeset
128 DEBUG: `K4' -> `V4'
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
129 $ falist_release LIST
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
130 $ check_no_alist_artifacts
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
131
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
132
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
133 Iteration
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
134 =========
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
135
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
136 ITERATE (manual indexing)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
137
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
138 $ falist_create LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
139 $ falist_set LIST K1 V1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
140 $ falist_set LIST K2 "V2 2"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
141 $ falist_set LIST K3 $'" 111222333" \\\'444555 ' # '
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
142
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
143 Iteration by indexing key and values separately
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
144
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
145 $ _i=1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
146 > while falist_tryget_key_at_index _k LIST ${_i}; do
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
147 > # cannot fail under "normal" circumstances
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
148 > falist_tryget_value_at_index _v LIST ${_i}
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
149 > printf " KEY: \`%s', VAL: \`%s'\\n" "${_k}" "${_v}"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
150 > _i=$((_i + 1))
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
151 > done
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
152 KEY: `K1', VAL: `V1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
153 KEY: `K2', VAL: `V2 2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
154 KEY: `K3', VAL: `" 111222333" \'444555 '
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
155
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
156 ITERATE (manual indexing over items)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
157
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
158 $ _i=1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
159 > while falist_tryget_item_at_index _k _v LIST ${_i}; do
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
160 > printf " KEY: \`%s', VAL: \`%s'\\n" "${_k}" "${_v}"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
161 > _i=$((_i + 1))
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
162 > done
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
163 KEY: `K1', VAL: `V1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
164 KEY: `K2', VAL: `V2 2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
165 KEY: `K3', VAL: `" 111222333" \'444555 '
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
166
723
a97ec3f07bdb farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents: 719
diff changeset
167 ITERATE (for each, by name)
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
168
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
169 $ falist_for_each LIST $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # `
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
170 EACH: LIST key `K1', value `V1' at idx 1
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
171 EACH: LIST key `K2', value `V2 2' at idx 2
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
172 EACH: LIST key `K3', value `" 111222333" \'444555 ' at idx 3
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
173
723
a97ec3f07bdb farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents: 719
diff changeset
174 ITERATE (for each, by value)
a97ec3f07bdb farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents: 719
diff changeset
175
a97ec3f07bdb farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents: 719
diff changeset
176 $ falist_for_each "$LIST" $'printf "EACH: %s key \\`%s\\\', value \\`%s\\\' at idx %d\\n"' # `
729
05a325c7d5c5 farray.sh: change token prefixes again
Franz Glasner <fzglas.hg@dom66.de>
parents: 728
diff changeset
177 EACH: _farr_KV\[\?,\?\]:[a-f0-9]+ key `K1', value `V1' at idx 1 (re)
05a325c7d5c5 farray.sh: change token prefixes again
Franz Glasner <fzglas.hg@dom66.de>
parents: 728
diff changeset
178 EACH: _farr_KV\[\?,\?\]:[a-f0-9]+ key `K2', value `V2 2' at idx 2 (re)
05a325c7d5c5 farray.sh: change token prefixes again
Franz Glasner <fzglas.hg@dom66.de>
parents: 728
diff changeset
179 EACH: _farr_KV\[\?,\?\]:[a-f0-9]+ key `K3', value `" 111222333" \\'444555 ' at idx 3 (re)
723
a97ec3f07bdb farray.sh: REFACTOR: More flexible metadata retrieval.
Franz Glasner <fzglas.hg@dom66.de>
parents: 719
diff changeset
180
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
181 $ falist_clear LIST
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
182 $ falist_release LIST
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
183 $ falist_release LIST
716
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
184 ERROR: object `LIST' not created properly: token empty
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
185 [1]
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
186
606
0ad7b2120e74 farray.sh: tests: add forgotten check for left artifacts (memory leaks)
Franz Glasner <fzglas.hg@dom66.de>
parents: 605
diff changeset
187 $ check_no_alist_artifacts
0ad7b2120e74 farray.sh: tests: add forgotten check for left artifacts (memory leaks)
Franz Glasner <fzglas.hg@dom66.de>
parents: 605
diff changeset
188
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
189
607
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
190 Valid and Invalid Indices
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
191
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
192 $ falist_create LIST
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
193 $ falist_set LIST 'KEY 1' 'VAL 1'
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
194 $ falist_set LIST 'KEY 2' 'VAL 2'
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
195 $ falist_set LIST 'KEY 3' 'VAL 3'
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
196
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
197 $ (falist_tryget_item_at_index _k _v LIST "")
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
198 ERROR: missing index
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
199 [70]
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
200
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
201 $ (falist_tryget_item_at_index _k _v LIST)
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
202 ERROR: missing index
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
203 [70]
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
204
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
205 $ falist_tryget_item_at_index _k _v LIST 4
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
206 [1]
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
207
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
208 $ falist_tryget_item_at_index _k _v LIST 0
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
209 $ printf '%s:%s' "$_k" "$_v"
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
210 KEY 3:VAL 3 (no-eol)
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
211
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
212 $ falist_tryget_item_at_index _k _v LIST -2
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
213 $ printf '%s:%s' "$_k" "$_v"
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
214 KEY 1:VAL 1 (no-eol)
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
215
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
216 $ falist_tryget_item_at_index _k _v LIST -3
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
217 [1]
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
218
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
219 $ falist_release LIST
607
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
220 $ check_no_alist_artifacts
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
221
c450fd0eaddb farray.sh: Generalized indices for falist_tryget_{item,key,value}_at_index()
Franz Glasner <fzglas.hg@dom66.de>
parents: 606
diff changeset
222
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
223 Deletion of keys
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
224 ================
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
225
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
226 $ falist_create LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
227 $ falist_set LIST 'key 1' 'value 1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
228 $ falist_set LIST 'key 2' 'value 2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
229 $ falist_set LIST 'key 3' 'value 3'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
230 $ falist_set LIST 'key 4' 'value 4'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
231 $ falist_set LIST 'key 5' 'value 5'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
232 $ falist_trydel LIST 'key 1'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
233 $ falist_trydel LIST 'key 5'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
234 $ falist_trydel LIST 'key 3'
605
96366e2075fe farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 604
diff changeset
235 $ falist_debug LIST
96366e2075fe farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 604
diff changeset
236 DEBUG: alist `LIST' has length 2
96366e2075fe farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 604
diff changeset
237 DEBUG: `key 2' -> `value 2'
96366e2075fe farray.sh: enhance unittests for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 604
diff changeset
238 DEBUG: `key 4' -> `value 4'
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
239 $ falist_trydel LIST "non-existing key"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
240 [1]
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
241 $ falist_print_length LIST
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
242 2 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
243 $ falist_get _var LIST 'key 2'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
244 $ printf '%s' "$_var"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
245 value 2 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
246 $ falist_get _var LIST 'key 4'
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
247 $ printf '%s' "$_var"
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
248 value 4 (no-eol)
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
249
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
250 $ falist_release LIST
604
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
251
45c47bc1f7d2 farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff changeset
252 $ check_no_alist_artifacts
612
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
253
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
254
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
255 Compare
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
256 =======
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
257
613
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
258 $ falist_create LIST1 K1 V1 K2 V2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
259 $ falist_debug LIST1
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
260 DEBUG: alist `LIST1' has length 2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
261 DEBUG: `K1' -> `V1'
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
262 DEBUG: `K2' -> `V2'
612
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
263
613
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
264 $ falist_create LIST2 K2 V2 K1 V1
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
265 $ falist_debug LIST2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
266 DEBUG: alist `LIST2' has length 2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
267 DEBUG: `K2' -> `V2'
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
268 DEBUG: `K1' -> `V1'
612
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
269
613
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
270 $ falist_create LIST3 K1 V1 K2 V2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
271 $ falist_debug LIST3
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
272 DEBUG: alist `LIST3' has length 2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
273 DEBUG: `K1' -> `V1'
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
274 DEBUG: `K2' -> `V2'
612
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
275
613
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
276 $ falist_create LIST4 K1 V1 K2 V2-4
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
277 $ falist_debug LIST4
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
278 DEBUG: alist `LIST4' has length 2
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
279 DEBUG: `K1' -> `V1'
17194ffe3638 farray.sh: falist_create() and falist_set() now accept a sequence of key-value pairs.
Franz Glasner <fzglas.hg@dom66.de>
parents: 612
diff changeset
280 DEBUG: `K2' -> `V2-4'
612
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
281
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
282 $ falist_are_equal LIST1 LIST2
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
283 $ falist_are_equal LIST1 LIST4
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
284 [1]
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
285 $ falist_are_equal_with_order LIST1 LIST2
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
286 [1]
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
287 $ falist_are_equal_with_order LIST1 LIST3
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
288
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
289 $ falist_clear LIST2
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
290 $ falist_are_equal LIST1 LIST2
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
291 [1]
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
292
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
293 $ falist_clear LIST3
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
294 $ falist_are_equal_with_order LIST2 LIST3
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
295
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
296 $ falist_release LIST1
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
297 $ falist_release LIST2
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
298 $ falist_release LIST3
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
299 $ falist_release LIST4
612
c9ef2339618d farray.sh: Implemented comparison (ordered and unordered) for alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 607
diff changeset
300
614
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
301 $ check_no_alist_artifacts
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
302
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
303
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
304 Updating
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
305 ========
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
306
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
307 $ falist_create ARR "Key 1" "Value 1" "Key 2" 'Value 2 '\'''
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
308 $ falist_create UPDATE1 "Key 1" "Value 1" "Key 2" 'Value 2 '\'''
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
309 $ falist_create UPDATE2 "Key 2" 'Value 2 (Updated) '\''' "Key 3" "Value 3"
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
310 $ falist_create EMPTY
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
311
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
312 $ falist_are_equal_with_order ARR UPDATE1
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
313 $ falist_are_equal_with_order ARR UPDATE2
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
314 [1]
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
315
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
316 $ falist_update ARR UPDATE1
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
317 $ falist_are_equal_with_order ARR UPDATE1
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
318
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
319 $ falist_update ARR UPDATE2
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
320 $ falist_debug ARR
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
321 DEBUG: alist `ARR' has length 3
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
322 DEBUG: `Key 1' -> `Value 1'
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
323 DEBUG: `Key 2' -> `Value 2 (Updated) ''
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
324 DEBUG: `Key 3' -> `Value 3'
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
325
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
326 Updating an into an empty alist is just a copy
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
327
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
328 $ falist_update EMPTY UPDATE1
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
329 $ falist_debug EMPTY
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
330 DEBUG: alist `EMPTY' has length 2
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
331 DEBUG: `Key 1' -> `Value 1'
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
332 DEBUG: `Key 2' -> `Value 2 ''
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
333 $ falist_debug UPDATE1
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
334 DEBUG: alist `UPDATE1' has length 2
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
335 DEBUG: `Key 1' -> `Value 1'
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
336 DEBUG: `Key 2' -> `Value 2 ''
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
337
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
338 $ falist_release ARR
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
339 $ falist_release UPDATE1
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
340 $ falist_release UPDATE2
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
341 $ falist_release EMPTY
614
62fbc4316d97 farray.sh: Implement falist_update(): update an existing alist from another
Franz Glasner <fzglas.hg@dom66.de>
parents: 613
diff changeset
342
615
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
343 $ check_no_alist_artifacts
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
344
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
345
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
346 Items / Keys / Values
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
347 =====================
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
348
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
349 $ farray_create KEYS
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
350 $ farray_create VALUES
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
351 $ farray_create ITEMS
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
352 $ falist_create LIST "Key 1" "Value 1" "Key 2" 'Value 2 '\'''
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
353 $ falist_items ITEMS LIST
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
354 $ farray_debug ITEMS
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
355 DEBUG: array `ITEMS' has length 4
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
356 DEBUG: its contents:
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
357 DEBUG: 1: `Key 1'
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
358 DEBUG: 2: `Value 1'
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
359 DEBUG: 3: `Key 2'
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
360 DEBUG: 4: `Value 2 ''
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
361 $ falist_keys KEYS LIST
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
362 $ farray_debug KEYS
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
363 DEBUG: array `KEYS' has length 2
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
364 DEBUG: its contents:
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
365 DEBUG: 1: `Key 1'
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
366 DEBUG: 2: `Key 2'
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
367 $ falist_values VALUES LIST
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
368 $ farray_debug VALUES
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
369 DEBUG: array `VALUES' has length 2
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
370 DEBUG: its contents:
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
371 DEBUG: 1: `Value 1'
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
372 DEBUG: 2: `Value 2 ''
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
373
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
374 $ falist_release LIST
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
375 $ farray_release KEYS
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
376 $ farray_release VALUES
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
377 $ farray_release ITEMS
615
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
378
454ce7fa25c8 farray.sh: Implement falist_items(), falist_keys() and falist_values()
Franz Glasner <fzglas.hg@dom66.de>
parents: 614
diff changeset
379 $ check_no_alist_artifacts
716
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
380
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
381
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
382 Cross Type Checks
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
383 =================
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
384
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
385 $ falist_create LIST
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
386 $ (farray_append LIST value)
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
387 ERROR: object `LIST' is not an array
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
388 [70]
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
389 $ falist_release LIST
716
36d953791e0c farray.sh: The token values are prepended by a type-specific prefix: can now easily determine whether it is an array or alist from the value in its name
Franz Glasner <fzglas.hg@dom66.de>
parents: 651
diff changeset
390 $ check_no_alist_artifacts
717
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
391
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
392
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
393 Other Type Checks
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
394 =================
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
395
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
396 $ falist_type
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
397 unknown (no-eol)
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
398 $ falist_type __UNKNOWN_VARIABLE__
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
399 unknown (no-eol)
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
400 $ testvar='foo'
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
401 $ falist_type testvar
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
402 value (no-eol)
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
403 $ testvar=''
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
404 $ falist_type testvar
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
405 null (no-eol)
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
406 $ falist_isalist testvar
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
407 [1]
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
408 $ falist_create LIST
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
409 $ falist_type LIST
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
410 alist (no-eol)
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
411 $ falist_isalist LIST
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
412 $ falist_release LIST
717
f4725ad5cd21 farray.sh: type tests for array and alist
Franz Glasner <fzglas.hg@dom66.de>
parents: 716
diff changeset
413 $ check_no_alist_artifacts
719
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
414
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
415
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
416 Generic Destruction
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
417 ===================
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
418
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
419 $ falist_create LIST k1 v2
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
420 $ falist_debug LIST
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
421 DEBUG: alist `LIST' has length 1
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
422 DEBUG: `k1' -> `v2'
728
858f4208d9cb farray.sh: Resource management by reference counting done
Franz Glasner <fzglas.hg@dom66.de>
parents: 726
diff changeset
423 $ _farr_release_object "$LIST"
719
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
424 $ check_no_alist_artifacts
728
858f4208d9cb farray.sh: Resource management by reference counting done
Franz Glasner <fzglas.hg@dom66.de>
parents: 726
diff changeset
425 $ (_farr_release_object "$LIST")
729
05a325c7d5c5 farray.sh: change token prefixes again
Franz Glasner <fzglas.hg@dom66.de>
parents: 728
diff changeset
426 ERROR: falist `_farr_KV\[\?,\?\]:([a-f0-9]+)' not created properly: no object for token `\1' (re)
728
858f4208d9cb farray.sh: Resource management by reference counting done
Franz Glasner <fzglas.hg@dom66.de>
parents: 726
diff changeset
427 [1]
719
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
428 $ LIST=''
728
858f4208d9cb farray.sh: Resource management by reference counting done
Franz Glasner <fzglas.hg@dom66.de>
parents: 726
diff changeset
429 $ _farr_release_object "$LIST"
719
b2757e72b517 farray.sh: The first preparations to allow arrays/alists as values in other arrays or alists
Franz Glasner <fzglas.hg@dom66.de>
parents: 718
diff changeset
430 $ check_no_alist_artifacts
726
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
431
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
432
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
433 Complex Debug
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
434 =============
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
435
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
436 $ falist_create LIST
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
437 $ falist_set LIST K1 V1
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
438 $ falist_create ITEM1 K11 V11 K22 V22
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
439 $ falist_set LIST K2 "$ITEM1"
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
440 $ falist_release ITEM1
726
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
441 $ falist_debug LIST
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
442 DEBUG: alist `LIST' has length 2
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
443 DEBUG: `K1' -> `V1'
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
444 DEBUG: `K2': -->
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
445 DEBUG: alist with token `[a-f0-9]+' has length 2 (re)
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
446 DEBUG: `K11' -> `V11'
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
447 DEBUG: `K22' -> `V22'
730
8f1583faf9ea farray.sh: Rename farray_destroy() to farray_release() and falist_destroy() to falist_release()
Franz Glasner <fzglas.hg@dom66.de>
parents: 729
diff changeset
448 $ falist_release LIST
726
23f6d2993fa2 farray.sh: Test the debug output and the destruction of complex objects.
Franz Glasner <fzglas.hg@dom66.de>
parents: 724
diff changeset
449 $ check_no_alist_artifacts