Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Postgres/src/test/regress/   (Postgres Database Version 18.4©)  Datei vom 11.4.2026 mit Größe 3 kB image not shown  

Quelle  pg_regress_main.c

  Sprache: C
 

/*-------------------------------------------------------------------------
 *
 * pg_regress_main --- regression test for the main backend
 *
 * This is a C implementation of the previous shell script for running
 * the regression tests, and should be mostly compatible with it.
 * Initial author of C translation: Magnus Hagander
 *
 * This code is released under the terms of the PostgreSQL License.
 *
 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
 * Portions Copyright (c) 1994, Regents of the University of California
 *
 * src/test/regress/pg_regress_main.c
 *
 *-------------------------------------------------------------------------
 */


#include "postgres_fe.h"

#include "lib/stringinfo.h"
#include "pg_regress.h"

/*
 * start a psql test process for specified file (including redirection),
 * and return process ID
 */

static PID_TYPE
psql_start_test(const char *testname,
    _stringlist **resultfiles,
    _stringlist **expectfiles,
    _stringlist **tags)
{
 PID_TYPE pid;
 char  infile[MAXPGPATH];
 char  outfile[MAXPGPATH];
 char  expectfile[MAXPGPATH];
 StringInfoData psql_cmd;
 char    *appnameenv;

 /*
  * Look for files in the output dir first, consistent with a vpath search.
  * This is mainly to create more reasonable error messages if the file is
  * not found.  It also allows local test overrides when running pg_regress
  * outside of the source tree.
 */

 snprintf(infile, sizeof(infile), "%s/sql/%s.sql",
    outputdir, testname);
 if (!file_exists(infile))
  snprintf(infile, sizeof(infile), "%s/sql/%s.sql",
     inputdir, testname);

 snprintf(outfile, sizeof(outfile), "%s/results/%s.out",
    outputdir, testname);

 snprintf(expectfile, sizeof(expectfile), "%s/expected/%s.out",
    expecteddir, testname);
 if (!file_exists(expectfile))
  snprintf(expectfile, sizeof(expectfile), "%s/expected/%s.out",
     inputdir, testname);

 add_stringlist_item(resultfiles, outfile);
 add_stringlist_item(expectfiles, expectfile);

 initStringInfo(&psql_cmd);

 if (launcher)
  appendStringInfo(&psql_cmd, "%s ", launcher);

 /*
  * Use HIDE_TABLEAM to hide different AMs to allow to use regression tests
  * against different AMs without unnecessary differences.
 */

 appendStringInfo(&psql_cmd,
      "\"%s%spsql\" -X -a -q -d \"%s\" %s < \"%s\" > \"%s\" 2>&1",
      bindir ? bindir : "",
      bindir ? "/" : "",
      dblist->str,
      "-v HIDE_TABLEAM=on -v HIDE_TOAST_COMPRESSION=on",
      infile,
      outfile);

 appnameenv = psprintf("pg_regress/%s", testname);
 setenv("PGAPPNAME", appnameenv, 1);
 free(appnameenv);

 pid = spawn_process(psql_cmd.data);

 if (pid == INVALID_PID)
 {
  fprintf(stderr, _("could not start process for test %s\n"),
    testname);
  exit(2);
 }

 unsetenv("PGAPPNAME");

 pfree(psql_cmd.data);

 return pid;
}

static void
psql_init(int argc, char **argv)
{
 /* set default regression database name */
 add_stringlist_item(&dblist, "regression");
}

int
main(int argc, char *argv[])
{
 return regression_main(argc, argv,
         psql_init,
         psql_start_test,
         NULL /* no postfunc needed */ );
}

Messung V0.5 in Prozent
C=92 H=92 G=91

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet am  2026-08-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.