cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

check_openpf3.c (928B)


      1/* Basic file operations (rename, unlink); once without sysroot.  We
      2   also test that the simulator has chdir:ed to PREFIX, when defined.  */
      3
      4#include <stdio.h>
      5#include <stdlib.h>
      6#include <errno.h>
      7#include <sys/types.h>
      8#include <sys/stat.h>
      9#include <unistd.h>
     10
     11#ifndef PREFIX
     12#define PREFIX
     13#endif
     14
     15void err (const char *s)
     16{
     17  perror (s);
     18  abort ();
     19}
     20
     21int main (int argc, char *argv[])
     22{
     23  FILE *f;
     24  struct stat buf;
     25
     26  unlink (PREFIX "testfoo2.tmp");
     27
     28  f = fopen ("testfoo1.tmp", "w");
     29  if (f == NULL)
     30    err ("open");
     31  fclose (f);
     32
     33  if (rename (PREFIX "testfoo1.tmp", PREFIX "testfoo2.tmp") != 0)
     34    err ("rename");
     35
     36  if (stat (PREFIX "testfoo2.tmp", &buf) != 0
     37      || !S_ISREG (buf.st_mode))
     38    err ("stat 1");
     39
     40  if (stat ("testfoo2.tmp", &buf) != 0
     41      || !S_ISREG (buf.st_mode))
     42    err ("stat 2");
     43
     44  if (unlink (PREFIX "testfoo2.tmp") != 0)
     45    err ("unlink");
     46
     47  printf ("pass\n");
     48  return 0;
     49}