Beispiel #1
0
int main() {
    int dmtcp_enabled = dmtcp_is_enabled();
    if ( ! dmtcp_enabled ) {
      printf("\n *** dmtcp_is_enabled: executable seems to not be running"
             " under dmtcp_launch.\n\n");
    }

    int original_generation;
    if ( dmtcp_enabled ) {
      original_generation = dmtcp_get_generation();
    }


    int retval = dmtcp_checkpoint();
    if (retval == DMTCP_AFTER_CHECKPOINT) {
      // Wait long enough for checkpoint request to be written out.
      while (dmtcp_get_generation() == original_generation) {
        sleep(1);
    }

      printf("*** dmtcp_checkpoint: This program has now invoked a checkpoint.\n"
             "      It will resume its execution next.\n");
    } else if (retval == DMTCP_AFTER_RESTART) {
      printf("*** dmtcp_checkpoint: This program is now restarting.\n");
    } else if (retval == DMTCP_NOT_PRESENT) {
      printf(" *** dmtcp_checkpoint: DMTCP is not running."
             "  Skipping checkpoint.\n");
    }

    printf("\n*** Process done executing.  Successfully exiting.\n");
    if (retval == DMTCP_AFTER_CHECKPOINT) {
        printf("*** Execute ./dmtcp_restart_script.sh to restart.\n");
    }
    return 0;
}
Beispiel #2
0
int
main(int argc, char *argv[])
{
  if (dmtcp_is_enabled()) {
    printf("DMTCP is present\n");
  } else {
    printf("DMTCP is not present\n");
  }

  FILE *fp = fopen("/tmp/msg", "w");
  int counter = 0;

  while (1) {
    sleep(1);
    fprintf(fp, "Write counter value = %d to file\n", counter);
    fprintf(stdout, "Write counter value = %d to file\n", counter++);
    fflush(fp);

    if (counter == 5) {
      printf("Prior to dmtcp_checkpoint\n");
      int ret  = dmtcp_checkpoint();
      if (ret == DMTCP_NOT_PRESENT) {
        printf("Checkpoint not successful\n");
      } else if (ret == DMTCP_AFTER_CHECKPOINT){
        printf("Checkpoint successful \n");
        exit(0);
      } else if (ret == DMTCP_AFTER_RESTART) {
        printf("After restart \n");
      } else {
        printf("Unknown state... exiting now!\n");
        exit(-1);
      }
      fclose(fp);
      fp = fopen("/tmp/msg", "a");
    }

    if (counter == 10) {
      printf("Exiting now!\n");
      fclose(fp);
      if (truncate("/tmp/msg", 0) < 0) {
         perror("truncate: ");
         exit(-1);
      }
      exit(0);
    }
  }

  return 0;
}
Beispiel #3
0
int main(int argc, char *argv[]) {
  char *user = (char*)malloc(strlen(getenv("USER"))+1);
  strcpy(user, getenv("USER"));
  printf("These tests depend on dmtcp_env.txt in local directory.\n");

  int retval = dmtcp_checkpoint();
  switch (retval) {
  case DMTCP_NOT_PRESENT:
    printf(""" test.c:  Not launched under DMTCP.  Please try again.\n");
    return 1;
  case DMTCP_AFTER_CHECKPOINT:
    return 0;  // Continue upon restart
  case DMTCP_AFTER_RESTART:
    break;
  default:
    printf("*** test.c:  Internal error");
    return 1;
  }

  int newuser_len = strlen("new-")+strlen(getenv("HOME"))+1+strlen(user)+1;
  char *newuser = (char*)malloc(newuser_len);
  strcpy(newuser, "new-");
  strcpy(newuser+strlen(newuser), getenv("HOME"));
  strcpy(newuser+strlen(newuser), "-");
  strcpy(newuser+strlen(newuser), user);
  printf("getenv(\"HOME\"): %s\ngetenv(\"FOO\"): %s\ngetenv(\"USER\"): %s\n",
         getenv("HOME"), getenv("FOO"), getenv("USER"));
  if (getenv("EDITOR")) {
    printf("Failure!  EDITOR (was): %s; EDITOR (should be): NULL\n",
           getenv("EDITOR"));
    return 1;
  }
  if (strcmp(newuser, getenv("USER")) == 0) {
    printf("Success!\n");
    return 0;
  } else {
    printf("Failure!  USER (was): %s; USER (should be): %s\n",
           getenv("USER"), newuser);
    return 1;
  }
}