diff mbox series

mtest06: Use temp dir from $TMPDIR if present

Message ID 20180308005250.210404-1-hridya@google.com
State Superseded
Headers show
Series mtest06: Use temp dir from $TMPDIR if present | expand

Commit Message

Hridya Valsaraju March 8, 2018, 12:52 a.m. UTC
The test was failing in Android devices due to
/tmp not existing. This change uses tst_tmpir()
to create a temporary directory in $TMPDIR if it
is defined.

Signed-off-by: Hridya Valsaraju <hridya@google.com>
---
 testcases/kernel/mem/mtest06/mmap1.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Comments

Cyril Hrubis March 8, 2018, 2:07 p.m. UTC | #1
Hi!
Good catch, but given that the temporary directory created by
tst_tmpdir() is unique we can as well drop the whole mkstemp()
and replace it with just open().

#define FNAME "ashfile"

int mkfile(int size)
{
	int fd;

	fd = open(FNAME,  O_RDWR | O_CREAT, 0600);
	if (fd < 0)
		tst_brk(...);

	unlink(FNAME);

	...

	return fd;
}
diff mbox series

Patch

diff --git a/testcases/kernel/mem/mtest06/mmap1.c b/testcases/kernel/mem/mtest06/mmap1.c
index 8894b0dbf..8f757d4c9 100644
--- a/testcases/kernel/mem/mtest06/mmap1.c
+++ b/testcases/kernel/mem/mtest06/mmap1.c
@@ -47,6 +47,7 @@ 
 #include <stdlib.h>
 #include <signal.h>
 #include <sys/time.h>
+#include <sys/param.h>
 #include <sys/wait.h>
 #include <setjmp.h>
 #include <pthread.h>
@@ -109,8 +110,13 @@  static void sig_handler_mapped(int signal, siginfo_t * info, void *ut)
 
 int mkfile(int size)
 {
-	char template[] = "/tmp/ashfileXXXXXX";
 	int fd, i;
+	char template[MAXPATHLEN];
+	char *tmpdir;
+
+	tmpdir = tst_get_tmpdir();
+	snprintf(template, sizeof(template), "%s/ashfileXXXXXX", tmpdir);
+	free(tmpdir);
 
 	if ((fd = mkstemp(template)) == -1)
 		tst_brkm(TBROK | TERRNO, NULL, "mkstemp() failed");
@@ -375,6 +381,8 @@  int main(int argc, char **argv)
 		}
 	}
 
+	tst_tmpdir();
+
 	for (;;) {
 		if ((fd = mkfile(file_size)) == -1)
 			tst_brkm(TBROK, NULL,
@@ -416,5 +424,7 @@  int main(int argc, char **argv)
 		close(fd);
 	}
 
+	tst_rmdir();
+
 	exit(0);
 }