github.com/gotranspile/cxgo@v0.3.8-0.20240118201721-29871598a6a2/libs/stdint_test.go (about)

     1  package libs
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/gotranspile/cxgo/types"
    10  )
    11  
    12  func TestStdInt(t *testing.T) {
    13  	c := NewEnv(types.Config32())
    14  	l, ok := c.GetLibrary(stdintH)
    15  	require.True(t, ok)
    16  	require.Equal(t, strings.TrimSpace(`#ifndef _cxgo_STDINT_H
    17  #define _cxgo_STDINT_H
    18  #include <cxgo_builtin.h>
    19  
    20  #define int8_t _cxgo_sint8
    21  #define int16_t _cxgo_sint16
    22  #define int32_t _cxgo_sint32
    23  #define int64_t _cxgo_sint64
    24  
    25  #define uint8_t _cxgo_uint8
    26  #define uint16_t _cxgo_uint16
    27  #define uint32_t _cxgo_uint32
    28  #define uint64_t _cxgo_uint64
    29  
    30  #define int_least8_t _cxgo_sint8
    31  #define int_least16_t _cxgo_sint16
    32  #define int_least32_t _cxgo_sint32
    33  #define int_least64_t _cxgo_sint64
    34  
    35  #define uint_least8_t _cxgo_uint8
    36  #define uint_least16_t _cxgo_uint16
    37  #define uint_least32_t _cxgo_uint32
    38  #define uint_least64_t _cxgo_uint64
    39  
    40  #define int_fast8_t _cxgo_sint8
    41  #define int_fast16_t _cxgo_sint16
    42  #define int_fast32_t _cxgo_sint32
    43  #define int_fast64_t _cxgo_sint64
    44  
    45  #define uint_fast8_t _cxgo_uint8
    46  #define uint_fast16_t _cxgo_uint16
    47  #define uint_fast32_t _cxgo_uint32
    48  #define uint_fast64_t _cxgo_uint64
    49  
    50  typedef _cxgo_sint32 intptr_t;
    51  typedef _cxgo_uint32 uintptr_t;
    52  
    53  typedef _cxgo_sint64 intmax_t;
    54  typedef _cxgo_uint64 uintmax_t;
    55  
    56  #define INT8_MIN -128
    57  #define INT8_MAX 127u
    58  #define UINT8_MAX 255u
    59  #define INT16_MIN -32768
    60  #define INT16_MAX 32767u
    61  #define UINT16_MAX 65535u
    62  #define INT32_MIN -2147483648
    63  #define INT32_MAX 2147483647u
    64  #define UINT32_MAX 4294967295u
    65  #define INT64_MIN -9223372036854775808
    66  #define INT64_MAX 9223372036854775807u
    67  #define UINT64_MAX 18446744073709551615u
    68  
    69  #define INT_LEAST8_MIN -128
    70  #define INT_LEAST8_MAX 127u
    71  #define UINT_LEAST8_MAX 255u
    72  #define INT_LEAST16_MIN -32768
    73  #define INT_LEAST16_MAX 32767u
    74  #define UINT_LEAST16_MAX 65535u
    75  #define INT_LEAST32_MIN -2147483648
    76  #define INT_LEAST32_MAX 2147483647u
    77  #define UINT_LEAST32_MAX 4294967295u
    78  #define INT_LEAST64_MIN -9223372036854775808
    79  #define INT_LEAST64_MAX 9223372036854775807u
    80  #define UINT_LEAST64_MAX 18446744073709551615u
    81  
    82  #define INT_FAST8_MIN -128
    83  #define INT_FAST8_MAX 127u
    84  #define UINT_FAST8_MAX 255u
    85  #define INT_FAST16_MIN -32768
    86  #define INT_FAST16_MAX 32767u
    87  #define UINT_FAST16_MAX 65535u
    88  #define INT_FAST32_MIN -2147483648
    89  #define INT_FAST32_MAX 2147483647u
    90  #define UINT_FAST32_MAX 4294967295u
    91  #define INT_FAST64_MIN -9223372036854775808
    92  #define INT_FAST64_MAX 9223372036854775807u
    93  #define UINT_FAST64_MAX 18446744073709551615u
    94  
    95  #define INTPTR_MIN -2147483648
    96  #define INTPTR_MAX 2147483647u
    97  #define UINTPTR_MAX 4294967295u
    98  
    99  #define INTMAX_MIN -9223372036854775808
   100  #define INTMAX_MAX 9223372036854775807u
   101  #define UINTMAX_MAX 18446744073709551615u
   102  
   103  #define PTRDIFF_MIN -2147483648
   104  #define PTRDIFF_MAX 2147483647u
   105  
   106  #define SIZE_MAX 4294967295u
   107  
   108  #define WCHAR_MIN 0
   109  #define WCHAR_MAX 65535u
   110  
   111  #define WINT_MIN 0
   112  #define WINT_MAX 4294967295u
   113  
   114  
   115  
   116  #endif // _cxgo_STDINT_H
   117  `), strings.TrimSpace(l.Header))
   118  }