int htoli(int in)/*{{{*/ { #ifdef _BIG_ENDIAN_ return l2i((char*)&in); #else return in; #endif }
int main() { T_t ti; memset(&ti, 0, sizeof(ti)); ul2i(&ti.unsigned33, 0); ul2i(&ti.unsigned42, 0); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, 0); verify(1, &ti); ul2i(&ti.unsigned33, 1); ul2i(&ti.unsigned42, 1); l2i(&ti.signed33, 1); l2i(&ti.signed33ext, 1); verify(2, &ti); ul2i(&ti.unsigned33, 5000000000); ul2i(&ti.unsigned42, 3153600000000); l2i(&ti.signed33, 4000000000); l2i(&ti.signed33ext, 4000000000); verify(3, &ti); ul2i(&ti.unsigned33, -1); ul2i(&ti.unsigned42, 0); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, 0); NO_encode(4, &ti); ul2i(&ti.unsigned33, 0); ul2i(&ti.unsigned42, -1); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, 0); NO_encode(5, &ti); ul2i(&ti.unsigned33, 0); ul2i(&ti.unsigned42, 0); l2i(&ti.signed33, -4000000000-1); l2i(&ti.signed33ext, 0); NO_encode(6, &ti); ul2i(&ti.unsigned33, 0); ul2i(&ti.unsigned42, 0); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, -4000000000-1); assert(ti.signed33ext.size == 5); verify(7, &ti); /* signed33ext is extensible */ ul2i(&ti.unsigned33, 5000000000 + 1); ul2i(&ti.unsigned42, 0); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, 0); NO_encode(8, &ti); ul2i(&ti.unsigned33, 0); ul2i(&ti.unsigned42, 3153600000000 + 1); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, 0); NO_encode(9, &ti); ul2i(&ti.unsigned33, 5000000000 - 1); ul2i(&ti.unsigned42, 3153600000000 - 1); l2i(&ti.signed33, 4000000000 - 1); l2i(&ti.signed33ext, 4000000000 - 1); verify(10, &ti); ul2i(&ti.unsigned33, 0); ul2i(&ti.unsigned42, 0); l2i(&ti.signed33, 0); l2i(&ti.signed33ext, 4000000000 + 1); verify(11, &ti); return 0; }