diff options
Diffstat (limited to 'packages/taler-harness/src')
-rw-r--r-- | packages/taler-harness/src/harness/harness.ts | 27 | ||||
-rw-r--r-- | packages/taler-harness/src/integrationtests/testrunner.ts | 2 |
2 files changed, 24 insertions, 5 deletions
diff --git a/packages/taler-harness/src/harness/harness.ts b/packages/taler-harness/src/harness/harness.ts index 5f90c8daf..5e993b95e 100644 --- a/packages/taler-harness/src/harness/harness.ts +++ b/packages/taler-harness/src/harness/harness.ts @@ -435,8 +435,20 @@ export interface DbInfo { dbname: string; } -export async function setupDb(t: GlobalTestState): Promise<DbInfo> { - const dbname = "taler-integrationtest"; +export interface SetupDbOpts { + nameSuffix?: string; +} + +export async function setupDb( + t: GlobalTestState, + opts: SetupDbOpts = {}, +): Promise<DbInfo> { + let dbname: string; + if (!opts.nameSuffix) { + dbname = "taler-integrationtest"; + } else { + dbname = `taler-integrationtest-${opts.nameSuffix}`; + } try { await runCommand(t, "dropdb", "dropdb", [dbname]); } catch (e: any) { @@ -479,11 +491,15 @@ export interface FakeBankConfig { httpPort: number; } -function setTalerPaths(config: Configuration, home: string) { +/** + * @param name additional component name, needed when launching multiple instances of the same component + */ +function setTalerPaths(config: Configuration, home: string, name?: string) { config.setString("paths", "taler_home", home); // We need to make sure that the path of taler_runtime_dir isn't too long, // as it contains unix domain sockets (108 character limit). - const runDir = fs.mkdtempSync("/tmp/taler-test-"); + const extraName = name != null ? `${name}-` : ""; + const runDir = fs.mkdtempSync(`/tmp/taler-test-${extraName}`); config.setString("paths", "taler_runtime_dir", runDir); config.setString( "paths", @@ -999,7 +1015,7 @@ export class ExchangeService implements ExchangeServiceInterface { static create(gc: GlobalTestState, e: ExchangeConfig) { const testDir = e.overrideTestDir ?? gc.testDir; const config = new Configuration(); - setTalerPaths(config, testDir + "/talerhome"); + setTalerPaths(config, `${testDir}/talerhome-exchange-${e.name}`, e.name); config.setString("taler", "currency", e.currency); // Required by the exchange but not really used yet. config.setString("exchange", "aml_threshold", `${e.currency}:1000000`); @@ -1024,6 +1040,7 @@ export class ExchangeService implements ExchangeServiceInterface { "master_priv_file", "${TALER_DATA_HOME}/exchange/offline-keys/master.priv", ); + config.setString("exchange", "base_url", `http://localhost:${e.httpPort}/`); config.setString("exchange", "serve", "tcp"); config.setString("exchange", "port", `${e.httpPort}`); diff --git a/packages/taler-harness/src/integrationtests/testrunner.ts b/packages/taler-harness/src/integrationtests/testrunner.ts index cf5691fe3..968204d78 100644 --- a/packages/taler-harness/src/integrationtests/testrunner.ts +++ b/packages/taler-harness/src/integrationtests/testrunner.ts @@ -93,6 +93,7 @@ import { runWithdrawalHugeTest } from "./test-withdrawal-huge.js"; import { runWithdrawalManualTest } from "./test-withdrawal-manual.js"; import { runWalletGenDbTest } from "./test-wallet-gendb.js"; import { runLibeufinBankTest } from "./test-libeufin-bank.js"; +import { runMultiExchangeTest } from "./test-multiexchange.js"; /** * Test runner. @@ -146,6 +147,7 @@ const allTests: TestMainFunction[] = [ runPaymentZeroTest, runPayPaidTest, runPeerRepairTest, + runMultiExchangeTest, runWalletBalanceTest, runPaywallFlowTest, runPeerToPeerPullTest, |