Mercurial > hgrepos > FreeBSD > ports > sysutils > local-bsdtools
annotate tests/testsetup.sh @ 796:e48d173534ec
fports: Implement "fports detail" to print the status of all given packages in the most detail possible
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Thu, 31 Oct 2024 14:42:51 +0100 |
| parents | bae0652d0577 |
| children |
| rev | line source |
|---|---|
|
583
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
1 #!/bin/sh |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
2 # |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
3 # Test helpers for the shell unittests using cram. |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
4 # |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
5 |
|
758
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
6 |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
7 #: |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
8 #: Set some directories to temporary values for inclusion of test configuration |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
9 #: files. |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
10 #: |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
11 CONFIGDIR="${TESTDIR}/etc" |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
12 PACKAGE_MAPPING="${CONFIGDIR}/package-mapping.conf" |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
13 |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
14 |
|
583
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
15 #: |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
16 #: Check that no global variables that hold any array storage are left. |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
17 #: |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
18 #: Returns: |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
19 #: int: 0 if no unexpected storage is left, 1 otherwise |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
20 #: |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
21 check_no_array_artifacts() { |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
22 # _farr_A_ is the storage prefix for arrays |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
23 if set | grep -E -e '^_farr_A_.*='; then |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
24 return 1 |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
25 else |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
26 return 0 |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
27 fi |
|
55c024c809ca
Begin unittests for farray.sh using "cram"
Franz Glasner <fzglas.hg@dom66.de>
parents:
diff
changeset
|
28 } |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
29 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
30 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
31 #: |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
32 #: Check that no global variables that hold any alist storage are left. |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
33 #: |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
34 #: Returns: |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
35 #: int: 0 if no unexpected storage is left, 1 otherwise |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
36 #: |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
37 check_no_alist_artifacts() { |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
38 # This are all _farr_alist_XXX_prefix variables |
|
756
33df05108ba1
farray.sh: New implementation alists: searching is done using a binary search now while preserving insertion order.
Franz Glasner <fzglas.hg@dom66.de>
parents:
604
diff
changeset
|
39 if set | grep -E -e '^_farr_KV_.*=' -e '^_farr_Kb_.*=' -e '^_farr_Ks_.*=' -e '^_farr_Vs_.*='; then |
|
604
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
40 return 1 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
41 else |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
42 return 0 |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
43 fi |
|
45c47bc1f7d2
farray.sh: Moved all currently existing tests for alists into cram tests.
Franz Glasner <fzglas.hg@dom66.de>
parents:
583
diff
changeset
|
44 } |
|
758
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
45 |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
46 |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
47 #: |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
48 #: Check that no local variables are globally visible. |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
49 #: |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
50 #: Because all local variables have the ``__farr_`` prefix it can easily |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
51 #: checked that no forgotten "local" declarations exist. |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
52 #: |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
53 check_no_local_artifacts() { |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
54 if set | grep -E -e '^__farr.*='; then |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
55 return 1 |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
56 else |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
57 return 0 |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
58 fi |
|
7ead30e3b2f9
farray.sh: Check for typos in local variable names or missing "local" declarations for variables
Franz Glasner <fzglas.hg@dom66.de>
parents:
756
diff
changeset
|
59 } |
|
773
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
60 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
61 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
62 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
63 #: Create an new array with random entries. |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
64 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
65 #: Args: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
66 #: $1 (str): The variable name of the array where to store the |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
67 #: $2 (int): The number of array entries |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
68 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
69 #: Input (Globals): |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
70 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
71 create_random_array() { |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
72 # $1 $2 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
73 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
74 local _arr _n |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
75 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
76 farray_create _arr |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
77 for _n in $(/usr/bin/jot -r "${2}" 100000000 999999999); do |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
78 farray_append _arr "${_n}" |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
79 done |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
80 setvar "${1}" "${_arr}" |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
81 } |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
82 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
83 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
84 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
85 #: Check that an array is sorted |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
86 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
87 #: Args: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
88 #: $1 (str): The array |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
89 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
90 #: Returns: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
91 #: int: 0 (truthy) if the array `$1` is sorted, 1 otherwise |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
92 #: |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
93 check_array_is_sorted() { |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
94 # $1 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
95 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
96 local i len prev_item cur_item |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
97 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
98 farray_length len "$1" |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
99 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
100 [ "${len}" -le 1 ] && return 0 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
101 farray_get prev_item "$1" 1 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
102 i=2 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
103 while [ "${i}" -le "${len}" ]; do |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
104 farray_get cur_item "$1" "${i}" |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
105 [ "${prev_item}" '>' "${cur_item}" ] && return 1 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
106 prev_item="${cur_item}" |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
107 i=$((i + 1)) |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
108 done |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
109 return 0 |
|
bae0652d0577
farray.sh: More tests for sorting: using a random array
Franz Glasner <fzglas.hg@dom66.de>
parents:
758
diff
changeset
|
110 } |
