1 | //
|
---|
2 | // Cforall Version 1.0.0 Copyright (C) 2023 University of Waterloo
|
---|
3 | //
|
---|
4 | // The contents of this file are covered under the licence agreement in the
|
---|
5 | // file "LICENCE" distributed with Cforall.
|
---|
6 | //
|
---|
7 | // boxed.cases.hfa -- tables of test cases for the "array boxed" test
|
---|
8 | //
|
---|
9 | // Author : Mike Brooks
|
---|
10 | // Created On : Thu Jul 25 17:00:00 2024
|
---|
11 | // Last Modified By :
|
---|
12 | // Last Modified On :
|
---|
13 | // Update Count :
|
---|
14 | //
|
---|
15 |
|
---|
16 | // See general test documentation in boxed.main.cfa.
|
---|
17 |
|
---|
18 | /*
|
---|
19 | This pair of tables summarizes the handwritten functions of .main.cfa, for automatically wrapping and calling them.
|
---|
20 |
|
---|
21 | TR test rig one handwritten function and its stack of generated wrappers
|
---|
22 | - TRID test rig identifier (primary key)
|
---|
23 | - SZS sizing style how the array's length (in number of elements) is given
|
---|
24 | - NSTAT static number of elements generated code hardcodes the array length; the outputted C VLA accommodates only varying-sized T
|
---|
25 | - NDYN dynamic number of elements generated code uses a parameter for the length; represents a VLA apparent to the CFA programmer
|
---|
26 | - SZV sizing value concrete size of the test case, except for (TR, NDYN), which has the parameter name
|
---|
27 | - ETG element type generator how the array's element type relates to T
|
---|
28 | - ID identity array is of T
|
---|
29 | - PAIR pair array is of pair(T,T)
|
---|
30 | - ACCS access style how the access-side code sees the elements
|
---|
31 | - BUF buffer accessor is working directly with the declared array (buffer) variable
|
---|
32 | - RAII RAII accessor is a constructor/destructor pair
|
---|
33 | - PFST pointer to first element accessor is in a support function, who receives the array as parameter T x[]
|
---|
34 | - PARR pointer to array accessor is in a support function, who receives the array as parameter T (*x)[length]
|
---|
35 | - SPS support polymorphism style when passing the array to a support (helper) function, how the call uses type variables and assertions
|
---|
36 | - NA not applicable the rig does not use a support function
|
---|
37 | - PPD poly-poly direct polymorphic calls polymorphic, directly (C-style name lookup)
|
---|
38 | - PPA poly-poly assertion polymorphic calls polymorphic, via assertion
|
---|
39 | - PMA poly-mono assertion polymorphic calls monomorphic, via assertion
|
---|
40 | - MPD mono-poly direct monomorphic calls polymorphic, directly (C-style name lookup)
|
---|
41 | - OVLD overloading type type of pointer returned from the function (wrapper), lets caller
|
---|
42 | TC test case one call to (the stack of wrappers of) a handwritten function
|
---|
43 | - TRID test rig identifier (primary key, pseudo foreign key)
|
---|
44 | - TCID test case identifier (primary key)
|
---|
45 | - SZS sizing style (duplicate, join result)
|
---|
46 | - SZV sizing value (duplicate, join result), except for TC under TR NDYN, which has concrete size of the test case
|
---|
47 | - ETG element type generator (duplicate, join result)
|
---|
48 | - VART varying type type to use for T in this call
|
---|
49 | */
|
---|
50 |
|
---|
51 | // #define TR( TRID, SZS, SZV, ETG, ACCS, SPS, OVLD )
|
---|
52 | // #define TC( TRID, TCID, SZS, SZV, ETG, VART )
|
---|
53 |
|
---|
54 | TR( 1, NSTAT, 1, ID, BUF, NA, T )
|
---|
55 | TC( 1, a, NSTAT, 1, ID, short )
|
---|
56 | TC( 1, b, NSTAT, 1, ID, bigun )
|
---|
57 |
|
---|
58 | TR( 2, NSTAT, 42, ID, BUF, NA, T )
|
---|
59 | TC( 2, a, NSTAT, 42, ID, char )
|
---|
60 | TC( 2, b, NSTAT, 42, ID, float )
|
---|
61 | TC( 2, c, NSTAT, 42, ID, long long )
|
---|
62 | TC( 2, d, NSTAT, 42, ID, bigun )
|
---|
63 |
|
---|
64 | TR( 3, NDYN, n, ID, BUF, NA, T )
|
---|
65 | TC( 3, a, NDYN, 1, ID, int )
|
---|
66 | TC( 3, b, NDYN, 42, ID, int )
|
---|
67 | TC( 3, c, NDYN, 1, ID, bigun )
|
---|
68 | TC( 3, d, NDYN, 42, ID, bigun )
|
---|
69 |
|
---|
70 | TR( 4, NSTAT, 42, ID, BUF, NA, T )
|
---|
71 | TC( 4, a, NSTAT, 42, ID, char )
|
---|
72 | TC( 4, b, NSTAT, 42, ID, bigun )
|
---|
73 |
|
---|
74 | TR( 5, NSTAT, 42, PAIR, BUF, NA, T )
|
---|
75 | TC( 5, a, NSTAT, 42, PAIR, double )
|
---|
76 | TC( 5, b, NSTAT, 42, PAIR, bigun )
|
---|
77 |
|
---|
78 | TR( 6, NSTAT, 42, ID, RAII, NA, T )
|
---|
79 | TC( 6, a, NSTAT, 42, ID, my_mgd_t )
|
---|
80 |
|
---|
81 | TR( 7, NSTAT, 42, ID, PFST, PPD, T )
|
---|
82 | TC( 7, a, NSTAT, 42, ID, char )
|
---|
83 | TC( 7, b, NSTAT, 42, ID, float )
|
---|
84 | TC( 7, c, NSTAT, 42, ID, long long )
|
---|
85 | TC( 7, d, NSTAT, 42, ID, bigun )
|
---|
86 |
|
---|
87 | TR( 8, NSTAT, 42, ID, PARR, PPD, T )
|
---|
88 | TC( 8, a, NSTAT, 42, ID, double )
|
---|
89 |
|
---|
90 | TR( 9, NSTAT, 42, ID, PFST, PPA, T )
|
---|
91 | TC( 9, a, NSTAT, 42, ID, char )
|
---|
92 | TC( 9, b, NSTAT, 42, ID, float )
|
---|
93 | TC( 9, c, NSTAT, 42, ID, long long )
|
---|
94 | TC( 9, d, NSTAT, 42, ID, bigun )
|
---|
95 |
|
---|
96 | TR( 10, NSTAT, 42, ID, PARR, PPA, T )
|
---|
97 | TC( 10, a, NSTAT, 42, ID, double )
|
---|
98 |
|
---|
99 | TR( 11, NSTAT, 42, ID, PFST, PMA, T )
|
---|
100 | TC( 11, a, NSTAT, 42, ID, char )
|
---|
101 | TC( 11, b, NSTAT, 42, ID, bigun )
|
---|
102 |
|
---|
103 | TR( 12, NSTAT, 42, ID, PARR, PMA, T )
|
---|
104 | TC( 12, a, NSTAT, 42, ID, double )
|
---|
105 |
|
---|
106 | TR( 13, NSTAT, 42, ID, PFST, MPD, char ) // overload 1
|
---|
107 | TR( 13, NSTAT, 42, ID, PFST, MPD, bigun ) // overload 2
|
---|
108 | TC( 13, a, NSTAT, 42, ID, char )
|
---|
109 | TC( 13, b, NSTAT, 42, ID, bigun )
|
---|
110 |
|
---|
111 | TR( 14, NSTAT, 42, ID, PARR, MPD, double )
|
---|
112 | TC( 14, a, NSTAT, 42, ID, double )
|
---|
113 |
|
---|
114 | TR( 15, NSTAT, 42, ID, PFST, PPD, T )
|
---|
115 | TC( 15, a, NSTAT, 42, ID, char )
|
---|
116 | TC( 15, b, NSTAT, 42, ID, bigun )
|
---|