| /*************************************************************************** |
| * Copyright 1995, Technion, Israel Institute of Technology |
| * Electrical Eng, Software Lab. |
| * Author: Michael Veksler. |
| *************************************************************************** |
| * File: dde_atom_test.c |
| * Purpose : tests for dde_atom object |
| *************************************************************************** |
| */ |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <win.h> |
| #include "dde_atom.h" |
| #include "shm_main_blk.h" |
| #include <stddebug.h> |
| #include <debug.h> |
| #define TOGETHER (DDE_ATOMS/5) |
| |
| |
| /* run random sequences */ |
| int main() |
| { |
| ATOM atom_list[TOGETHER]; |
| char str[TOGETHER][80]; |
| int i,j,atom_n; |
| int atom_len[TOGETHER]; |
| |
| debugging_shm=1; |
| debugging_atom=0; |
| debugging_sem=0; |
| |
| for (i=0 ; i<=10000/TOGETHER ; i++) { |
| for (atom_n=0 ; atom_n<TOGETHER ; atom_n++) { |
| atom_len[atom_n]=rand()%64+1; |
| for (j=atom_len[atom_n]-1; j>=0; j--) |
| do { |
| str[atom_n][j]=(char)(rand()%255+1); |
| } while (j==0 && str[atom_n][j]=='#'); |
| |
| str[atom_n][ atom_len[atom_n] ]='\0'; |
| |
| atom_list[atom_n]=GlobalAddAtom(str[atom_n]); |
| |
| if (atom_list[atom_n]==0) { |
| fprintf(stderr,"failed i=%d, atom_n=%d\n",i,atom_n); |
| return 1; |
| } |
| if (atom_list[atom_n]!=GlobalAddAtom(str[atom_n])) { |
| fprintf(stderr, |
| "wrong second GlobalAddAtom(\"%s\")\n", str[atom_n]); |
| return 1; |
| } |
| } /* for */ |
| for (atom_n=0 ; atom_n<TOGETHER ; atom_n++) { |
| char buf[80]; |
| int len; |
| |
| len=GlobalGetAtomName( atom_list[atom_n], buf, 79); |
| if (atom_len[atom_n] != len) { |
| fprintf(stderr, "i=%d, atom_n=%d; ", i, atom_n); |
| fprintf(stderr, |
| "wrong length of GlobalGetAtomName(\"%s\")\n", |
| str[atom_n]); |
| |
| return 1; |
| } |
| |
| } |
| for (atom_n=0 ; atom_n<TOGETHER ; atom_n++) { |
| GlobalDeleteAtom(atom_list[atom_n]); |
| if (atom_list[atom_n]!=GlobalAddAtom(str[atom_n])) { |
| fprintf(stderr, "i=%d, atom_n=%d; ", i, atom_n); |
| fprintf(stderr, |
| "wrong third GlobalAddAtom(\"%s\")\n", str[atom_n]); |
| return 1; |
| } |
| GlobalDeleteAtom(atom_list[atom_n]); |
| GlobalDeleteAtom(atom_list[atom_n]); |
| |
| atom_list[atom_n]=GlobalAddAtom(str[atom_n]); |
| if (atom_list[atom_n]!=GlobalAddAtom(str[atom_n])) { |
| fprintf(stderr, |
| "i=%d, atom_n=%d wrong fifth GlobalAddAtom(\"%s\")\n", |
| i, atom_n, |
| str[atom_n]); |
| return 1; |
| } |
| GlobalDeleteAtom(atom_list[atom_n]); |
| if (atom_list[atom_n]!=GlobalFindAtom(str[atom_n])) { |
| fprintf(stderr, |
| "i=%d, atom_n=%d wrong GlobalFindAtom(\"%s\")\n", |
| i, atom_n, |
| str[atom_n]); |
| return 1; |
| } |
| GlobalDeleteAtom(atom_list[atom_n]); |
| } |
| } |
| return 0; |
| } |