From patchwork Fri May 11 23:10:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chenbo Feng X-Patchwork-Id: 912725 X-Patchwork-Delegate: chrubis@suse.cz Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.linux.it (client-ip=2001:1418:10:5::2; helo=picard.linux.it; envelope-from=ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="vHE9izOr"; dkim-atps=neutral Received: from picard.linux.it (picard.linux.it [IPv6:2001:1418:10:5::2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 40kt7s36N6z9s08 for ; Mon, 14 May 2018 17:47:05 +1000 (AEST) Received: from picard.linux.it (localhost [IPv6:::1]) by picard.linux.it (Postfix) with ESMTP id BFA851A95CC for ; Mon, 14 May 2018 09:46:58 +0200 (CEST) X-Original-To: ltp@lists.linux.it Delivered-To: ltp@picard.linux.it Received: from in-4.smtp.seeweb.it (in-4.smtp.seeweb.it [IPv6:2001:4b78:1:20::4]) by picard.linux.it (Postfix) with ESMTP id AEA8A3E769E for ; Sat, 12 May 2018 01:10:46 +0200 (CEST) Received: from mail-pg0-x242.google.com (mail-pg0-x242.google.com [IPv6:2607:f8b0:400e:c05::242]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by in-4.smtp.seeweb.it (Postfix) with ESMTPS id A14971000A72 for ; Sat, 12 May 2018 01:10:45 +0200 (CEST) Received: by mail-pg0-x242.google.com with SMTP id e1-v6so3016688pga.6 for ; Fri, 11 May 2018 16:10:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=aY8bO3uCyWvVmUpNblzuIyXl/Idptu95xBlWTBVYEE8=; b=vHE9izOrNYTXtOV8W0VYxBpjE1zcJ/sGARZCtc+I/mAEU0qIpS/S3BUD5Cwn1tOUUt RFuwzMfZFfse6f1W2z7kd3ToNOlUlCkaH1JL76dAhsURU6orqhQj2RWEROneaUY1Tk+O nOwXJJQQUg6hCDW4qf+jytAgcSubf4WVVrcyo3HMEz7YC0BYg3fs43x94o/UnHEvsZa5 qErYY7O5S+M4ONTqVtkOCqKewHt9qeMAj8QPO5WaMCkyGSFj+NtoK5BQaQ80XWeSVZFr 9C40JkVo4mn8tnj6zWxx0QRuICxhchf0giMtFL871Lw9vkTSYPDWTXO0jZrtqUShrDur W0Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=aY8bO3uCyWvVmUpNblzuIyXl/Idptu95xBlWTBVYEE8=; b=LbJS2GjNXFJ6suufH54ZgGhMXsHGFi6IR8TJTw5SmQAz54e2bfUJDU2O+Xvs1QZa43 gr/Z31VvVBYQ8WrNxNEmX963fQjOYQABR1nXgAA5Xs4a4JvhBpIiT4cW7TNNpWPR6w+A uDK64P+sr6TIKRQqZ55P0Cdk/6EC+NPrkKEqoPoa0ye7SUoNsS9d3rB44ZM8CUx7A8SR 1gkJx2OU4djYBhmJ5R4oKa4moup5xS89701bW6GU8lcaJdrgfNHL+5lyXEkr5JC11KLU GjdWKEBIYrpyUZDxIfiba8UMgDynQ4Ou3IhodLfDyS1shi6HscmZIpsYvVlxGP1+kLK7 uRNA== X-Gm-Message-State: ALKqPwdeyYk8FcpwDgO++LvCQiNNI3bugSiNJZoT5hf3e4qOOjYEvrtb aqmxmZCp+G34uYqEZ8WjfcvaaJ6kJKA= X-Google-Smtp-Source: AB8JxZptrVvLefuQMju1yiok/Nd8CfXhjhYoh4Mk+1Xlr8azcVlPeezpJ5I5Y8joHBy8eNpUb+ZvUg== X-Received: by 2002:a62:8910:: with SMTP id v16-v6mr710307pfd.13.1526080242894; Fri, 11 May 2018 16:10:42 -0700 (PDT) Received: from fengc.mtv.corp.google.com ([2620:0:1000:1611:9e6b:aedc:41ed:e239]) by smtp.gmail.com with ESMTPSA id c21-v6sm8905271pfb.116.2018.05.11.16.10.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 May 2018 16:10:41 -0700 (PDT) From: Chenbo Feng To: ltp@lists.linux.it Date: Fri, 11 May 2018 16:10:27 -0700 Message-Id: <20180511231027.64305-1-fengc@google.com> X-Mailer: git-send-email 2.17.0.441.gb46fe60e1d-goog X-Virus-Scanned: clamav-milter 0.99.2 at in-4.smtp.seeweb.it X-Virus-Status: Clean X-Spam-Status: No, score=-14.9 required=7.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,ENV_AND_HDR_SPF_MATCH,SPF_PASS,USER_IN_DEF_DKIM_WL, USER_IN_DEF_SPF_WL autolearn=disabled version=3.4.0 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on in-4.smtp.seeweb.it X-Mailman-Approved-At: Mon, 14 May 2018 09:46:58 +0200 Cc: Chenbo Feng , kernel-team@android.com Subject: [LTP] [PATCH] syscall/open11: use the new ltp test library X-BeenThere: ltp@lists.linux.it X-Mailman-Version: 2.1.18 Precedence: list List-Id: Linux Test Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: ltp-bounces+incoming=patchwork.ozlabs.org@lists.linux.it Sender: "ltp" Migrate the open11 test to use the new tst_test framework. Change the character file node location into the device mount point so the test will no longer fail if the original filesystem have MNT_NODEV flag set. Signed-off-by: Chenbo Feng --- testcases/kernel/syscalls/open/open11.c | 114 ++++++++++-------------- 1 file changed, 45 insertions(+), 69 deletions(-) diff --git a/testcases/kernel/syscalls/open/open11.c b/testcases/kernel/syscalls/open/open11.c index 78002f37d..abe4e3a08 100644 --- a/testcases/kernel/syscalls/open/open11.c +++ b/testcases/kernel/syscalls/open/open11.c @@ -73,10 +73,7 @@ #include #include -#include "test.h" -#include "safe_macros.h" - -char *TCID = "open11"; +#include "tst_test.h" /* Define test files */ #define T_REG "t_reg" /* regular file with content */ @@ -86,21 +83,18 @@ char *TCID = "open11"; #define T_SYMLINK_REG "t_symlink_reg" /* symlink to T_REG */ #define T_DIR "t_dir" /* test dir */ #define T_SYMLINK_DIR "t_symlink_dir" /* symlink to T_DIR */ -#define T_DEV "t_dev" /* test device special file */ +#define T_DEV "mntpoint/t_dev" /* test device special file */ +#define MNT_POINT "mntpoint" #define T_MSG "this is a test string" -static void setup(void); -static void cleanup(void); - -struct test_case { +static struct tcase { char *desc; char *path; int flags; mode_t mode; int err; -}; -struct test_case tc[] = { +} tcases[] = { /* * Test open(2) regular file */ @@ -267,8 +261,8 @@ struct test_case tc[] = { .err = 0, }, /* - * test open(2) with O_CREAT - */ + * test open(2) with O_CREAT + */ { /* open hard link file O_RDONLY | O_CREAT */ .desc = "Open link file O_RDONLY | O_CREAT", .path = T_LINK_REG, @@ -325,79 +319,61 @@ struct test_case tc[] = { }, }; -int TST_TOTAL = sizeof(tc) / sizeof(tc[0]); - -int main(int argc, char *argv[]) -{ - int lc; - int i; - int fd; - int ret; - - tst_parse_opts(argc, argv, NULL, NULL); - - setup(); - - for (lc = 0; TEST_LOOPING(lc); lc++) { - for (i = 0; i < TST_TOTAL; i++) { - TEST(open(tc[i].path, tc[i].flags, tc[i].mode)); - fd = TEST_RETURN; - - if (tc[i].err == -1 || TEST_ERRNO == tc[i].err) { - tst_resm(TPASS, "%s", tc[i].desc); - } else { - tst_resm(TFAIL | TTERRNO, - "%s - expected errno %d - Got", - tc[i].desc, tc[i].err); - } - if (fd > 0) { - ret = close(fd); - if (ret < 0) - tst_resm(TWARN, "%s - close failed: %s", - tc[i].desc, strerror(errno)); - } - } - } - - cleanup(); - tst_exit(); -} - static void setup(void) { int fd; int ret; - tst_require_root(); - - tst_tmpdir(); - /* Create test files */ - fd = SAFE_OPEN(cleanup, T_REG, O_WRONLY | O_CREAT, 0644); + fd = SAFE_OPEN(T_REG, O_WRONLY | O_CREAT, 0644); ret = write(fd, T_MSG, sizeof(T_MSG)); if (ret == -1) { close(fd); - tst_brkm(TBROK | TERRNO, cleanup, "Write %s failed", T_REG); + tst_brk(TBROK | TERRNO, "Write %s failed", T_REG); } close(fd); - fd = SAFE_CREAT(cleanup, T_REG_EMPTY, 0644); + fd = SAFE_CREAT(T_REG_EMPTY, 0644); close(fd); - SAFE_LINK(cleanup, T_REG, T_LINK_REG); - SAFE_SYMLINK(cleanup, T_REG, T_SYMLINK_REG); - SAFE_MKDIR(cleanup, T_DIR, 0755); - SAFE_SYMLINK(cleanup, T_DIR, T_SYMLINK_DIR); + SAFE_LINK(T_REG, T_LINK_REG); + SAFE_SYMLINK(T_REG, T_SYMLINK_REG); + SAFE_MKDIR(T_DIR, 0755); + SAFE_SYMLINK(T_DIR, T_SYMLINK_DIR); - ret = mknod(T_DEV, S_IFCHR, makedev(1, 5)); - if (ret == -1) - tst_brkm(TBROK | TERRNO, cleanup, "Create char dev %s failed", - T_DEV); + SAFE_MKNOD(T_DEV, S_IFCHR, makedev(1, 5)); - TEST_PAUSE; } -static void cleanup(void) +static void verify_open(unsigned int n) { - tst_rmdir(); + int fd; + int ret; + struct tcase *tc = &tcases[n]; + + TEST(open(tc->path, tc->flags, tc->mode)); + fd = TEST_RETURN; + + if (tc->err == -1 || TEST_ERRNO == tc->err) { + tst_res(TPASS, "%s", tc->desc); + } else { + tst_res(TFAIL | TTERRNO, + "%s - expected errno %d - Got", + tc->desc, tc->err); + } + if (fd > 0) { + ret = close(fd); + if (ret < 0) + tst_res(TWARN, "%s - close failed: %s", + tc->desc, strerror(errno)); + } } + +static struct tst_test test = { + .tcnt = ARRAY_SIZE(tcases), + .needs_root = 1, + .mntpoint = MNT_POINT, + .mount_device = 1, + .setup = setup, + .test = verify_open, +};