/usr/lib/eso-midas/17FEB/test/os/osmtest.c is in eso-midas-testdata 17.02pl1.2-2build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | /* @(#)osmtest.c 19.1 (ES0-DMD) 02/25/03 14:33:05 */
/*===========================================================================
Copyright (C) 1995 European Southern Observatory (ESO)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 2 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program; if not, write to the Free
Software Foundation, Inc., 675 Massachusetss Ave, Cambridge,
MA 02139, USA.
Corresponding concerning ESO-MIDAS should be addressed as follows:
Internet e-mail: midas@eso.org
Postal address: European Southern Observatory
Data Management Division
Karl-Schwarzschild-Strasse 2
D 85748 Garching bei Muenchen
GERMANY
===========================================================================*/
#include <stdio.h>
#include <osparms.h>
#define errmess(x) { fprintf(stderr,x); }
#define errexit(x) { fprintf(stderr,x); ospexit(1); }
#define LARGE 1000000L
#define PIECE 500000L
/*#define SMALL 200L*/
#define SMALL 200000L
#define LARGEFILE "osm_lg_file"
#define MODEA 0666
main()
{
long osfcreate();
int osmopen(),osmclose(),osmunmap(); long osmmap();
int testfile; long numbytes; char *map;
int osmalloc(),osmcontrol(),osmfree();
int ospcreate();
int osmshget(),osmshrel();
int testmem;
/* mapping */
/* printf("A\n"); */
if(osfcreate(LARGEFILE,LARGE,MODEA)!=LARGE )
errexit("Osfcreate BAD on a new file\n");
/* printf("B\n"); */
if((testfile=osmopen(LARGEFILE,READ_WRITE))== -1)
errexit("Osmopen BAD on read/write\n");
/* printf("C\n"); */
/* if((numbytes=osmmap(testfile,&map,PIECE,0L,IPC_CREAT))!=PIECE) */
if((numbytes=osmmap(testfile,&map,PIECE,0L,PRIVATE))!=PIECE)
errexit("Osmmap BAD\n");
*(map+PIECE/2)== 'a';
/* printf("D\n"); */
if(osmunmap(testfile,map)== -1)
errmess("Osmunmap BAD\n");
/* printf("E\n"); */
if(osmclose(testfile)== -1)
errmess("Osmclose BAD\n");
/* normal memory allocation */
printf("F\n");
if(osmalloc(&map,SMALL)== -1)
errexit("Osmalloc BAD\n");
*(map+SMALL/2)== 'a';
printf("G\n");
if(osmcontrol(map,SMALL,0)== -1)
errmess("Osmcontrol BAD\n");
/* printf("H\n"); */
if(osmfree(map)== -1)
errmess("Osmfree BAD\n");
/* shared memory ops */
/* printf("I\n"); */
if(ospcreate("osmtest1","proc1",1,-1,-1)== -1)
printf("Ospcreate for background BAD\n");
sleep(3);
/* printf("J\n"); */
/* if((testmem=osmshget(getpid(),PIECE,&map,IPC_CREAT))==-1) */
if((testmem=osmshget(getpid(),PIECE,&map))==-1)
errexit("Osmshget BAD in main (osmtest)\n");
*(map+PIECE/2)== 'a';
/* printf("K\n"); */
if(osmshrel(testmem,map)== -1)
errmess("Osmshrel BAD\n");
ospexit(0);
}
|