Module Name:    src
Committed By:   christos
Date:           Tue May 23 13:04:29 UTC 2017

Modified Files:
        src/tests/lib/libc/sys: t_mmap.c

Log Message:
Handle dk disks and print errors.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/tests/lib/libc/sys/t_mmap.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/tests/lib/libc/sys/t_mmap.c
diff -u src/tests/lib/libc/sys/t_mmap.c:1.12 src/tests/lib/libc/sys/t_mmap.c:1.13
--- src/tests/lib/libc/sys/t_mmap.c:1.12	Mon Jan 16 11:31:05 2017
+++ src/tests/lib/libc/sys/t_mmap.c	Tue May 23 09:04:29 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: t_mmap.c,v 1.12 2017/01/16 16:31:05 christos Exp $ */
+/* $NetBSD: t_mmap.c,v 1.13 2017/05/23 13:04:29 christos Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -55,7 +55,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: t_mmap.c,v 1.12 2017/01/16 16:31:05 christos Exp $");
+__RCSID("$NetBSD: t_mmap.c,v 1.13 2017/05/23 13:04:29 christos Exp $");
 
 #include <sys/param.h>
 #include <sys/disklabel.h>
@@ -178,13 +178,18 @@ ATF_TC_BODY(mmap_block, tc)
 	ATF_REQUIRE(drives != NULL);
 	ATF_REQUIRE(sysctl(mib, miblen, drives, &len, NULL, 0) == 0);
 	for (dk = strtok(drives, " "); dk != NULL; dk = strtok(NULL, " ")) {
-		sprintf(dev, _PATH_DEV "%s%c", dk, 'a'+RAW_PART);
+		if (strncmp(dk, "dk", 2) == 0)
+			snprintf(dev, sizeof(dev), _PATH_DEV "%s", dk);
+		else
+			snprintf(dev, sizeof(dev), _PATH_DEV "%s%c", dk,
+			    'a' + RAW_PART);
 		fprintf(stderr, "trying: %s\n", dev);
 
 		if ((fd = open(dev, O_RDONLY)) >= 0) {
 			(void)fprintf(stderr, "using %s\n", dev);
 			break;
-		}
+		} else
+			(void)fprintf(stderr, "%s: %s\n", dev, strerror(errno));
 	}
 	free(drives);
 
@@ -192,7 +197,7 @@ ATF_TC_BODY(mmap_block, tc)
 		atf_tc_skip("failed to find suitable block device");
 
 	map = mmap(NULL, 4096, PROT_READ, MAP_FILE, fd, 0);
-	ATF_REQUIRE(map != MAP_FAILED);
+	ATF_REQUIRE_MSG(map != MAP_FAILED, "mmap: %s", strerror(errno));
 
 	(void)fprintf(stderr, "first byte %x\n", *map);
 	ATF_REQUIRE(close(fd) == 0);

Reply via email to