+
+
+ printf("\n--------- DHT ----------\n\n");
+
+ ston_dht dht;
+ elements = 500;
+ columns = 6;
+ dht = ston_dht32_new(columns, malloc, free);
+ check_dht(dht);
+ elements = 50000;
+ printf("Filling Dynamic hashtable with %i entries\n", (int)elements);
+ for(key = 0xCEED; elements--; key *= 7)
+ { val[0] = key;
+ for(i = 1; i < columns; i++)
+ val[i] = i * key;
+ ston_dht32_insertx(dht,key,val,0,columns);
+ }
+ elements = 50000;
+ printf("Reading entries: ");
+ fail = 0;
+ for(key = 0xCEED; elements--; key *= 7)
+ { htval = ston_dht32_row(dht,key);
+ if (*htval != key)
+ fail++;
+ for(i = 1; i < columns; i++)
+ if (htval[i] != (uint32_t)(i * key))
+ fail++;
+ }
+ if (fail)
+ printf(RED"FAIL"CLRC"(%i)\n", fail);
+ else
+ printf(GREEN"PASS"CLRCN);
+ max_capacity = 100000;
+ cap = max_capacity;
+ printf("Overfilling hashtable with %i entries\n", max_capacity);
+ for(key = 0xCEED2; cap--; key *= 13)
+ { val[0] = key;
+ for(i = 1; i < columns; i++)
+ val[i] = key * -i;
+ ston_dht32_insertx(dht,key,val,0,columns);
+ }
+ printf("Reading entries: ");
+ cap = max_capacity;
+ fail = 0;
+ for(key = 0xCEED2; cap--; key *= 13)
+ { htval = ston_dht32_row(dht,key);
+ if (*htval != key)
+ fail++;
+ for(i = 1; i < columns; i++)
+ if (htval[i] != (uint32_t)(key * -i))
+ fail++;
+ }
+ if (fail)
+ printf(RED"FAIL"CLRC"(%i)\n", fail);
+ else
+ printf(GREEN"PASS"CLRCN);
+
+ max_capacity = 5000000;
+ printf("Refilling hashtable with %i entries\n", max_capacity);
+ cap = max_capacity;
+ for(key = 0xCEED2; cap--; key *= 13)
+ { val[0] = key;
+ for(i = 1; i < columns; i++)
+ val[i] = key * i;
+ ston_dht32_insertx(dht,key,val,0,columns);
+ }
+ printf("Reading entries: ");
+ cap = max_capacity;
+ fail = 0;
+ for(key = 0xCEED2; cap--; key *= 13)
+ { htval = ston_dht32_row(dht,key);
+ if (*htval != key)
+ fail ++;
+ for (i = 1; i < columns; i++)
+ if (htval[i] != (uint32_t)(key * i))
+ fail++;
+ }
+ if (fail)
+ printf(RED"FAIL"CLRC"(%i)\n", fail);
+ else
+ printf(GREEN"PASS"CLRCN);
+
+ ston_dht_free(dht);
+