LCOV - code coverage report
Current view: directory - src/trusted/nacl_base - nacl_min_max_test.c (source / functions) Found Hit Coverage
Test: coverage.lcov Lines: 36 34 94.4 %
Date: 2014-09-25 Functions: 0 0 -

       1                 : /*
       2                 :  * Copyright (c) 2011 The Native Client Authors. All rights reserved.
       3                 :  * Use of this source code is governed by a BSD-style license that can be
       4                 :  * found in the LICENSE file.
       5                 :  */
       6                 : 
       7                 : #include <stdio.h>
       8                 : 
       9                 : #include "native_client/src/include/portability.h"
      10                 : #include "native_client/src/include/nacl_macros.h"
      11                 : 
      12               2 : int main(void) {
      13               2 :   int num_errors = 0;
      14                 : 
      15                 : #define TEST(T, M, V, fmt) do {                                \
      16                 :     printf("%s: expect %" fmt "\n", #T, (T) V);                \
      17                 :     if (M(T) != V) {                                           \
      18                 :       printf("Error: " #M " is %" fmt ", expected %" fmt "\n", \
      19                 :              M(T), (T) V);                                     \
      20                 :       ++num_errors;                                            \
      21                 :     } else {                                                   \
      22                 :       printf("OK\n");                                          \
      23                 :     }                                                          \
      24                 :   } while (0)
      25                 : 
      26               2 :   TEST(uint8_t, NACL_UMAX_VAL, 255, NACL_PRIu8);
      27               2 :   TEST(int8_t, NACL_MAX_VAL, 127, NACL_PRId8);
      28               2 :   TEST(uint16_t, NACL_UMAX_VAL, 65535, NACL_PRIu16);
      29               2 :   TEST(int16_t, NACL_MAX_VAL, 32767, NACL_PRId16);
      30               2 :   TEST(uint32_t, NACL_UMAX_VAL, 4294967295U, NACL_PRIu32);
      31               2 :   TEST(int32_t, NACL_MAX_VAL,  2147483647, NACL_PRId32);
      32                 :   TEST(uint64_t, NACL_UMAX_VAL, (uint64_t) 18446744073709551615ULL,
      33               2 :        NACL_PRIu64);
      34                 :   TEST(int64_t, NACL_MAX_VAL, (int64_t) 9223372036854775807LL,
      35               2 :        NACL_PRId64);
      36                 : 
      37               2 :   TEST(uint8_t, NACL_UMIN_VAL, 0, NACL_PRIu8);
      38               2 :   TEST(int8_t, NACL_MIN_VAL, -128, NACL_PRId8);
      39               2 :   TEST(uint16_t, NACL_UMIN_VAL, 0, NACL_PRIu16);
      40               2 :   TEST(int16_t, NACL_MIN_VAL, -32768, NACL_PRId16);
      41               2 :   TEST(uint32_t, NACL_UMIN_VAL, 0, NACL_PRIu32);
      42               2 :   TEST(int32_t, NACL_MIN_VAL,  (-1 + (int32_t) -2147483647), NACL_PRId32);
      43               2 :   TEST(uint64_t, NACL_UMIN_VAL, (uint64_t) 0, NACL_PRIu64);
      44                 :   TEST(int64_t, NACL_MIN_VAL, (-1 + (int64_t) -9223372036854775807LL),
      45               2 :        NACL_PRId64);
      46                 : #undef TEST
      47                 : 
      48                 :   /* port_win and/or local system defns */
      49                 : #define TEST(T, MAX_VAL_MACRO,EXPECTED_VALUE, FMT) do {  \
      50                 :     printf("expected %" FMT ", actual %" FMT "\n",    \
      51                 :            (T) EXPECTED_VALUE, (T) MAX_VAL_MACRO);    \
      52                 :     if (EXPECTED_VALUE != MAX_VAL_MACRO) {            \
      53                 :       ++num_errors;                                   \
      54                 :       printf("Error\n");                              \
      55                 :     } else {                                          \
      56                 :       printf("OK\n");                                 \
      57                 :     }                                                 \
      58                 :   } while (0)
      59                 : 
      60               2 :   TEST(uint8_t, UINT8_MAX, 255, NACL_PRIu8);
      61                 : 
      62               2 :   TEST(int8_t, INT8_MAX, 127, NACL_PRId8);
      63               2 :   TEST(int8_t, INT8_MIN, -128, NACL_PRId8);
      64                 : 
      65               2 :   TEST(uint16_t, UINT16_MAX, 65535, NACL_PRIu16);
      66                 : 
      67               2 :   TEST(int16_t, INT16_MAX, 32767, NACL_PRId16);
      68               2 :   TEST(int16_t, INT16_MIN, -32768, NACL_PRId16);
      69                 : 
      70               2 :   TEST(uint32_t, UINT32_MAX, 4294967295U, NACL_PRIu32);
      71                 : 
      72               2 :   TEST(int32_t, INT32_MAX, 2147483647, NACL_PRId32);
      73               2 :   TEST(int32_t, INT32_MIN, -2147483647-1, NACL_PRId32);
      74                 : 
      75               2 :   TEST(uint64_t, UINT64_MAX, (uint64_t) 18446744073709551615ULL, NACL_PRIu64);
      76                 : 
      77               2 :   TEST(int64_t, INT64_MAX, (int64_t) 9223372036854775807LL, NACL_PRId64);
      78               2 :   TEST(int64_t, INT64_MIN, (int64_t) -9223372036854775807LL-1, NACL_PRId64);
      79                 : 
      80               2 :   if (0 != num_errors) {
      81               0 :     printf("FAILED\n");
      82               0 :   } else {
      83               2 :     printf("PASSED\n");
      84                 :   }
      85               2 :   return num_errors;
      86               2 : }

Generated by: LCOV version 1.7