]> git.alsa-project.org Git - alsa-utils.git/commitdiff
axfer: test: use memfd_create() for mapper-test
authorTakashi Sakamoto <o-takashi@sakamocchi.jp>
Thu, 11 Mar 2021 05:21:42 +0000 (14:21 +0900)
committerJaroslav Kysela <perex@perex.cz>
Thu, 11 Mar 2021 08:30:02 +0000 (09:30 +0100)
The mapper test program writes audio data frame to files, and read
them from the files, then validate them. For the operations, usage of
any in-memory file is good to shorten time of overall operations.

This commit uses shm by memfd_create().

Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
axfer/test/mapper-test.c

index 0bed4bb50317309a507b13392bbb1accb2a246ec..477871d10a48a78014e8b696f85bf8d444b43086 100644 (file)
@@ -6,11 +6,20 @@
 //
 // Licensed under the terms of the GNU General Public License, version 2.
 
+#include <aconfig.h>
+#ifdef HAVE_MEMFD_CREATE
+#define _GNU_SOURCE
+#endif
+
 #include "../mapper.h"
 #include "../misc.h"
 
 #include "generator.h"
 
+#ifdef HAVE_MEMFD_CREATE
+#include <sys/mman.h>
+#endif
+
 #include <stdlib.h>
 #include <unistd.h>
 #include <stdbool.h>
@@ -230,7 +239,11 @@ static int test_mapper(struct mapper_trial *trial, snd_pcm_access_t access,
        for (i = 0; i < cntr_count; ++i) {
                const char *path = trial->paths[i];
 
+#ifdef HAVE_MEMFD_CREATE
+               cntr_fds[i] = memfd_create(path, 0);
+#else
                cntr_fds[i] = open(path, O_RDWR | O_CREAT | O_TRUNC, 0644);
+#endif
                if (cntr_fds[i] < 0) {
                        err = -errno;
                        goto end;
@@ -255,10 +268,8 @@ static int test_mapper(struct mapper_trial *trial, snd_pcm_access_t access,
                       frames_per_second, frames_per_buffer, check_buffer,
                       frame_count, cntr_fds, cntr_count);
 end:
-       for (i = 0; i < cntr_count; ++i) {
-               unlink(trial->paths[i]);
+       for (i = 0; i < cntr_count; ++i)
                close(cntr_fds[i]);
-       }
 
        free(cntr_fds);