aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/interfaces/ecpg/test/test_thread.pgc20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/interfaces/ecpg/test/test_thread.pgc b/src/interfaces/ecpg/test/test_thread.pgc
index 5fc649a091c..900438b862c 100644
--- a/src/interfaces/ecpg/test/test_thread.pgc
+++ b/src/interfaces/ecpg/test/test_thread.pgc
@@ -5,12 +5,14 @@
#include <pthread.h>
+#include <stdlib.h>
void ins1(void);
void ins2(void);
EXEC SQL BEGIN DECLARE SECTION;
char *dbname;
+int iterations = 10;
EXEC SQL END DECLARE SECTION;
int
@@ -22,13 +24,21 @@ EXEC SQL BEGIN DECLARE SECTION;
int rows;
EXEC SQL END DECLARE SECTION;
- if (argc != 2)
+ if (argc < 2 || argc > 3)
{
- fprintf(stderr, "Usage: %s dbname\n", argv[0]);
+ fprintf(stderr, "Usage: %s dbname [iterations]\n", argv[0]);
return 1;
}
dbname = argv[1];
+ if (argc == 3)
+ iterations = atoi(argv[2]);
+ if (iterations % 2 != 0)
+ {
+ fprintf(stderr, "iterations must be an even number\n");
+ return 1;
+ }
+
EXEC SQL CONNECT TO:dbname AS test0;
/* DROP might fail */
@@ -47,7 +57,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL AT test3 COMMIT WORK;
EXEC SQL DISCONNECT test3;
- if (rows == 10)
+ if (rows == iterations)
printf("Success.\n");
else
printf("Failure.\n");
@@ -61,7 +71,7 @@ ins1(void)
EXEC SQL WHENEVER sqlerror sqlprint;
EXEC SQL CONNECT TO:dbname AS test1;
- for (i = 0; i < 5; i++)
+ for (i = 0; i < iterations / 2; i++)
{
printf("thread 1 : inserting\n");
EXEC SQL AT test1 INSERT INTO test_thread VALUES('thread1');
@@ -82,7 +92,7 @@ ins2(void)
EXEC SQL WHENEVER sqlerror sqlprint;
EXEC SQL CONNECT TO:dbname AS test2;
- for (i = 0; i < 5; i++)
+ for (i = 0; i < iterations / 2; i++)
{
printf("thread 2: inserting\n");
EXEC SQL AT test2 INSERT INTO test_thread VALUES('thread2');