Skip to contentSkip to conversation

dev Digest, Vol 381, Issue 38

DISCUSSION McDaniel, Timothy 2 participants 2 messages Dec 13, 2021 – Jan 17, 2022 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

McDaniel, Timothy

author Reviewed-by
#1 lore raw
Quoted 511 lines

-----Original Message-----
From: [email protected] <[email protected]>
Sent: Tuesday, December 7, 2021 7:51 PM
To: [email protected]
Subject: dev Digest, Vol 381, Issue 38

Send dev mailing list submissions to
[email protected]

To subscribe or unsubscribe via the World Wide Web, visit
https://mails.dpdk.org/listinfo/dev
or, via email, send a message with subject or body 'help' to
[email protected]

You can reach the person managing the list at
[email protected]

When replying, please edit your Subject line so it is more specific than "Re: Contents of dev digest..."

Today's Topics:

1. [PATCH v12 02/11] app/test: remove POSIX-specific code (Jie Zhou)
2. [PATCH v2] doc/dlb2: update dlb2 documentation (Rashmi Shetty)
3. [PATCH v13 01/11] eal/windows: return ENOTSUP for not supported API (Jie Zhou)
4. [PATCH v13 03/11] app/test: fix incorrect errno variable (Jie Zhou)
5. [PATCH v13 04/11] app/test: skip interrupt tests on Windows (Jie Zhou)
6. [PATCH v13 00/11] app/test: enable subset of tests on Windows (Jie Zhou)

----------------------------------------------------------------------

Message: 1
Date: Tue, 7 Dec 2021 13:24:14 -0800
From: Jie Zhou <[email protected]>
To: [email protected]
Cc: [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected],
[email protected], [email protected]
Subject: [PATCH v12 02/11] app/test: remove POSIX-specific code Message-ID:

	<[email protected]>

- Replace POSIX-specific code with DPDK equivalents or conditional platform specific code, or conditionally disable it on Windows
- Use NUL on Windows as /dev/null for Unix
- Exclude tests not supported on Windows yet
* multi-process
* PMD performance statistics display on signal

---
 app/test/commands.c               |  2 --
 app/test/packet_burst_generator.c |  1 +
 app/test/process.h                |  4 +++-
 app/test/test.c                   |  5 ++++-
 app/test/test_byteorder.c         |  2 +-
 app/test/test_cmdline_ipaddr.c    | 19 +++++++++----------
 app/test/test_cmdline_lib.c       | 13 +++++++++----
 app/test/test_crc.c               |  1 -
 app/test/test_memcpy_perf.c       | 28 ++++++++++++++--------------
 app/test/test_pmd_perf.c          |  6 +++++-
 app/test/test_ring_stress_impl.h  |  2 +-
 app/test/test_telemetry_data.c    |  2 ++
 12 files changed, 49 insertions(+), 36 deletions(-)
app/test/commands.c +0 -2
index 2dced3bc44..887cabad64 100644
@@ -8,8 +8,6 @@
 #include <stdint.h>
 #include <string.h>
 #include <stdlib.h>
-#include <netinet/in.h>
-#include <termios.h>
 #include <inttypes.h>
 #include <errno.h>
 #include <sys/queue.h>
app/test/packet_burst_generator.c +1 -0
index 8ac24577ba..6b42b9b83b 100644
@@ -5,6 +5,7 @@
 #include <rte_byteorder.h>
 #include <rte_mbuf.h>
 #include <rte_ip.h>
+#include <rte_os_shim.h>
 
 #include "packet_burst_generator.h"
 
app/test/process.h +3 -1
index 5b10cf64df..1f073b9c5c 100644
@@ -7,12 +7,14 @@
 
 #include <errno.h>  /* errno */
 #include <limits.h> /* PATH_MAX */
+#ifndef RTE_EXEC_ENV_WINDOWS
 #include <libgen.h> /* basename et al */
+#include <sys/wait.h>
+#endif
 #include <stdlib.h> /* NULL */
 #include <string.h> /* strerror */
 #include <unistd.h> /* readlink */
 #include <dirent.h>
-#include <sys/wait.h>
 
 #include <rte_string_fns.h> /* strlcpy */
 
app/test/test.c +4 -1
index 5194131026..e69cae3eea 100644
@@ -8,7 +8,6 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <termios.h>
 #include <ctype.h>
 #include <sys/queue.h>
 
@@ -63,7 +62,9 @@ do_recursive_call(void)
 		const char *env_var;
 		int (*action_fn)(void);
 	} actions[] =  {
+#ifndef RTE_EXEC_ENV_WINDOWS
 			{ "run_secondary_instances", test_mp_secondary },
+#endif
 #ifdef RTE_LIB_PDUMP
 #ifdef RTE_NET_RING
 			{ "run_pdump_server_tests", test_pdump },
@@ -82,7 +83,9 @@ do_recursive_call(void)
 			{ "test_file_prefix", no_action },
 			{ "test_no_huge_flag", no_action },
 #ifdef RTE_LIB_TIMER
+#ifndef RTE_EXEC_ENV_WINDOWS
 			{ "timer_secondary_spawn_wait",
 test_timer_secondary },
+#endif
 #endif
 	};
app/test/test_byteorder.c +1 -1
index 03c08d9abf..de14ed539e 100644
@@ -46,7 +46,7 @@ test_byteorder(void)
 		return -1;
 
 	res_u16 = rte_bswap16(0x1337);
-	printf("const %"PRIx16" -> %"PRIx16"\n", 0x1337, res_u16);
+	printf("const %"PRIx16" -> %"PRIx16"\n", (uint16_t)0x1337, res_u16);
 	if (res_u16 != 0x3713)
 		return -1;
 
app/test/test_cmdline_ipaddr.c +9 -10
index 2a1ee120fc..278fa3cd79 100644
@@ -1,12 +1,9 @@
 /* SPDX-License-Identifier: BSD-3-Clause
  * Copyright(c) 2010-2014 Intel Corporation
  */
-
 #include <stdio.h>
 #include <string.h>
 #include <inttypes.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
 
 #include <rte_string_fns.h>
 
@@ -15,17 +12,21 @@
 
 #include "test_cmdline.h"
 
-#define IP4(a,b,c,d) {((uint32_t)(((a) & 0xff)) | \
-					   (((b) & 0xff) << 8) | \
-					   (((c) & 0xff) << 16)  | \
-					   ((d) & 0xff)  << 24)}
+#define IP4(a,b,c,d) {.s_addr = (uint32_t)(((a) & 0xff) | \
+					  (((b) & 0xff) << 8) | \
+					  (((c) & 0xff) << 16)  | \
+					  ((d) & 0xff)  << 24)}
 
 #define U16_SWAP(x) \
 		(((x & 0xFF) << 8) | ((x & 0xFF00) >> 8))
 
 /* create IPv6 address, swapping bytes where needed */
 #ifndef s6_addr16
-# define s6_addr16      __u6_addr.__u6_addr16
+#ifdef RTE_EXEC_ENV_WINDOWS
+#define s6_addr16 u.Word
+#else
+#define s6_addr16 __u6_addr.__u6_addr16
+#endif
 #endif
 #define IP6(a,b,c,d,e,f,g,h) .ipv6 = \
 		{.s6_addr16 = \
@@ -166,8 +167,6 @@ const char * ipaddr_garbage_network6_strs[] = {
 };
 #define IPv6_GARBAGE_PREFIX 64
 
-
-
 const char * ipaddr_invalid_strs[] = {
 		/** IPv4 **/
 
app/test/test_cmdline_lib.c +6 -1
index f50ccdb599..fcd58cb76a 100644
@@ -8,7 +8,6 @@
 #include <stdarg.h>
 #include <stdlib.h>
 #include <errno.h>
-#include <termios.h>
 #include <ctype.h>
 #include <sys/queue.h>
 
@@ -22,6 +21,12 @@
 
 #include "test_cmdline.h"
 
+#ifndef RTE_EXEC_ENV_WINDOWS
+#define NULL_INPUT "/dev/null"
+#else
+#define NULL_INPUT "NUL"
+#endif
+
 
 /****************************************************************

/
/* static functions required for some tests */
static void

app/test/test_cmdline_lib.c +3 -3
@@ -156,10 +161,10 @@ test_cmdline_socket_fns(void)
 	cl = cmdline_stdin_new(&ctx, NULL);
 	if (cl != NULL)
 		goto error;
-	cl = cmdline_file_new(NULL, "prompt", "/dev/null");
+	cl = cmdline_file_new(NULL, "prompt", NULL_INPUT);
 	if (cl != NULL)
 		goto error;
-	cl = cmdline_file_new(&ctx, NULL, "/dev/null");
+	cl = cmdline_file_new(&ctx, NULL, NULL_INPUT);
 	if (cl != NULL)
 		goto error;
 	cl = cmdline_file_new(&ctx, "prompt", NULL);
@@ -171,7 +176,7 @@ test_cmdline_socket_fns(void)
 		cmdline_free(cl);
 		return -1;
 	}
-	cl = cmdline_file_new(&ctx, "prompt", "/dev/null");
+	cl = cmdline_file_new(&ctx, "prompt", NULL_INPUT);
 	if (cl == NULL) {
 		printf("Error: failed to open /dev/null for reading!");
 		return -1;
app/test/test_crc.c +0 -1
index bf1d344359..0ed080e482 100644
@@ -14,7 +14,6 @@
 #define CRC32_VEC_LEN2     348
 #define CRC16_VEC_LEN1     12
 #define CRC16_VEC_LEN2     2
-#define LINE_LEN           75
 
 /* CRC test vector */
 static const uint8_t crc_vec[CRC_VEC_LEN] = {
app/test/test_memcpy_perf.c +14 -16
index c711e36ba7..0dc88ed39c 100644
@@ -6,10 +6,10 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
-#include <sys/time.h>
 
 #include <rte_common.h>
 #include <rte_cycles.h>
+#include <rte_os_shim.h>
 #include <rte_random.h>
 #include <rte_malloc.h>
 
@@ -271,7 +271,7 @@ static int
 perf_test(void)
 {
 	int ret;
-	struct timeval tv_begin, tv_end;
+	struct timespec tv_begin, tv_end;
 	double time_aligned, time_unaligned;
 	double time_aligned_const, time_unaligned_const;
 
@@ -298,32 +298,32 @@ perf_test(void)
 	printf("\n================================= %2dB aligned
 =================================",
 		ALIGNMENT_UNIT);
 	/* Do aligned tests where size is a variable */
-	gettimeofday(&tv_begin, NULL);
+	timespec_get(&tv_begin, TIME_UTC);
 	perf_test_variable_aligned();
-	gettimeofday(&tv_end, NULL);
+	timespec_get(&tv_end, TIME_UTC);
 	time_aligned = (double)(tv_end.tv_sec - tv_begin.tv_sec)
-		+ ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000;
+		+ ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S;
 	printf("\n------- ----------------- ----------------- ----------------- ----------------
-");
 	/* Do aligned tests where size is a compile-time constant */
-	gettimeofday(&tv_begin, NULL);
+	timespec_get(&tv_begin, TIME_UTC);
 	perf_test_constant_aligned();
-	gettimeofday(&tv_end, NULL);
+	timespec_get(&tv_end, TIME_UTC);
 	time_aligned_const = (double)(tv_end.tv_sec - tv_begin.tv_sec)
-		+ ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000;
+		+ ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S;
 	printf("\n================================== Unaligned
 ==================================");
 	/* Do unaligned tests where size is a variable */
-	gettimeofday(&tv_begin, NULL);
+	timespec_get(&tv_begin, TIME_UTC);
 	perf_test_variable_unaligned();
-	gettimeofday(&tv_end, NULL);
+	timespec_get(&tv_end, TIME_UTC);
 	time_unaligned = (double)(tv_end.tv_sec - tv_begin.tv_sec)
-		+ ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000;
+		+ ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S;
 	printf("\n------- ----------------- ----------------- ----------------- ----------------
-");
 	/* Do unaligned tests where size is a compile-time constant */
-	gettimeofday(&tv_begin, NULL);
+	timespec_get(&tv_begin, TIME_UTC);
 	perf_test_constant_unaligned();
-	gettimeofday(&tv_end, NULL);
+	timespec_get(&tv_end, TIME_UTC);
 	time_unaligned_const = (double)(tv_end.tv_sec - tv_begin.tv_sec)
-		+ ((double)tv_end.tv_usec - tv_begin.tv_usec)/1000000;
+		+ ((double)tv_end.tv_nsec - tv_begin.tv_nsec) / NS_PER_S;
 	printf("\n======= ================= =================

================= =================\n\n");

app/test/test_memcpy_perf.c +0 -0
 	printf("Test Execution Time (seconds):\n");
app/test/test_pmd_perf.c +5 -1
index 0aa9dc1b1c..25611bfe9b 100644
@@ -296,6 +296,7 @@ reset_count(void)
 	idle = 0;
 }
 
+#ifndef RTE_EXEC_ENV_WINDOWS
 static void
 stats_display(uint16_t port_id)
 {
@@ -325,6 +326,7 @@ signal_handler(int signum)
 	if (signum == SIGUSR2)
 		stats_display(0);
 }
+#endif
 
 struct rte_mbuf **tx_burst;
 
@@ -638,7 +640,7 @@ exec_burst(uint32_t flags, int lcore)
 		i = (i >= conf->nb_ports - 1) ? 0 : (i + 1);
 	}
 
-	sleep(5);
+	rte_delay_us(5 * US_PER_S);
 
 	/* only when polling second  */
 	if (flags == SC_BURST_XMIT_FIRST)
@@ -669,8 +671,10 @@ test_pmd_perf(void)
 
 	printf("Start PMD RXTX cycles cost test.\n");
 
+#ifndef RTE_EXEC_ENV_WINDOWS
 	signal(SIGUSR1, signal_handler);
 	signal(SIGUSR2, signal_handler);
+#endif
 
 	nb_ports = rte_eth_dev_count_avail();
 	if (nb_ports < NB_ETHPORTS_USED) {
app/test/test_ring_stress_impl.h +1 -1
index 2825a9dce6..62f046a91a 100644
@@ -360,7 +360,7 @@ test_mt1(int (*test)(void *))
 	/* signal worker to start test */
 	__atomic_store_n(&wrk_cmd, WRK_CMD_RUN, __ATOMIC_RELEASE);
 
-	usleep(run_time * US_PER_S);
+	rte_delay_us(run_time * US_PER_S);
 
 	/* signal worker to start test */
 	__atomic_store_n(&wrk_cmd, WRK_CMD_STOP, __ATOMIC_RELEASE);
app/test/test_telemetry_data.c +2 -1
index 18b93db8ef..73eee293a1 100644
@@ -4,7 +4,9 @@
 
 #include <string.h>
 #include <sys/socket.h>
+#ifndef RTE_EXEC_ENV_WINDOWS
 #include <sys/un.h>
+#endif
 #include <unistd.h>
 #include <limits.h>
 
--

2.31.0.vfs.0.1

------------------------------

Message: 2
Date: Tue, 7 Dec 2021 17:01:51 -0600
From: Rashmi Shetty <[email protected]>
To: [email protected]
Cc: [email protected], [email protected],
[email protected], [email protected], [email protected], Rashmi Shetty
<[email protected]>
Subject: [PATCH v2] doc/dlb2: update dlb2 documentation
Message-ID: <[email protected]>

Number of direct credits, atomic inflight and history list are updated to DLB2.0 supported sizes. As DLB2.0 does not provide dev arg to override the default per-queue atomic inflight allocation, it is removed from the documentation.

---
 doc/guides/eventdevs/dlb2.rst | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)
doc/guides/eventdevs/dlb2.rst +0 -0
index bce984ca08..bc53618b53 100644
@@ -151,7 +151,7 @@ load-balanced queues, and directed credits are used for

directed queues.
These pools' sizes are controlled by the nb_events_limit field in struct rte_event_dev_config. The load-balanced pool is sized to contain nb_events_limit credits, and the directed pool is sized to contain

doc/guides/eventdevs/dlb2.rst +5 -12
-nb_events_limit/4 credits. The directed pool size can be overridden with the
+nb_events_limit/2 credits. The directed pool size can be overridden with the
 num_dir_credits devargs argument, like so:
 
     .. code-block:: console
@@ -239,8 +239,8 @@ queue A.
 Due to this, workers should stop retrying after a time, release the events it
 is attempting to enqueue, and dequeue more events. It is important that the
 worker release the events and don't simply set them aside to retry the enqueue
-again later, because the port has limited history list size (by default, twice
-the port's dequeue_depth).
+again later, because the port has limited history list size (by default, same
+as port's dequeue_depth).
 
 Priority
 ~~~~~~~~
@@ -309,18 +309,11 @@ scheduled. The likelihood of this case depends on the
 eventdev configuration,
 traffic behavior, event processing latency, potential for a worker to be
 interrupted or otherwise delayed, etc.
 
-By default, the PMD allocates 16 buffer entries for each load-balanced queue,
-which provides an even division across all 128 queues but potentially wastes
+By default, the PMD allocates 64 buffer entries for each load-balanced queue,
+which provides an even division across all 32 queues but potentially wastes
 buffer space (e.g. if not all queues are used, or aren't used for atomic
 scheduling).
 
-The PMD provides a dev arg to override the default per-queue allocation. To
-increase per-queue atomic-inflight allocation to (for example) 64:
-
-    .. code-block:: console
-
-       --allow ea:00.0,atm_inflights=64
-
 QID Depth Threshold
 ~~~~~~~~~~~~~~~~~~~
@@ -337,7 +330,7 @@ Per queue threshold metrics are tracked in the DLB

xstats, and are also
returned in the impl_opaque field of each received event.

The per qid threshold can be specified as part of the device args, and

doc/guides/eventdevs/dlb2.rst +1 -2
-can be applied to all queue, a range of queues, or a single queue, as
+can be applied to all queues, a range of queues, or a single queue, as
 shown below.
 
     .. code-block:: console
--
Quoted 2 lines

2.25.1

Quoted 395 lines

------------------------------

Message: 3
Date: Tue, 7 Dec 2021 17:50:52 -0800
From: Jie Zhou <[email protected]>
To: [email protected]
Cc: [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected],
[email protected], [email protected]
Subject: [PATCH v13 01/11] eal/windows: return ENOTSUP for not
supported API
Message-ID:

	<[email protected]>

UT memory_autotest on Windows has 2 failed cases on eal APIs eal_memalloc_get_seg_fd and eal_memalloc_get_seg_fd_offset. These 2 APIs are not supported on Windows yet. Should return ENOTSUP such that in test_memory.c these 2 ENOTSUP cases will not be marked as failures, same as other ENOTSUP cases.

---
 lib/eal/windows/eal_memalloc.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
lib/eal/windows/eal_memalloc.c +2 -2
index 55d6dcc71c..aa7589b81d 100644
@@ -17,7 +17,7 @@ eal_memalloc_get_seg_fd(int list_idx, int seg_idx)
 	RTE_SET_USED(list_idx);
 	RTE_SET_USED(seg_idx);
 	EAL_LOG_NOT_IMPLEMENTED();
-	return -1;
+	return -ENOTSUP;
 }
 
 int
@@ -28,7 +28,7 @@ eal_memalloc_get_seg_fd_offset(int list_idx, int seg_idx,
 size_t *offset)
 	RTE_SET_USED(seg_idx);
 	RTE_SET_USED(offset);
 	EAL_LOG_NOT_IMPLEMENTED();
-	return -1;
+	return -ENOTSUP;
 }
 

static int

lib/eal/windows/eal_memalloc.c +1 -2
@@ -428,7 +428,7 @@ eal_memalloc_sync_with_primary(void)
 {
 	/* No multi-process support. */
 	EAL_LOG_NOT_IMPLEMENTED();
-	return -1;
+	return -ENOTSUP;
 }
 
 int
--

2.31.0.vfs.0.1

------------------------------

Message: 4
Date: Tue, 7 Dec 2021 17:50:54 -0800
From: Jie Zhou <[email protected]>
To: [email protected]
Cc: [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected],
[email protected], [email protected]
Subject: [PATCH v13 03/11] app/test: fix incorrect errno variable Message-ID:

	<[email protected]>

Fix incorrect errno variable used in memory autotest. Use rte_errno instead.

Fixes 086d426406bd ("app/test: fix memory autotests on FreeBSD")
---
 app/test/test_memory.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
app/test/test_memory.c +1 -1
index dbf6871e71..140ac3f3cf 100644
@@ -63,7 +63,7 @@ check_seg_fds(const struct rte_memseg_list *msl, const
 struct rte_memseg *ms,
 	/* we're able to get memseg fd - try getting its offset */
 	ret = rte_memseg_get_fd_offset_thread_unsafe(ms, &offset);
 	if (ret < 0) {
-		if (errno == ENOTSUP)
+		if (rte_errno == ENOTSUP)
 			return 1;
 		return -1;

}
--
2.31.0.vfs.0.1

------------------------------

Message: 5
Date: Tue, 7 Dec 2021 17:50:55 -0800
From: Jie Zhou <[email protected]>
To: [email protected]
Cc: [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected],
[email protected], [email protected]
Subject: [PATCH v13 04/11] app/test: skip interrupt tests on Windows Message-ID:

	<[email protected]>

Even though test_interrupts.c can compile on Windows, skip interrupt tests for now since majority of eal_interrupt on Windows are stubs. Will remove the skip after interrupt being fully enabled on Windows.

---
 app/test/test_interrupts.c | 10 ++++++++++
 1 file changed, 10 insertions(+)
app/test/test_interrupts.c +9 -0
index 2a05399f96..eec9b2805b 100644
@@ -12,6 +12,15 @@
 
 #include "test.h"
 
+#ifdef RTE_EXEC_ENV_WINDOWS
+static int
+test_interrupt(void)
+{
+	printf("Interrupt on Windows is not fully supported yet, skipping
 test\n");
+	return TEST_SKIPPED;
+}
+#else
+
 #define TEST_INTERRUPT_CHECK_INTERVAL 100 /* ms */
 

/* predefined interrupt handle types */

app/test/test_interrupts.c +1 -1
@@ -590,5 +599,6 @@ test_interrupt(void)
 
 	return ret;
 }
+#endif /*ifdef RTE_EXEC_ENV_WINDOWS*/
 
 REGISTER_TEST_COMMAND(interrupt_autotest, test_interrupt);
--

2.31.0.vfs.0.1

------------------------------

Message: 6
Date: Tue, 7 Dec 2021 17:50:51 -0800
From: Jie Zhou <[email protected]>
To: [email protected]
Cc: [email protected], [email protected],
[email protected], [email protected], [email protected], [email protected],
[email protected],
[email protected], [email protected]
Subject: [PATCH v13 00/11] app/test: enable subset of tests on Windows Message-ID:

	<[email protected]>

The goal of this patchset is to enable unit tests in CI for Windows. It mainly contains:
- Replace POSIX specific codes
- Fix some lib and tests per failures investigation
- Add test stubs for not yet supported ones on Windows
- Replace .sh script with .py script for meson.build
- Enable build and run subset of unit tests on Windows

Future work:
- Work with CI lab to onboard unit tests for Windows to catch regression
- Investigate issues hit at CI onboarding
- Enable more tests

---
V2 changes:
- Fix compilation error on FreeBSD
- Fix email mismatch issue
- Add a missing space around "*"

---
V3 changes:
- Fix a misc c coding style issue
- Revise some commit title and message body
- Fix violations of PEP8 in new added Python scripts
- Add error handling in get_coremask.py
- Fix has_hugepage.py to check system support of hugepages instead of checking privileges
- Fix test meson.build to run Python scripts using py3
- Consolidate lists of source files, test dep, etc. across all platforms, with conditional extending on some platform(s)

---
V4 changes:
- Remove building of ip_frag, rib, and reorder libraries on Windows. These three libs usually can be built on Windows without change. However, in between the time of V3 and V4, there is regression in upstream caused build failures of these three libs. Will separately investigate and enable these libraries.

- Remove previous patch#2 (Enable mempool/stack on Windows) from this patchset as it was separated out and merged as patch-19314.

- Consolidate the source files, deps, tests lists across platforms as much as possible.

---
V5 changes:
- Remove a space between function name and open parenthesis '('
- Add back a header mistakenly deleted

---
V6 changes:
- Fix inconsistent static vs. non-static declarations

---
V7 changes:
- Remove get_coremask.py as it is not needed any more in meson.build
- Remove enablement of efd and lpm and their corresponding unit tests. The enablement of these two libs and their UTs will be in separate patches after this patch set.

V8 changes:
- Fix coding style issue of using C99 // comments

---
V9 changes:
- Fix has_hugepage.py with adding failure handling on Linux, using proper variable name to follow Python convention, and removing unnecessary comment.
- Enable previously skipped test_cmdline_socket_fns test cases
- Revise title and message, and add Fixes info for current Patch#3
- Combine 2 patches (previous #2 and #3 in V8) into one and with more detailed message

---
V10 changes:
- Fix indentation

---
V11 changes:
- Remove mandatory dependency on bitratestats, latencystats, and metrics libs in test meson.build, which was reintroduced at rebase in V9.

---
V12 changes:
- Remove unnecessary print of a null string
- Enable several previous disabled tests
- Split Patch#9 in V11 into two patches for better structure
- Reorder some of the patches for better structure
- Document more details in commit message for issue tracking

---
V13 changes:
- Fix misc coding style issue
- Fix build issue on Ubuntu 18.04

Jie Zhou (11):
eal/windows: return ENOTSUP for not supported API app/test: remove POSIX-specific code app/test: fix incorrect errno variable app/test: skip interrupt tests on Windows app/test: skip two logs_autotest cases on Windows app/test: differentiate a strerror on different OS app/test: remove two alarm_autotest cases app/test: resolve name collision
app/test: add test stubs for not supported ones app/test: replace .sh script with .py script app/test: enable unit test on Windows

 app/test/commands.c                      |   2 -
 app/test/has-hugepage.sh                 |  11 ---
 app/test/has_hugepage.py                 |  26 ++++++
 app/test/meson.build                     | 113 ++++++++++++-----------
 app/test/packet_burst_generator.c        |   1 +
 app/test/process.h                       |   4 +-
 app/test/test.c                          |   5 +-
 app/test/test_acl.c                      |  12 +++
 app/test/test_alarm.c                    |   4 +
 app/test/test_bpf.c                      |  15 ++-
 app/test/test_byteorder.c                |   2 +-
 app/test/test_cmdline_ipaddr.c           |  13 ++-
 app/test/test_cmdline_lib.c              |  13 ++-
 app/test/test_crc.c                      |   1 -
 app/test/test_cryptodev.c                |   4 +
 app/test/test_cryptodev_asym.c           |   4 +
 app/test/test_cryptodev_blockcipher.c    |   4 +
 app/test/test_cryptodev_security_ipsec.c |   4 +
 app/test/test_cryptodev_security_pdcp.c  |   4 +
 app/test/test_debug.c                    |  17 +++-
 app/test/test_distributor.c              |  13 +++
 app/test/test_distributor_perf.c         |  13 +++
 app/test/test_eal_flags.c                |  90 ++++++++++++++++++
 app/test/test_eal_fs.c                   |  12 +++
 app/test/test_efd.c                      |  15 ++-
 app/test/test_efd_perf.c                 |  16 +++-
 app/test/test_errno.c                    |  12 ++-
 app/test/test_event_crypto_adapter.c     |  15 ++-
 app/test/test_event_eth_rx_adapter.c     |  25 ++++-
 app/test/test_event_eth_tx_adapter.c     |  12 +++
 app/test/test_event_ring.c               |  16 +++-
 app/test/test_event_timer_adapter.c      |  16 +++-
 app/test/test_eventdev.c                 |  20 +++-
 app/test/test_external_mem.c             |  18 +++-
 app/test/test_fib.c                      |  22 ++++-
 app/test/test_fib6.c                     |  24 ++++-
 app/test/test_fib6_perf.c                |  16 +++-
 app/test/test_fib_perf.c                 |  15 ++-
 app/test/test_flow_classify.c            |  13 +++
 app/test/test_func_reentrancy.c          |  12 +++
 app/test/test_graph.c                    |  18 +++-
 app/test/test_graph_perf.c               |  16 +++-
 app/test/test_hash_perf.c                |  28 ++++--
 app/test/test_interrupts.c               |  10 ++
 app/test/test_ipfrag.c                   |  16 +++-
 app/test/test_ipsec.c                    |  15 ++-
 app/test/test_ipsec_perf.c               |  15 ++-
 app/test/test_ipsec_sad.c                |  14 ++-
 app/test/test_kni.c                      |  10 +-
 app/test/test_lcores.c                   |  12 +++
 app/test/test_logs.c                     |   6 +-
 app/test/test_lpm.c                      |  14 ++-
 app/test/test_lpm6.c                     |  14 ++-
 app/test/test_lpm6_perf.c                |  14 ++-
 app/test/test_lpm_perf.c                 |  13 ++-
 app/test/test_malloc.c                   |  20 ++--
 app/test/test_mbuf.c                     |  15 ++-
 app/test/test_member.c                   |  16 +++-
 app/test/test_member_perf.c              |  16 +++-
 app/test/test_memcpy_perf.c              |  30 +++---
 app/test/test_memory.c                   |   2 +-
 app/test/test_mp_secondary.c             |  12 +++
 app/test/test_pie.c                      |  30 +++++-
 app/test/test_pmd_perf.c                 |   6 +-
 app/test/test_rawdev.c                   |  17 +++-
 app/test/test_rcu_qsbr_perf.c            |  12 +++
 app/test/test_red.c                      |  29 +++++-
 app/test/test_reorder.c                  |  15 ++-
 app/test/test_rib.c                      |  22 ++++-
 app/test/test_rib6.c                     |  22 ++++-
 app/test/test_ring_stress_impl.h         |   2 +-
 app/test/test_sched.c                    |  14 ++-
 app/test/test_security.c                 |   4 +-
 app/test/test_table.c                    |  13 +++
 app/test/test_table_acl.c                |   3 +
 app/test/test_table_combined.c           |   4 +
 app/test/test_table_pipeline.c           |   4 +
 app/test/test_table_ports.c              |   4 +
 app/test/test_table_tables.c             |   4 +
 app/test/test_telemetry_data.c           |   2 +
 app/test/test_timer_secondary.c          |  13 +++
 app/test/test_trace.c                    |  32 ++++++-
 lib/eal/common/eal_common_errno.c        |   4 +
 lib/eal/windows/eal_memalloc.c           |   6 +-
 84 files changed, 1058 insertions(+), 184 deletions(-)
 delete mode 100755 app/test/has-hugepage.sh
 create mode 100644 app/test/has_hugepage.py

--
2.31.0.vfs.0.1

End of dev Digest, Vol 381, Issue 38
************************************