X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=app%2Ftest%2Fprocess.h;h=5b10cf64df23678461217dbe2d0be714c01dcedf;hb=88caad251c8de3a84e353b0b2a27014bc303df87;hp=191d2796a92a71355dcd39d82b991be7ba720edb;hpb=18562261abadfbdf7e19006c381bcb1d6fd6c2fe;p=dpdk.git diff --git a/app/test/process.h b/app/test/process.h index 191d2796a9..5b10cf64df 100644 --- a/app/test/process.h +++ b/app/test/process.h @@ -24,11 +24,13 @@ #define exe "exe" #endif -#ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIB_PDUMP +#ifdef RTE_NET_RING #include extern void *send_pkts(void *empty); extern uint16_t flag_for_send_pkts; #endif +#endif /* * launches a second copy of the test process using the given argv parameters, @@ -43,8 +45,11 @@ process_dup(const char *const argv[], int numargs, const char *env_value) char *argv_cpy[numargs + 1]; int i, status; char path[32]; -#ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIB_PDUMP +#ifdef RTE_NET_RING pthread_t thread; + int rc; +#endif #endif pid_t pid = fork(); @@ -85,6 +90,11 @@ process_dup(const char *const argv[], int numargs, const char *env_value) } while ((dirent = readdir(dir)) != NULL) { + + if (strcmp(dirent->d_name, ".") == 0 || + strcmp(dirent->d_name, "..") == 0) + continue; + errno = 0; fd = strtol(dirent->d_name, &endptr, 10); if (errno != 0 || endptr[0] != '\0') { @@ -105,6 +115,7 @@ process_dup(const char *const argv[], int numargs, const char *env_value) for (i = 0; i < num; i++) printf("'%s' ", argv_cpy[i]); printf("\n"); + fflush(stdout); /* set the environment variable */ if (setenv(RECURSIVE_ENV_VAR, env_value, 1) != 0) @@ -120,18 +131,27 @@ process_dup(const char *const argv[], int numargs, const char *env_value) } } /* parent process does a wait */ -#ifdef RTE_LIBRTE_PDUMP - if ((strcmp(env_value, "run_pdump_server_tests") == 0)) - pthread_create(&thread, NULL, &send_pkts, NULL); +#ifdef RTE_LIB_PDUMP +#ifdef RTE_NET_RING + if ((strcmp(env_value, "run_pdump_server_tests") == 0)) { + rc = pthread_create(&thread, NULL, &send_pkts, NULL); + if (rc != 0) { + rte_panic("Cannot start send pkts thread: %s\n", + strerror(rc)); + } + } +#endif #endif while (wait(&status) != pid) ; -#ifdef RTE_LIBRTE_PDUMP +#ifdef RTE_LIB_PDUMP +#ifdef RTE_NET_RING if ((strcmp(env_value, "run_pdump_server_tests") == 0)) { flag_for_send_pkts = 0; pthread_join(thread, NULL); } +#endif #endif return status; }