gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-wallet-core] branch master updated: taler-harness: clean up share


From: gnunet
Subject: [taler-wallet-core] branch master updated: taler-harness: clean up shared test env on start
Date: Tue, 29 Aug 2023 10:16:20 +0200

This is an automated email from the git hooks/post-receive script.

dold pushed a commit to branch master
in repository wallet-core.

The following commit(s) were added to refs/heads/master by this push:
     new 9402aeef5 taler-harness: clean up shared test env on start
9402aeef5 is described below

commit 9402aeef5b111c3a9bf51a7b204044ba19de8607
Author: Florian Dold <florian@dold.me>
AuthorDate: Tue Aug 29 10:16:18 2023 +0200

    taler-harness: clean up shared test env on start
---
 packages/taler-harness/src/harness/helpers.ts      | 13 +++++----
 .../src/integrationtests/testrunner.ts             | 33 ++++++++++++++++++++++
 2 files changed, 41 insertions(+), 5 deletions(-)

diff --git a/packages/taler-harness/src/harness/helpers.ts 
b/packages/taler-harness/src/harness/helpers.ts
index d41ffdd00..d1d0ea104 100644
--- a/packages/taler-harness/src/harness/helpers.ts
+++ b/packages/taler-harness/src/harness/helpers.ts
@@ -215,10 +215,14 @@ export async function createSimpleTestkudosEnvironment(
   };
 }
 
+export function getSharedTestDir(): string {
+  return `/tmp/taler-harness@${process.env.USER}`;
+}
+
 export async function useSharedTestkudosEnvironment(t: GlobalTestState) {
   const coinConfig: CoinConfig[] = defaultCoinConfig.map((x) => 
x("TESTKUDOS"));
 
-  const sharedDir = `/tmp/taler-harness@${process.env.USER}`;
+  const sharedDir = getSharedTestDir();
 
   fs.mkdirSync(sharedDir, { recursive: true });
 
@@ -230,10 +234,9 @@ export async function useSharedTestkudosEnvironment(t: 
GlobalTestState) {
 
   logger.info(`previous setup done: ${prevSetupDone}`);
 
-
   // Wallet has longer startup-time and no dependencies,
   // so we start it rather early.
-  const walletStartProm = createWalletDaemonWithClient(t, { name: "wallet" })
+  const walletStartProm = createWalletDaemonWithClient(t, { name: "wallet" });
 
   if (fs.existsSync(sharedDir + "/bank.conf")) {
     logger.info("reusing existing bank");
@@ -361,7 +364,7 @@ export async function useSharedTestkudosEnvironment(t: 
GlobalTestState) {
     }
   };
 
-  await bankStart()
+  await bankStart();
 
   const res = await Promise.all([
     exchangeStart(),
@@ -803,7 +806,7 @@ export async function applyTimeTravel(
 
 /**
  * Make a simple payment and check that it succeeded.
- * 
+ *
  * @deprecated
  */
 export async function makeTestPayment(
diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts 
b/packages/taler-harness/src/integrationtests/testrunner.ts
index 226fd6b09..501af98a4 100644
--- a/packages/taler-harness/src/integrationtests/testrunner.ts
+++ b/packages/taler-harness/src/integrationtests/testrunner.ts
@@ -27,10 +27,12 @@ import * as path from "path";
 import url from "url";
 import {
   GlobalTestState,
+  runCommand,
   runTestWithState,
   shouldLingerInTest,
   TestRunResult,
 } from "../harness/harness.js";
+import { spawnSync } from "child_process";
 import { runAgeRestrictionsMerchantTest } from 
"./test-age-restrictions-merchant.js";
 import { runBankApiTest } from "./test-bank-api.js";
 import { runClaimLoopTest } from "./test-claim-loop.js";
@@ -111,6 +113,7 @@ import { runPaymentShareTest } from 
"./test-payment-share.js";
 import { runSimplePaymentTest } from "./test-simple-payment.js";
 import { runTermOfServiceFormatTest } from "./test-tos-format.js";
 import { runExchangePurseTest } from "./test-exchange-purse.js";
+import { getSharedTestDir } from "../harness/helpers.js";
 
 /**
  * Test runner.
@@ -264,7 +267,37 @@ interface RunTestChildInstruction {
   testRootDir: string;
 }
 
+function purgeSharedTestEnvironment() {
+  const rmRes = spawnSync("rm", ["-rf", `${getSharedTestDir()}`]);
+  if (rmRes.status != 0) {
+    logger.warn("can't delete shared test directory");
+  }
+  const psqlRes = spawnSync("psql", ["-Aqtl"], {
+    encoding: "utf-8",
+  });
+  if (psqlRes.status != 0) {
+    logger.warn("could not list available postgres databases");
+    return;
+  }
+  if (psqlRes.output[1]!!.indexOf("taler-integrationtest-shared") >= 0) {
+    const dropRes = spawnSync("dropdb", ["taler-integrationtest-shared"], {
+      encoding: "utf-8",
+    });
+    if (dropRes.status != 0) {
+      logger.warn("could not drop taler-integrationtest-shared database");
+      return;
+    }
+  }
+}
+
 export async function runTests(spec: TestRunSpec) {
+  if (!process.env.TALER_HARNESS_KEEP) {
+    logger.info("purging shared test environment");
+    purgeSharedTestEnvironment();
+  } else {
+    logger.info("keeping shared test environment");
+  }
+
   const testRootDir = fs.mkdtempSync(
     path.join(os.tmpdir(), "taler-integrationtests-"),
   );

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]