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 : }
|