00001 #include "config.h" 00002 00003 #include <cassert> 00004 00005 #include "asserts.h" 00006 #include "types.h" 00007 00008 void test_u8(void) 00009 { 00010 uint8 u8 = 0; 00011 uint8 u8_old = 0; 00012 unsigned int c = 0; 00013 00014 u8 = 1; 00015 for (c = 0; u8 != u8_old; c++) { 00016 u8_old = u8; 00017 u8 <<= 1; 00018 u8 |= 1; 00019 } 00020 00021 assert(c == 8); 00022 } 00023 00024 void test_u16(void) 00025 { 00026 uint16 u16 = 0; 00027 uint16 u16_old = 0; 00028 unsigned int c = 0; 00029 00030 u16 = 1; 00031 for (c = 0; u16 != u16_old; c++) { 00032 u16_old = u16; 00033 u16 <<= 1; 00034 u16 |= 1; 00035 } 00036 00037 assert(c == 16); 00038 } 00039 00040 void test_u32(void) 00041 { 00042 uint32 u32 = 0; 00043 uint32 u32_old = 0; 00044 unsigned int c = 0; 00045 00046 u32 = 1; 00047 for (c = 0; u32 != u32_old; c++) { 00048 u32_old = u32; 00049 u32 <<= 1; 00050 u32 |= 1; 00051 } 00052 00053 assert(c == 32); 00054 } 00055 00056 void test_u64(void) 00057 { 00058 uint64 u64 = 0; 00059 uint64 u64_old = 0; 00060 unsigned int c = 0; 00061 00062 u64 = 1; 00063 for (c = 0; u64 != u64_old; c++) { 00064 u64_old = u64; 00065 u64 <<= 1; 00066 u64 |= 1; 00067 } 00068 00069 assert(c == 64); 00070 } 00071 00072 int main(int argc, char* argv[]) 00073 { 00074 test_u8(); 00075 test_u16(); 00076 test_u32(); 00077 test_u64(); 00078 return(0); 00079 }