Commit 278ea24a authored by Dan Fandrich's avatar Dan Fandrich
Browse files

unit1602: Fixed failure in torture test

parent 1f82df91
Loading
Loading
Loading
Loading
+23 −24
Original line number Diff line number Diff line
@@ -28,53 +28,52 @@

#include "memdebug.h" /* LAST include file */

 static CURLcode unit_setup( void )
static struct curl_hash hash_static;

static void mydtor(void *p)
{
  return CURLE_OK;
  int *ptr = (int*)p;
  free(ptr);
}

static void unit_stop( void )
static CURLcode unit_setup( void )
{

  return Curl_hash_init(&hash_static, 7, Curl_hash_str,
                        Curl_str_key_compare, mydtor);
}

static void mydtor(void *p)
static void unit_stop( void )
{
  int *ptr = (int*)p;
  free(ptr);
  Curl_hash_destroy(&hash_static);
}

UNITTEST_START
  int *value;
  int *value2;
  int *nodep;
  size_t klen = sizeof(int);

  struct curl_hash hash_static;
  int key = 20;
  int key2 = 25;
  int rc = 0;

  rc = Curl_hash_init(&hash_static, 7, Curl_hash_str,
                        Curl_str_key_compare, mydtor);

  if(rc)
  {
    fail("Curl_hash_init failed to initialize static hash!");
    goto unit_test_abort;
  }

  value = malloc(sizeof(int));
  value2 = malloc(sizeof(int));

  abort_unless(value != NULL, "Out of memory");
  *value = 199;
  *value2 = 204;
  Curl_hash_add(&hash_static, &key, klen, value);
  nodep = Curl_hash_add(&hash_static, &key, klen, value);
  if(!nodep)
    free(value);
  abort_unless(nodep, "insertion into hash failed");
  
  Curl_hash_clean(&hash_static);

  /* Attempt to add another key/value pair */
  Curl_hash_add(&hash_static, &key2, klen, value2);

  Curl_hash_destroy(&hash_static);
  value2 = malloc(sizeof(int));
  abort_unless(value2 != NULL, "Out of memory");
  *value2 = 204;
  nodep = Curl_hash_add(&hash_static, &key2, klen, value2);
  if(!nodep)
    free(value2);
  abort_unless(nodep, "insertion into hash failed");

UNITTEST_STOP