示例#1
0
void setup()
    {
    create_logfile();

    ops_crypto_init();

    // Create temp directory
    if (!mktmpdir())
        return;

    assert(strlen(dir));
    snprintf(gpgcmd, sizeof gpgcmd,
	     "gpg --quiet --no-tty --homedir=%s --openpgp", dir);

    setup_test_keys();
    setup_test_extra_dsa_keys();
    setup_test_keyptrs();

    }
示例#2
0
文件: test6.c 项目: JHUAPL/kvspool
/******************************************************************************
 * the test itself
 *****************************************************************************/
int main(int argc, char *argv[]) {

  char *dir = mktmpdir();

  void *sp = kv_spoolwriter_new(dir);
  if (!sp) exit(-1);

  void *set = kv_set_new();
  kv_adds(set, "hello", "again");
  kv_adds(set, "second", "life");
  kv_spool_write(sp,set);

  /* scan spool to validate expected file creation */
  scan_spool(0);

  /* replace a value in the set, spool the set out. it should append
   * to the spool file previously created. */
  printf("spooling second frame\n");
  kv_adds(set, "second", "time");
  kv_spool_write(sp,set);
  kv_spoolwriter_free(sp);

  /* verify spool has updated according to expectation */
  scan_spool(0);

  printf("clear set\n");
  kv_set_clear(set);
  /* loop over them */
  kv_t *kv = NULL;
  while ( (kv = kv_next(set, kv))) {
    printf("key [%.*s], val [%.*s]\n", kv->klen, kv->key, kv->vlen, kv->val);
  }

  printf("reading from spool\n");
  /* now try reading the spool */
  sp = kv_spoolreader_new(dir);
  int rc;
  while ( (rc=kv_spool_read(sp, set, 0)) == 1) {
    printf("reader read frame:\n");
    kv = NULL;
    while ( (kv = kv_next(set, kv))) {
      printf(" key [%.*s], val [%.*s]\n", kv->klen, kv->key, kv->vlen, kv->val);
    }
  }
  printf("kv_spool_read returned %d\n", rc);
  kv_spoolreader_free(sp);

  /* now reset it and read again */
  printf("resetting the spool directory for another round of reading\n");
  sp_reset(dir);
  sp = kv_spoolreader_new(dir);
  while ( (rc=kv_spool_read(sp, set, 0)) == 1) {
    printf("reader read frame:\n");
    kv = NULL;
    while ( (kv = kv_next(set, kv))) {
      printf(" key [%.*s], val [%.*s]\n", kv->klen, kv->key, kv->vlen, kv->val);
    }
  }
  printf("kv_spool_read returned %d\n", rc);
  kv_spoolreader_free(sp);

  kv_set_free(set);
  scan_spool(1);
  return 0;
}
示例#3
0
文件: mcc.c 项目: JamesLinus/mcc
int main(int argc, char **argv)
{
    int ret = EXIT_SUCCESS;
    const char *tmpdir;
    size_t fails = 0;

    progname = argv[0];
    setup_sys();
    init_env();
    parse_opts(argc, argv);

    bool partial = opts.E || opts.ast_dump || opts.ir_dump || opts.S || opts.c;

    if (argc == 1) {
        usage();
        return EXIT_SUCCESS;
    } else if (vec_len(inputs) == 0) {
        fprintf(stderr, "no input file.\n");
        return EXIT_FAILURE;
    } else if (output && vec_len(inputs) > 1 && partial) {
        fprintf(stderr,
                "mcc: cannot specify -o when generating multiple output files\n");
        return EXIT_FAILURE;
    }

    if (!(tmpdir = mktmpdir()))
        die("Can't make temporary directory.");

    struct vector *objects = vec_new();

    for (int i = 0; i < vec_len(inputs); i++) {
        const char *ifile = vec_at(inputs, i);
        const char *iname = basename(xstrdup(ifile));
        const char *ofile = NULL;
        int ret;
        if (opts.E || opts.ast_dump || opts.ir_dump) {
            if (output)
                ofile = output;
            ret = translate(ifile, ofile);
        } else if (opts.S) {
            if (output)
                ofile = output;
            else
                ofile = replace_suffix(iname, "s");
            ret = translate(ifile, ofile);
        } else if (opts.c) {
            if (output)
                ofile = output;
            else
                ofile = replace_suffix(iname, "o");
            const char *sfile =
                tempname(tmpdir, replace_suffix(ifile, "s"));
            ret = translate(ifile, sfile);
            if (ret == 0)
                ret = assemble(sfile, ofile);
        } else {
            const char *sfile =
                tempname(tmpdir, replace_suffix(ifile, "s"));
            ret = translate(ifile, sfile);
            if (ret == 0) {
                ofile =
                    tempname(tmpdir,
                             replace_suffix(ifile, "o"));
                ret = assemble(sfile, ofile);
                vec_push(objects, (char *)ofile);
            }
        }
        if (ret == EXIT_FAILURE)
            fails++;
    }

    if (fails) {
        ret = EXIT_FAILURE;
        fprintf(stderr, "%lu succeed, %lu failed.\n",
                vec_len(inputs) - fails, fails);
    } else if (!partial) {
        // link
        ret = link(objects, output, opts.ld_options);
    }

    if (tmpdir)
        rmdir(tmpdir);
    return ret;
}
示例#4
0
 std::string tmpdir(const char *prefix)
 {
   return mktmpdir(prefix);
 }