Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make sure dict work when data is NULL
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 15 Feb 2005 16:03:53 +0000 (16:03 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 15 Feb 2005 16:03:53 +0000 (16:03 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@1025 48e7efb5-ca39-0410-a469-dd3cf9ba447f

testsuite/xbt/dict_usage.c

index b7bd396..e521ca8 100644 (file)
@@ -60,6 +60,8 @@ static xbt_error_t search(xbt_dict_t head,const char*key) {
   
   errcode=xbt_dict_get(head,key,&data);
   printf("   - Search %s. Found %s\n",key,data?(char*)data:"(null)");fflush(stdout);
   
   errcode=xbt_dict_get(head,key,&data);
   printf("   - Search %s. Found %s\n",key,data?(char*)data:"(null)");fflush(stdout);
+  if (!data)
+     return errcode;
   if (strcmp((char*)data,key)) 
     return mismatch_error;
   return errcode;
   if (strcmp((char*)data,key)) 
     return mismatch_error;
   return errcode;
@@ -108,6 +110,11 @@ int main(int argc,char **argv) {
   
   fill(&head);
 
   
   fill(&head);
 
+  printf(" - Test that it works with NULL data\n");
+  printf("   - Store NULL under 'null'\n");
+  xbt_dict_set(head,"null",NULL,NULL);
+  TRYFAIL(search(head,"null"));
+   
   printf(" - Change some values\n");
   printf("   - Change 123 to 'Changed 123'\n");
   xbt_dict_set(head,"123",strdup("Changed 123"),&free);
   printf(" - Change some values\n");
   printf("   - Change 123 to 'Changed 123'\n");
   xbt_dict_set(head,"123",strdup("Changed 123"),&free);