| [fd4df379] | 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     ) | 
|---|