|  | /*************************************************************************** | 
|  | * Copyright 1995, Technion, Israel Institute of Technology | 
|  | * Electrical Eng, Software Lab. | 
|  | * Author:    Michael Veksler. | 
|  | *************************************************************************** | 
|  | * File:      dde_mem_test.c | 
|  | * Purpose :  test shared DDE memory functionality for DDE | 
|  | * Usage:     Look for assertion failures | 
|  | *************************************************************************** | 
|  | */ | 
|  | #include <stdio.h> | 
|  | #include <assert.h> | 
|  | #include <win.h> | 
|  | #include "dde_mem.h" | 
|  | /* stub */ | 
|  |  | 
|  | void ATOM_GlobalInit() | 
|  | { | 
|  | printf("ATOM_GlobalInit\n"); | 
|  | } | 
|  |  | 
|  |  | 
|  | int main() | 
|  | { | 
|  | HWND h1,h2,h3; | 
|  | int ret; | 
|  | void *p1,*p2,*p3,*p; | 
|  | SHMDATA shmdata; | 
|  |  | 
|  | /* alloc h1, h2, h3 */ | 
|  |  | 
|  | setbuf(stdout,NULL); | 
|  | p1=DDE_malloc(GMEM_DDESHARE, 0x6000, &shmdata); | 
|  | h1= shmdata.handle; | 
|  | assert(p1 != NULL); | 
|  | assert(h1 != 0); | 
|  | p2=DDE_malloc(GMEM_DDESHARE, 0xff00, &shmdata); | 
|  | h2= shmdata.handle; | 
|  | assert(p2 != NULL); | 
|  | assert(h2 != 0); | 
|  | p3=DDE_malloc(GMEM_DDESHARE, 0x6000, &shmdata); | 
|  | h3= shmdata.handle; | 
|  | assert(p3 != 0); | 
|  | assert(h3 != 0); | 
|  |  | 
|  | /* lock h1, h2, h3 */ | 
|  | p=DDE_AttachHandle(h1,NULL); | 
|  | assert(p1==p); | 
|  | p=DDE_AttachHandle(h2,NULL); | 
|  | assert(p2==p); | 
|  | p=DDE_AttachHandle(h3,NULL); | 
|  | assert(p3==p); | 
|  |  | 
|  |  | 
|  |  | 
|  | ret=DDE_GlobalFree(h1); | 
|  | assert(ret==0); | 
|  | /* do some implementation dependant tests */ | 
|  | p=DDE_malloc(GMEM_DDESHARE, 0x6000, &shmdata); | 
|  | assert(p!=NULL); | 
|  | assert(shmdata.handle==h1); | 
|  | p=DDE_AttachHandle(h1,NULL); | 
|  | assert(p1==p); | 
|  |  | 
|  | /* check freeing */ | 
|  | ret=DDE_GlobalFree(h1); | 
|  | assert(ret==0); | 
|  | ret=DDE_GlobalFree(h2); | 
|  | assert(ret==0); | 
|  | ret=DDE_GlobalFree(h3); | 
|  | assert(ret==0); | 
|  | return 0; | 
|  | } |