On 11/25/2014 12:21 PM, Alexandru Badicioiu wrote:

    > +
    > +/*
    > + * This test verifies that HW random number generator is able
    > + * to produce an IV for TDES_CBC cipher algorithm.
    > + * */
    > +#define RNG_GET_SIZE   "RNG_GET_SIZE"
    > +static void rng_get_size(void)
    > +{
    > +       int ret;
    > +       size_t len = TDES_CBC_IV_LEN;
    > +       uint8_t buf[TDES_CBC_IV_LEN];
    > +
    > +       ret = odp_hw_random_get(buf, &len, false);
    > +       CU_ASSERT(!ret);
    > +       CU_ASSERT(len == TDES_CBC_IV_LEN);
    > +}
    > +
    > +CU_TestInfo test_rng[] = {
    > +       { RNG_GET_SIZE, rng_get_size },
    > +       CU_TEST_INFO_NULL,

    Size of test_rng is defined as a size of one in the header but is size
    of two elements here.

[Alex] CUnit does not use the declared size of the array  - I guess this
is the purpose of the end marker (CU_TEST_INFO_NULL). Declaring a
pointer only it will not compile :
odp_crypto.c:23:2: error: initializer element is not constant
odp_crypto.c:23:2: error: (near initialization for 'suites[2].pTests')
odp_crypto.c:23:2: error: missing initializer
[-Werror=missing-field-initializers]
odp_crypto.c:23:2: error: (near initialization for 'suites[2].pTests')
[-Werror=missing-field-initializers]
Trying to declare the array as flexible will not work either
(CU_TestInfo test_rng[];):
In file included from odp_crypto.c:12:0:
./crypto/odp_crypto_test_rng.h:15:13: error: array 'test_rng' assumed to
have one element [-Werror]
cc1: all warnings being treated as errors
This is the reason I used 1 as the declared size of the array.

This should work:
extern CU_TestInfo test_rng[];

    > +
    > +#endif
    > +
    > diff --git a/test/validation/crypto/test_vectors.h 
b/test/validation/crypto/test_vectors.h
    > index c151952..aaf0103 100644
    > --- a/test/validation/crypto/test_vectors.h
    > +++ b/test/validation/crypto/test_vectors.h
    > @@ -13,7 +13,7 @@
    >  #define TDES_CBC_IV_LEN                8       /* IV length(in bytes) 
for tdes-cbc */
    >  #define TDES_CBC_MAX_DATA_LEN  16      /* max. plain text length(in 
bytes) */
    >
    > -static uint8_t tdes_cbc_reference_key[][TDES_CBC_KEY_LEN] = {
    > +static uint8_t tdes_cbc_reference_key[][TDES_CBC_KEY_LEN] ODP_UNUSED

    Not sure why this is flagged unused it appears to be used in
    crypto/odp_crypto_test_async_inp.c and
    crypto/odp_crypto_test_sync_inp.c

[Alex] These are static declaration, as such they are reported unused in
test_rng.c file where they are unused. To avoid unused, they should be
moved to a .c file and only be declared in test_vectors.h.

That's a hacky solution. You can split these structures into a separate
.h and not include them in RNG tests.

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to