gnunet-svn
[Top][All Lists]
Advanced

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

[taler-wallet-core] branch master updated: payment stress test


From: gnunet
Subject: [taler-wallet-core] branch master updated: payment stress test
Date: Thu, 06 Aug 2020 12:22:40 +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 aff906b1 payment stress test
aff906b1 is described below

commit aff906b13656349b09e9cbfd1a5af1300797f595
Author: Florian Dold <florian.dold@gmail.com>
AuthorDate: Thu Aug 6 15:52:35 2020 +0530

    payment stress test
---
 packages/taler-integrationtests/src/harness.ts | 66 ++++++++++++++++++--------
 1 file changed, 45 insertions(+), 21 deletions(-)

diff --git a/packages/taler-integrationtests/src/harness.ts 
b/packages/taler-integrationtests/src/harness.ts
index 14fa2071..b5df741e 100644
--- a/packages/taler-integrationtests/src/harness.ts
+++ b/packages/taler-integrationtests/src/harness.ts
@@ -40,7 +40,12 @@ import {
 import { URL } from "url";
 import axios from "axios";
 import { talerCrypto, time } from "taler-wallet-core";
-import { codecForMerchantOrderPrivateStatusResponse, 
codecForPostOrderResponse, PostOrderRequest, PostOrderResponse } from 
"./merchantApiTypes";
+import {
+  codecForMerchantOrderPrivateStatusResponse,
+  codecForPostOrderResponse,
+  PostOrderRequest,
+  PostOrderResponse,
+} from "./merchantApiTypes";
 
 const exec = util.promisify(require("child_process").exec);
 
@@ -144,7 +149,7 @@ const coinCommon = {
   rsaKeySize: 1024,
 };
 
-const coin_ct1 = (curr: string): CoinConfig => ({
+export const coin_ct1 = (curr: string): CoinConfig => ({
   ...coinCommon,
   name: `${curr}_ct1`,
   value: `${curr}:0.01`,
@@ -154,7 +159,7 @@ const coin_ct1 = (curr: string): CoinConfig => ({
   feeWithdraw: `${curr}:0.01`,
 });
 
-const coin_ct10 = (curr: string): CoinConfig => ({
+export const coin_ct10 = (curr: string): CoinConfig => ({
   ...coinCommon,
   name: `${curr}_ct10`,
   value: `${curr}:0.10`,
@@ -164,7 +169,7 @@ const coin_ct10 = (curr: string): CoinConfig => ({
   feeWithdraw: `${curr}:0.01`,
 });
 
-const coin_u1 = (curr: string): CoinConfig => ({
+export const coin_u1 = (curr: string): CoinConfig => ({
   ...coinCommon,
   name: `${curr}_u1`,
   value: `${curr}:1`,
@@ -174,7 +179,7 @@ const coin_u1 = (curr: string): CoinConfig => ({
   feeWithdraw: `${curr}:0.02`,
 });
 
-const coin_u2 = (curr: string): CoinConfig => ({
+export const coin_u2 = (curr: string): CoinConfig => ({
   ...coinCommon,
   name: `${curr}_u2`,
   value: `${curr}:2`,
@@ -184,7 +189,7 @@ const coin_u2 = (curr: string): CoinConfig => ({
   feeWithdraw: `${curr}:0.02`,
 });
 
-const coin_u4 = (curr: string): CoinConfig => ({
+export const coin_u4 = (curr: string): CoinConfig => ({
   ...coinCommon,
   name: `${curr}_u4`,
   value: `${curr}:4`,
@@ -194,7 +199,7 @@ const coin_u4 = (curr: string): CoinConfig => ({
   feeWithdraw: `${curr}:0.02`,
 });
 
-const coin_u8 = (curr: string): CoinConfig => ({
+export const coin_u8 = (curr: string): CoinConfig => ({
   ...coinCommon,
   name: `${curr}_u8`,
   value: `${curr}:8`,
@@ -282,10 +287,17 @@ export class GlobalTestState {
   }
 
   spawnService(command: string, logName: string): ProcessWrapper {
+    console.log("spawning process", command);
     const proc = spawn(command, {
       shell: true,
       stdio: ["inherit", "pipe", "pipe"],
     });
+    proc.on("error", (err) => {
+      console.log(`could not start process (${command})`, err);
+    });
+    proc.on("exit", (code, signal) => {
+      console.log(`process ${logName} exited`);
+    });
     const stderrLogFileName = this.testDir + `/${logName}-stderr.log`;
     const stderrLog = fs.createWriteStream(stderrLogFileName, {
       flags: "a",
@@ -510,12 +522,23 @@ const codecForWithdrawalOperationInfo = (): codec.Codec<
     .property("taler_withdraw_uri", codec.codecForString)
     .build("WithdrawalOperationInfo");
 
+export const defaultCoinConfig = [
+  coin_ct1,
+  coin_ct10,
+  coin_u1,
+  coin_u10,
+  coin_u2,
+  coin_u4,
+  coin_u8,
+];
+
 export interface ExchangeConfig {
   name: string;
   currency: string;
   roundUnit?: string;
   httpPort: number;
   database: string;
+  coinConfig?: ((curr: string) => CoinConfig)[];
 }
 
 export interface ExchangeServiceInterface {
@@ -576,13 +599,9 @@ export class ExchangeService implements 
ExchangeServiceInterface {
 
     config.setString("exchangedb-postgres", "config", e.database);
 
-    setCoin(config, coin_ct1(e.currency));
-    setCoin(config, coin_ct10(e.currency));
-    setCoin(config, coin_u1(e.currency));
-    setCoin(config, coin_u2(e.currency));
-    setCoin(config, coin_u4(e.currency));
-    setCoin(config, coin_u8(e.currency));
-    setCoin(config, coin_u10(e.currency));
+    const coinConfig = e.coinConfig ?? defaultCoinConfig;
+
+    coinConfig.forEach((cc) => setCoin(config, cc(e.currency)));
 
     const exchangeMasterKey = talerCrypto.createEddsaKeyPair();
 
@@ -725,7 +744,7 @@ export class MerchantService {
     await exec(`taler-merchant-dbinit -c "${this.configFilename}"`);
 
     this.proc = this.globalState.spawnService(
-      `taler-merchant-httpd -c "${this.configFilename}"`,
+      `taler-merchant-httpd -LINFO -c "${this.configFilename}"`,
       `merchant-${this.merchantConfig.name}`,
     );
   }
@@ -737,12 +756,15 @@ export class MerchantService {
     const config = new Configuration();
     config.setString("taler", "currency", mc.currency);
 
+    const cfgFilename = gc.testDir + `/merchant-${mc.name}.conf`;
+    setPaths(config, gc.testDir + "/talerhome");
     config.setString("merchant", "serve", "tcp");
     config.setString("merchant", "port", `${mc.httpPort}`);
-    config.setString("merchant", "db", "postgres");
-    config.setString("exchangedb-postgres", "config", mc.database);
-
-    const cfgFilename = gc.testDir + `/merchant-${mc.name}.conf`;
+    config.setString(
+      "merchant",
+      "keyfile",
+      "${TALER_DATA_HOME}/merchant/merchant.priv",
+    );
     config.write(cfgFilename);
 
     return new MerchantService(gc, mc, cfgFilename);
@@ -794,7 +816,7 @@ export class MerchantService {
   async queryPrivateOrderStatus(instanceName: string, orderId: string) {
     let url;
     if (instanceName === "default") {
-      url = 
`http://localhost:${this.merchantConfig.httpPort}/private/orders/${orderId}`
+      url = 
`http://localhost:${this.merchantConfig.httpPort}/private/orders/${orderId}`;
     } else {
       url = 
`http://localhost:${this.merchantConfig.httpPort}/instances/${instanceName}/private/orders/${orderId}`;
     }
@@ -897,7 +919,9 @@ export class WalletCli {
 
   async runUntilDone(): Promise<void> {
     const wdb = this.globalTestState.testDir + "/walletdb.json";
-    await sh(`taler-wallet-cli --no-throttle --wallet-db ${wdb} 
run-until-done`);
+    await sh(
+      `taler-wallet-cli --no-throttle --wallet-db ${wdb} run-until-done`,
+    );
   }
 
   async runPending(): Promise<void> {

-- 
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]