X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Ftests%2Fcreatetest.c;h=17008a84c220ac891e4d1c1c941cdbf53b0c674a;hb=44cb3a92d756728195409b368b3e89b1a78ef0ae;hp=6223034f6a87212bab4eb0bc4903071c08a0190e;hpb=96ec6856f91f7f9031cfce4273c714d72cfe59ae;p=fs%2Flustre-release.git diff --git a/lustre/tests/createtest.c b/lustre/tests/createtest.c index 6223034..17008a8 100644 --- a/lustre/tests/createtest.c +++ b/lustre/tests/createtest.c @@ -1,3 +1,33 @@ +/* + * GPL HEADER START + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 only, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License version 2 for more details (a copy is included + * in the LICENSE file that accompanied this code). + * + * You should have received a copy of the GNU General Public License + * version 2 along with this program; If not, see + * http://www.gnu.org/licenses/gpl-2.0.html + * + * GPL HEADER END + */ +/* + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. + * Use is subject to license terms. + */ +/* + * This file is part of Lustre, http://www.lustre.org/ + * Lustre is a trademark of Sun Microsystems, Inc. + */ + #include #include #include @@ -31,7 +61,7 @@ int main(int argc, char *argv[]) int mode = i | 0644; int rc; - sprintf(name, "%s-mknod%06o", argv[1], mode); + snprintf(name, sizeof(name), "%s-mknod%07o", argv[1], mode); rc = mknod(name, mode, 0x1234); switch (i) { case 0: @@ -57,18 +87,27 @@ int main(int argc, char *argv[]) argv[0], name, st.st_mode, mode); exit(12); } + if (i == S_IFCHR || i == S_IFBLK) { + if (st.st_rdev != 0x1234) { + fprintf(stderr, "%s: ERROR rdev %s: " + "%llu != 0x1234", + argv[0], name, + (unsigned long long)st.st_rdev); + exit(13); + } + } rc = unlink(name); if (rc < 0) { fprintf(stderr, "%s: ERROR unlink %s: %s", argv[0], name, strerror(errno)); - exit(13); + exit(14); } break; default: if (rc == 0) { fprintf(stderr, "%s: ERROR: %s created\n", argv[0], name); - exit(14); + exit(15); } } } @@ -80,7 +119,7 @@ int main(int argc, char *argv[]) int rc; mode = i | 0644; - sprintf(name, "%s-creat%06o", argv[1], mode); + snprintf(name, sizeof(name), "%s-creat%07o", argv[1], mode); fd = open(name, O_CREAT|O_RDONLY, mode); if (fd < 0) { fprintf(stderr, "%s: ERROR creat %s: %s\n", @@ -111,7 +150,7 @@ int main(int argc, char *argv[]) struct stat st; int rc; - sprintf(name, "%s-mkdir%06o", argv[1], i | 0644); + snprintf(name, sizeof(name), "%s-mkdir%06o", argv[1], i | 0644); rc = mkdir(name, i | 0664); if (rc < 0) { fprintf(stderr, "%s: ERROR mkdir %s: %s\n",