AL: Use IKVM.Reflection to get custom attributes from the template assembly,
[mono.git] / eglib / test / sizes.c
index 771848ce3a6704ecfe394adf5efdaf6d4cca3bae..06ed8a5af2bf14830e95f61a5f4dea23f42034c0 100644 (file)
@@ -4,7 +4,9 @@
  * These depend on -Werror, -Wall being set to catch the build error.
  */
 #include <stdio.h>
+#ifndef _MSC_VER
 #include <stdint.h>
+#endif
 #include <string.h>
 #include <glib.h>
 #include "test.h"
@@ -58,30 +60,48 @@ test_ptrconv ()
                return FAILED ("int to pointer and back conversions fail %d != %d", iv, iv2);
 
        uv = 0;
-       ptr = GUINT_TO_POINTER (iv);
+       ptr = GUINT_TO_POINTER (uv);
        uv2 = GPOINTER_TO_UINT (ptr);
-       if (iv != iv2)
-               return FAILED ("uint to pointer and back conversions fail %u != %d", iv, iv2);
+       if (uv != uv2)
+               return FAILED ("uint to pointer and back conversions fail %u != %d", uv, uv2);
        
        uv = 1;
-       ptr = GUINT_TO_POINTER (iv);
+       ptr = GUINT_TO_POINTER (uv);
        uv2 = GPOINTER_TO_UINT (ptr);
-       if (iv != iv2)
-               return FAILED ("uint to pointer and back conversions fail %u != %d", iv, iv2);
+       if (uv != uv2)
+               return FAILED ("uint to pointer and back conversions fail %u != %d", uv, uv2);
 
        uv = UINT32_MAX;
-       ptr = GUINT_TO_POINTER (iv);
+       ptr = GUINT_TO_POINTER (uv);
        uv2 = GPOINTER_TO_UINT (ptr);
-       if (iv != iv2)
-               return FAILED ("uint to pointer and back conversions fail %u != %d", iv, iv2);
+       if (uv != uv2)
+               return FAILED ("uint to pointer and back conversions fail %u != %d", uv, uv2);
 
        return NULL;
        
 }
 
+typedef struct {
+       int a;
+       int b;
+} my_struct;
+
+RESULT
+test_offset ()
+{
+       if (G_STRUCT_OFFSET (my_struct, a) != 0)
+               return FAILED ("offset of a is not zero");
+       
+       if (G_STRUCT_OFFSET (my_struct, b) != 4 && G_STRUCT_OFFSET (my_struct, b) != 8)
+               return FAILED ("offset of b is 4 or 8, macro might be busted");
+
+       return OK;
+}
+
 static Test size_tests [] = {
        {"formats", test_formats},
        {"ptrconv", test_ptrconv},
+       {"g_struct_offset", test_offset},
        {NULL, NULL}
 };