pivot table procedure conceptually works
[pspp] / tests / libpspp / range-set-test.c
index 03dfb3189e18db2af7798ba1d94fead53e3ec2e7..c7a89176e68e996dfe34110d785f7da5e2ebd112 100644 (file)
@@ -1,5 +1,5 @@
 /* PSPP - a program for statistical analysis.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -163,8 +163,7 @@ print_regions (const struct range_set *rs)
   const struct range_set_node *node;
 
   printf ("result:");
-  for (node = range_set_first (rs); node != NULL;
-       node = range_set_next (rs, node))
+  RANGE_SET_FOR_EACH (node, rs)
     printf (" (%lu,%lu)",
             range_set_node_get_start (node), range_set_node_get_end (node));
   printf ("\n");
@@ -254,7 +253,7 @@ make_pattern (unsigned int pattern)
   unsigned long int width = 0;
   struct range_set *rs = range_set_create_pool (NULL);
   while (next_region (pattern, start + width, &start, &width))
-    range_set_insert (rs, start, width);
+    range_set_set1 (rs, start, width);
   check_pattern (rs, pattern);
   return rs;
 }
@@ -280,6 +279,12 @@ test_insert (void)
   unsigned int init_pat;
   int i, j;
 
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 2 && __llvm__
+  /* This test seems to trigger a bug in llvm-gcc 4.2 on Mac OS X 10.8.0.
+     Exit code 77 tells the Autotest framework that the test was skipped. */
+  exit (77);
+#endif
+
   for (init_pat = 0; init_pat < (1u << positions); init_pat++)
     for (i = 0; i < positions + 1; i++)
       for (j = i; j <= positions + 1; j++)
@@ -288,7 +293,7 @@ test_insert (void)
           unsigned int final_pat;
 
           rs = make_pattern (init_pat);
-          range_set_insert (rs, i, j - i);
+          range_set_set1 (rs, i, j - i);
           final_pat = init_pat | bit_range (i, j - i);
           check_pattern (rs, final_pat);
           rs2 = range_set_clone (rs, NULL);
@@ -307,6 +312,12 @@ test_delete (void)
   unsigned int init_pat;
   int i, j;
 
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 2 && __llvm__
+  /* This test seems to trigger a bug in llvm-gcc 4.2 on Mac OS X 10.8.0.
+     Exit code 77 tells the Autotest framework that the test was skipped. */
+  exit (77);
+#endif
+
   for (init_pat = 0; init_pat < (1u << positions); init_pat++)
     for (i = 0; i < positions + 1; i++)
       for (j = i; j <= positions + 1; j++)
@@ -315,7 +326,7 @@ test_delete (void)
           unsigned int final_pat;
 
           rs = make_pattern (init_pat);
-          range_set_delete (rs, i, j - i);
+          range_set_set0 (rs, i, j - i);
           final_pat = init_pat & ~bit_range (i, j - i);
           check_pattern (rs, final_pat);
           range_set_destroy (rs);
@@ -331,6 +342,12 @@ test_allocate (void)
   unsigned int init_pat;
   int request;
 
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 2 && __llvm__
+  /* This test seems to trigger a bug in llvm-gcc 4.2 on Mac OS X 10.8.0.
+     Exit code 77 tells the Autotest framework that the test was skipped. */
+  exit (77);
+#endif
+
   for (init_pat = 0; init_pat < (1u << positions); init_pat++)
     for (request = 1; request <= positions + 1; request++)
       {
@@ -381,6 +398,12 @@ test_allocate_fully (void)
   unsigned int init_pat;
   int request;
 
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 2 && __llvm__
+  /* This test seems to trigger a bug in llvm-gcc 4.2 on Mac OS X 10.8.0.
+     Exit code 77 tells the Autotest framework that the test was skipped. */
+  exit (77);
+#endif
+
   for (init_pat = 0; init_pat < (1u << positions); init_pat++)
     for (request = 1; request <= positions + 1; request++)
       {
@@ -437,7 +460,7 @@ test_pool (void)
      Makes sure that this doesn't cause a double-free. */
   pool = pool_create ();
   rs = range_set_create_pool (pool);
-  range_set_insert (rs, 1, 10);
+  range_set_set1 (rs, 1, 10);
   range_set_destroy (rs);
   pool_destroy (pool);
 
@@ -445,7 +468,7 @@ test_pool (void)
      Makes sure that this doesn't cause a leak. */
   pool = pool_create ();
   rs = range_set_create_pool (pool);
-  range_set_insert (rs, 1, 10);
+  range_set_set1 (rs, 1, 10);
   pool_destroy (pool);
 }