| /*************************************************************************** | |
| * 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; | |
| } |