loadtest: use a random password
authorArt Cancro <ajc@citadel.org>
Sat, 23 Sep 2023 18:30:57 +0000 (14:30 -0400)
committerArt Cancro <ajc@citadel.org>
Sat, 23 Sep 2023 18:30:57 +0000 (14:30 -0400)
citadel/utils/loadtest.c

index 89fad52ef4c1e440eaf5e8bb58be9be0ef587c6c..242d15522910f2a230cbc575888f43e41a2deceb 100644 (file)
@@ -208,7 +208,7 @@ char *random_rooms[] = {
 };
 int nrooms = sizeof(random_rooms) / sizeof(char *);
 char *test_user = "Load Test User";
-char *test_pass = "TheTestPW";
+char test_pass[16];
 
 void perform_random_thing(int serv_sock) {
        int op = random() % 3;
@@ -299,12 +299,11 @@ void *loadtest(void *blah) {
        int row = 10 + ((serv_sock-3) % 20);
        int col = ((serv_sock-3) / 20) * 10;
        long ops = 0;
-       printf("\033[%d;%dH\033[32m--------\033[0m", row, col);
+       printf("\033[%d;%dH\033[33m       0\033[0m", row, col);
        fflush(stdout);
-       sleep(5);
        while(1) {
                perform_random_thing(serv_sock);
-               printf("\033[%d;%dH\033[33m%8ld\033[0m", row, col, ++ops);
+               printf("\033[%d;%dH\033[32m%8ld\033[0m", row, col, ++ops);
                fflush(stdout);
        }
 }
@@ -337,7 +336,7 @@ void setup_accounts(int serv_sock) {
 
 // Main loop.  Do things and have fun.
 int main(int argc, char **argv) {
-       int a;
+       int i;
        int nthreads = 3;
 
        fprintf(stderr, "\033[2J\033[H"
@@ -349,8 +348,8 @@ int main(int argc, char **argv) {
                        "\033[44m\033[33m\033[1m                                                                        \033[K\033[0m\n");
 
        // Parse command line
-       while ((a = getopt(argc, argv, "h:n:")) != EOF) {
-               switch (a) {
+       while ((i = getopt(argc, argv, "h:n:")) != EOF) {
+               switch (i) {
                case 'h':
                        strncpy(ctdldir, optarg, sizeof ctdldir);
                        break;
@@ -368,6 +367,14 @@ int main(int argc, char **argv) {
                exit(errno);
        }
 
+       // Generate random password for load test user
+       srand(time(NULL)+getpid());
+       for (i=0; i<sizeof(test_pass)-1; ++i) {
+               test_pass[i] = (rand() % 74) + 48;
+       }
+       test_pass[sizeof(test_pass)] = 0;
+
+       // start connecting
        int serv_sock = uds_connectsock(file_citadel_admin_socket);
        if (serv_sock < 0) {
                fprintf(stderr, "loadtest: cannot connect to Citadel Server\n");
@@ -379,7 +386,13 @@ int main(int argc, char **argv) {
        setup_accounts(serv_sock);
        close(serv_sock);
 
-       for (a=0; a<(nthreads-1); ++a) {
+       for (i=0; i<(nthreads-1); ++i) {
+
+               int row = 10 + ((i+1) % 20);
+               int col = ((i+1) / 20) * 10;
+               printf("\033[%d;%dH\033[31m--------\033[0m", row, col);
+               fflush(stdout);
+
                pthread_t thread;
                pthread_attr_t attr;
                int ret = 0;